From: Clifton Palmer Date: Mon, 3 Apr 2017 23:37:57 +0000 (+0000) Subject: Updated public to print all public links if no args X-Git-Tag: 1.0.0~20 X-Git-Url: http://git.purplebirdman.com/public.git/commitdiff_plain/d6bdcd5ebdddfccaf412b260966d791247c52580 Updated public to print all public links if no args --- diff --git a/public b/public index cf4ea30..8c6f828 100755 --- a/public +++ b/public @@ -28,29 +28,67 @@ sub makeNonceDir { return $path, ; } +sub addFiles { + # get list of files matching name from root directory + my $name = shift + or die "Need filename!\n"; -# get list of files matching name from root directory -my $name = shift - or die "Need filename!\n"; + opendir DIR, $root_dir; + my @files = grep /$name/i, readdir(DIR); + closedir DIR; -opendir DIR, $root_dir; -my @files = grep /$name/i, readdir(DIR); -closedir DIR; + # exit if no files found + die "No match: $name\n" unless @files; -# exit if no files found -die "No match: $name\n" unless @files; + # create nonce dir and add symbolic links + my $nonce = nonce(); + my $nonce_dir = makeNonceDir($nonce); -# create nonce dir and add symbolic links -my $nonce = nonce(); -my $nonce_dir = makeNonceDir($nonce); + for my $file (@files) { + my $root_filepath = File::Spec->catfile($root_dir, $file); + my $link_filepath = File::Spec->catfile($nonce_dir, $file); -for my $file (@files) { - my $root_filepath = File::Spec->catfile($root_dir, $file); - my $link_filepath = File::Spec->catfile($nonce_dir, $file); + symlink $root_filepath, $link_filepath + or die "Unable to create symlink: $root_filepath -> $link_filepath"; - symlink $root_filepath, $link_filepath - or die "Unable to create symlink: $root_filepath -> $link_filepath"; + my $uri_link = join '/', $http_uri, $nonce, $file; + print "$uri_link\n"; + } +} + +sub listFiles { + opendir DIR, $link_dir; + my @nonces = readdir(DIR); + closedir DIR; + + for my $nonce (@nonces) { + next if $nonce eq '.'; + next if $nonce eq '..'; + + # ensure it's a directory + my $nonce_dir = File::Spec->catdir($link_dir, $nonce); + next unless -d $nonce_dir; + + # make URIs for all the files in the nonce dirs + opendir DIR, $nonce_dir; + my @files = readdir(DIR); + closedir DIR; - my $uri_link = join '/', ($http_uri, $nonce, $file); - print "$uri_link\n"; + for my $file (@files) { + next if $file eq '.'; + next if $file eq '..'; + + my $uri_link = join '/', $http_uri, $nonce, $file; + print "$uri_link\n"; + } + } +} + + +# script begins +if (@ARGV) { + addFiles($_) for @ARGV; +} +else { + listFiles; }