From eb87dd177ae5ad2838c9bb9acb5e1e40d9cc5f28 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Tue, 1 Jul 2014 08:29:20 +0100 Subject: [PATCH] Use Linux uuid facility instead of an external library if possible --- IkiWiki/Plugin/edittemplate.pm | 20 +++++++++++++------- doc/ikiwiki/directive/edittemplate.mdwn | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/IkiWiki/Plugin/edittemplate.pm b/IkiWiki/Plugin/edittemplate.pm index b408dfcac..571accf1f 100644 --- a/IkiWiki/Plugin/edittemplate.pm +++ b/IkiWiki/Plugin/edittemplate.pm @@ -140,13 +140,19 @@ sub filltemplate ($$) { $template->param(name => $page); if ($template->query(name => 'uuid')) { - eval { - require UUID::Tiny; - UUID::Tiny->import(':std'); - my $uuid; - $uuid = create_uuid_as_string(UUID_V4()); - $template->param(uuid => $uuid); - }; + my $uuid; + if (open(my $fh, "<", "/proc/sys/kernel/random/uuid")) { + $uuid = <$fh>; + chomp $uuid; + close $fh; + } + else { + eval { + require UUID::Tiny; + $uuid = UUID::Tiny::create_uuid_as_string(UUID::Tiny::UUID_V4()); + }; + } + $template->param(uuid => $uuid); } return $template->output; diff --git a/doc/ikiwiki/directive/edittemplate.mdwn b/doc/ikiwiki/directive/edittemplate.mdwn index 151fd203a..63df23914 100644 --- a/doc/ikiwiki/directive/edittemplate.mdwn +++ b/doc/ikiwiki/directive/edittemplate.mdwn @@ -35,6 +35,6 @@ Two variables might be set: created. * `` 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"]] -- 2.44.0