Use Linux uuid facility instead of an external library if possible

master
Simon McVittie 2014-07-01 08:29:20 +01:00
parent 4a11dc4d16
commit eb87dd177a
2 changed files with 14 additions and 8 deletions

View File

@ -140,14 +140,20 @@ sub filltemplate ($$) {
$template->param(name => $page); $template->param(name => $page);
if ($template->query(name => 'uuid')) { if ($template->query(name => 'uuid')) {
my $uuid;
if (open(my $fh, "<", "/proc/sys/kernel/random/uuid")) {
$uuid = <$fh>;
chomp $uuid;
close $fh;
}
else {
eval { eval {
require UUID::Tiny; require UUID::Tiny;
UUID::Tiny->import(':std'); $uuid = UUID::Tiny::create_uuid_as_string(UUID::Tiny::UUID_V4());
my $uuid;
$uuid = create_uuid_as_string(UUID_V4());
$template->param(uuid => $uuid);
}; };
} }
$template->param(uuid => $uuid);
}
return $template->output; return $template->output;
} }

View File

@ -35,6 +35,6 @@ Two variables might be set:
created. created.
* `<TMPL_VAR uuid>` is replaced with a version 4 (random) UUID. * `<TMPL_VAR uuid>` is replaced with a version 4 (random) UUID.
(Requires the `UUID::Tiny` Perl module.) (Requires the `UUID::Tiny` Perl module if not running on Linux.)
[[!meta robots="noindex, follow"]] [[!meta robots="noindex, follow"]]