nfsmount script for jeremy stribling
authorSapan Bhatia <sapanb@cs.princeton.edu>
Thu, 19 Feb 2009 19:59:39 +0000 (19:59 +0000)
committerSapan Bhatia <sapanb@cs.princeton.edu>
Thu, 19 Feb 2009 19:59:39 +0000 (19:59 +0000)
factory/nfsmount [new file with mode: 0755]

diff --git a/factory/nfsmount b/factory/nfsmount
new file mode 100755 (executable)
index 0000000..3f0222d
--- /dev/null
@@ -0,0 +1,35 @@
+#!/usr/bin/perl
+
+use strict;
+
+my $slicename=$ARGV[0];
+my $already_mounted_testfile = "/tmp/$slicename"."_nfsmounted";
+
+if (-f $already_mounted_testfile) {
+       die("Sorry, only one successful NFS mount allowed per slice!");
+}
+
+my $remotepath = <STDIN>;
+my $localpath = <STDIN>;
+chomp($localpath);
+$localpath=~s/\.\.//g;
+
+unless (-d $localpath) {
+       die("Localpath does not exist, please create it first.");
+}
+
+my $hostexpr="(?=^.{1,254}$)(^(?:(?!\d+\.|-)[a-zA-Z0-9_\-]{1,63}(?<!-)\.?)+(?:[a-zA-Z]{2,})$)";
+my $pathexpr="\/?[\w\d]+\/[\w\d]*\/?";
+my $nfshost;
+my $nfspath;
+
+($nfshost,$nfspath)=split ':',$remotepath;
+
+if ($nfshost!~/(?=^.{1,254}$)(^(?:(?!\d+\.|-)[a-zA-Z0-9_\-]{1,63}(?<!-)\.?)+(?:[a-zA-Z]{2,})$)/) {
+       die("The hostname $nfshost does not seem to be right.");
+}
+
+if ($nfspath!~/^(((\.\.){1}\/)*|(\/){1})?(([a-zA-Z0-9]*)\/)*([a-zA-Z0-9]*)+$/) {
+       die("The remote path $nfspath does not seem to be right.");
+} 
+