Merge remote-tracking branch 'smcv/umask-keywords'
commit
884496b4da
24
IkiWiki.pm
24
IkiWiki.pm
|
@ -305,9 +305,9 @@ sub getsetup () {
|
||||||
rebuild => 0,
|
rebuild => 0,
|
||||||
},
|
},
|
||||||
umask => {
|
umask => {
|
||||||
type => "integer",
|
type => "string",
|
||||||
example => "022",
|
example => "public",
|
||||||
description => "force ikiwiki to use a particular umask",
|
description => "force ikiwiki to use a particular umask (keywords public, group or private, or a number)",
|
||||||
advanced => 1,
|
advanced => 1,
|
||||||
safe => 0, # paranoia
|
safe => 0, # paranoia
|
||||||
rebuild => 0,
|
rebuild => 0,
|
||||||
|
@ -587,7 +587,23 @@ sub checkconfig () {
|
||||||
unless exists $config{wikistatedir} && defined $config{wikistatedir};
|
unless exists $config{wikistatedir} && defined $config{wikistatedir};
|
||||||
|
|
||||||
if (defined $config{umask}) {
|
if (defined $config{umask}) {
|
||||||
umask(possibly_foolish_untaint($config{umask}));
|
my $u = possibly_foolish_untaint($config{umask});
|
||||||
|
|
||||||
|
if ($u =~ m/^\d+$/) {
|
||||||
|
umask($u);
|
||||||
|
}
|
||||||
|
elsif ($u eq 'private') {
|
||||||
|
umask(077);
|
||||||
|
}
|
||||||
|
elsif ($u eq 'group') {
|
||||||
|
umask(027);
|
||||||
|
}
|
||||||
|
elsif ($u eq 'public') {
|
||||||
|
umask(022);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
error(sprintf(gettext("unsupported umask setting %s"), $u));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
run_hooks(checkconfig => sub { shift->() });
|
run_hooks(checkconfig => sub { shift->() });
|
||||||
|
|
Loading…
Reference in New Issue