diff options
Diffstat (limited to 'scripts/automount2amd.in')
-rwxr-xr-x | scripts/automount2amd.in | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/scripts/automount2amd.in b/scripts/automount2amd.in new file mode 100755 index 000000000000..79a7b770d556 --- /dev/null +++ b/scripts/automount2amd.in @@ -0,0 +1,72 @@ +#!@PERL@ -w +# +# Convert Sun automount map format to amd format +# +# Package: am-utils-6.x +# Author: Mike Walker <mike@tab00.larc.nasa.gov> +# Erez Zadok <ezk@cs.columbia.edu> +# +# This program expects maps with the format +# +# dir [ -options ] machine:/path [ # optional comment ] +# ... +# +# and generates an equivalent amd map as follows: +# +# # generated by automountamd on Fri May 21 9:16:56 1993 +# +# /defaults \ +# type:=nfs;opts:=rw,grpid,nosuid,utimeout=600 +# +# dir \ +# hostd==machine.larc.nasa.gov;type:=link;fs:=/path || \ +# domain==larc.nasa.gov;rhost:=machine;rfs:=/path || \ +# rhost:=machine.larc.nasa.gov;rfs:=/path +# ... +# +# You should set the DOMAIN and DEFAULT variables to your preferences. +# +# $Id: automount2amd.in,v 1.2 2002/01/15 18:25:25 ezk Exp $ +# + +require "ctime.pl"; + +# amd domain name (doesn't have to be the DNS domain; isn't overloading great!) +# Should be what you will pass to amd via the -d command-line switch, if any. +$DOMAIN=''; + +# amd default settings; consult the docs for what you can/should do here. +# Note, in particular, that if your disk mount points follow a common scheme +# you can specify ``rfs:=/common/path/${key}'' and not have to insert that +# line (twice) in every entry below! +$DEFAULTS='type:=nfs;opts:=rw,grpid,nosuid,utimeout=600'; + + +# print comment header and default string +printf "# generated by automount2amd on %s\n", &ctime(time); +printf "/defaults \\\n %s\n\n", $DEFAULTS; + +# loop through map +while (<>) { + if (m,^(\w\S*)(\s+\-\w\S*\s+|\s+)(\w[^:]*):(\/\S*)\s*(.*),) { + ($dir, $options, $machine, $path, $rest) = ($1, $2, $3, $4, $5); + print "#$rest\n" if ($rest =~ m/\w/); + print "$dir \\\n"; + if ($options =~ m/-/) { + $options =~ s/\s//g; + $options =~ s/^-//g; + printf( " -addopts:=$options \\\n"); + } + if (defined($DOMAIN) && $DOMAIN ne "") { + printf(" hostd==%s.%s;type:=link;fs:=%s || \\\n", + $machine, $DOMAIN, $path); + printf(" domain==%s;rhost:=%s;rfs:=%s || \\\n", + $DOMAIN, $machine, $path); + printf " rhost:=%s.%s;rfs:=%s\n\n", $machine, $DOMAIN, $path; + } else { + printf(" host==%s;type:=link;fs:=%s \\\n", + $machine, $path); + printf " rhost:=%s;rfs:=%s\n\n", $machine, $path; + } + } +} |