diff options
Diffstat (limited to 'perl/lib/Nix/Utils.pm')
-rw-r--r-- | perl/lib/Nix/Utils.pm | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/perl/lib/Nix/Utils.pm b/perl/lib/Nix/Utils.pm new file mode 100644 index 000000000000..78d3db54270d --- /dev/null +++ b/perl/lib/Nix/Utils.pm @@ -0,0 +1,38 @@ +package Nix::Utils; + +our @ISA = qw(Exporter); +our @EXPORT = qw(checkURL uniq writeFile readFile); + +$urlRE = "(?: [a-zA-Z][a-zA-Z0-9\+\-\.]*\:[a-zA-Z0-9\%\/\?\:\@\&\=\+\$\,\-\_\.\!\~\*]+ )"; + +sub checkURL { + my ($url) = @_; + die "invalid URL ‘$url’\n" unless $url =~ /^ $urlRE $ /x; +} + +sub uniq { + my %seen; + my @res; + foreach my $name (@_) { + next if $seen{$name}; + $seen{$name} = 1; + push @res, $name; + } + return @res; +} + +sub writeFile { + my ($fn, $s) = @_; + open TMP, ">$fn" or die "cannot create file `$fn': $!"; + print TMP "$s" or die; + close TMP or die; +} + +sub readFile { + local $/ = undef; + my ($fn) = @_; + open TMP, "<$fn" or die "cannot open file `$fn': $!"; + my $s = <TMP>; + close TMP or die; + return $s; +} |