#! /usr/bin/perl # # External filesystem for Nomad II, using nomadII-utils # Written by Jacek Pliszka ){ $aaa=$_; if (/^.(.*)\. +(\S.*) \^(.*)\^/) { if ("$2" eq "$filename" ) { $number = $1; break; } } } close(NOMAD); return($number); } SWITCH: for ( $ARGV[0] ) { /list/ && do { open(NOMAD,"nomadII_ctl -a -l |cut -b 7-|tr '()' '^^'|"); while(){ ($name,$size)=split('\^'); chop $name; chop $name; $pom= chop $size; if ( "$pom" eq "M" || "$pom" eq "m" ){ $size*=1000000; } elsif ( "$pom" eq "K" || "$pom" eq "k") { $size*=1000; } printf("-rw-rw-rw- 1 %8s %8s %8d Jan 11 11:11 %s\n", 'root', 'root', $size, $name); } close(NOMAD); exit 0; }; /rm/ && do { shift; shift; exit 1 if scalar(@ARGV) != 1; $nr=get_file_number($ARGV[0]); system("nomadII_ctl -F -D $nr >& /dev/null"); exit 0; }; /copyout/ && do { shift; shift; exit 1 if scalar(@ARGV) != 2; ( $src, $dest ) = @ARGV; $nr=get_file_number($src); if ( $nr > 0 ) { system("mkdir ${dest}-nomadII"); system("cd ${dest}-nomadII; nomadII_ctl -g $nr >& /dev/null"); system("mv \"${dest}-nomadII/$src\" $dest >& /dev/null"); system("chmod 0644 $dest"); system("rmdir ${dest}-nomadII"); } exit 0; }; /copyin/ && do { shift; shift; exit 1 if scalar(@ARGV) != 2; ( $dest, $src ) = @ARGV; system("mkdir ${src}-nomadII >& /dev/null"); system("cp $src \"${src}-nomadII/$dest\" >& /dev/null"); system("cd ${src}-nomadII; nomadII_ctl -s \"$dest\" >& /dev/null"); system("rm \"${src}-nomadII/$dest\" >& /dev/null"); system("rmdir ${src}-nomadII >& /dev/null"); exit 0; }; /.*/ && do { # an unfamiliar command exit 1; }; }