1#!@PERL@ -w 2# 3# Convert Sun automount map format to amd format 4# 5# Package: am-utils-6.x 6# Author: Mike Walker <mike@tab00.larc.nasa.gov> 7# Erez Zadok <ezk@cs.columbia.edu> 8# 9# This program expects maps with the format 10# 11# dir [ -options ] machine:/path [ # optional comment ] 12# ... 13# 14# and generates an equivalent amd map as follows: 15# 16# # generated by automountamd on Fri May 21 9:16:56 1993 17# 18# /defaults \ 19# type:=nfs;opts:=rw,grpid,nosuid,utimeout=600 20# 21# dir \ 22# hostd==machine.larc.nasa.gov;type:=link;fs:=/path || \ 23# domain==larc.nasa.gov;rhost:=machine;rfs:=/path || \ 24# rhost:=machine.larc.nasa.gov;rfs:=/path 25# ... 26# 27# You should set the DOMAIN and DEFAULT variables to your preferences. 28# 29# $Id: automount2amd.in,v 1.2 2002/01/15 18:25:25 ezk Exp $ 30# 31 32require "ctime.pl"; 33 34# amd domain name (doesn't have to be the DNS domain; isn't overloading great!) 35# Should be what you will pass to amd via the -d command-line switch, if any. 36$DOMAIN=''; 37 38# amd default settings; consult the docs for what you can/should do here. 39# Note, in particular, that if your disk mount points follow a common scheme 40# you can specify ``rfs:=/common/path/${key}'' and not have to insert that 41# line (twice) in every entry below! 42$DEFAULTS='type:=nfs;opts:=rw,grpid,nosuid,utimeout=600'; 43 44 45# print comment header and default string 46printf "# generated by automount2amd on %s\n", &ctime(time); 47printf "/defaults \\\n %s\n\n", $DEFAULTS; 48 49# loop through map 50while (<>) { 51 if (m,^(\w\S*)(\s+\-\w\S*\s+|\s+)(\w[^:]*):(\/\S*)\s*(.*),) { 52 ($dir, $options, $machine, $path, $rest) = ($1, $2, $3, $4, $5); 53 print "#$rest\n" if ($rest =~ m/\w/); 54 print "$dir \\\n"; 55 if ($options =~ m/-/) { 56 $options =~ s/\s//g; 57 $options =~ s/^-//g; 58 printf( " -addopts:=$options \\\n"); 59 } 60 if (defined($DOMAIN) && $DOMAIN ne "") { 61 printf(" hostd==%s.%s;type:=link;fs:=%s || \\\n", 62 $machine, $DOMAIN, $path); 63 printf(" domain==%s;rhost:=%s;rfs:=%s || \\\n", 64 $DOMAIN, $machine, $path); 65 printf " rhost:=%s.%s;rfs:=%s\n\n", $machine, $DOMAIN, $path; 66 } else { 67 printf(" host==%s;type:=link;fs:=%s \\\n", 68 $machine, $path); 69 printf " rhost:=%s;rfs:=%s\n\n", $machine, $path; 70 } 71 } 72} 73