nfsmount script for jeremy stribling
[vsys.git] / factory / nfsmount
1 #!/usr/bin/perl
2
3 use strict;
4
5 my $slicename=$ARGV[0];
6 my $already_mounted_testfile = "/tmp/$slicename"."_nfsmounted";
7
8 if (-f $already_mounted_testfile) {
9         die("Sorry, only one successful NFS mount allowed per slice!");
10 }
11
12 my $remotepath = <STDIN>;
13 my $localpath = <STDIN>;
14 chomp($localpath);
15 $localpath=~s/\.\.//g;
16
17 unless (-d $localpath) {
18         die("Localpath does not exist, please create it first.");
19 }
20
21 my $hostexpr="(?=^.{1,254}$)(^(?:(?!\d+\.|-)[a-zA-Z0-9_\-]{1,63}(?<!-)\.?)+(?:[a-zA-Z]{2,})$)";
22 my $pathexpr="\/?[\w\d]+\/[\w\d]*\/?";
23 my $nfshost;
24 my $nfspath;
25
26 ($nfshost,$nfspath)=split ':',$remotepath;
27
28 if ($nfshost!~/(?=^.{1,254}$)(^(?:(?!\d+\.|-)[a-zA-Z0-9_\-]{1,63}(?<!-)\.?)+(?:[a-zA-Z]{2,})$)/) {
29         die("The hostname $nfshost does not seem to be right.");
30 }
31
32 if ($nfspath!~/^(((\.\.){1}\/)*|(\/){1})?(([a-zA-Z0-9]*)\/)*([a-zA-Z0-9]*)+$/) {
33         die("The remote path $nfspath does not seem to be right.");
34
35