forsyth20121205-174063a80cc13 years agoHistory
121 lines · 2.3 KB · Text
RawDownload
load std sexprs # load a job.  result is the new job id.subfn job {	{		id := "{read}		result=$id		or {echo load ${quote $*} >[1=0]} {			raise 'load failed'		}	} $* <> /n/remote/admin/clone} # load a job.  print the new job id.fn job {	echo ${job $*}} # load a job, then start it.fn start {	id := ${job $*}	ctl $id start	echo $id} # send a control message to a job.fn ctl {	if {~ $#* 0 1} {		echo usage: ctl job-id request... >[1=2]		raise usage	}	(id args) := $*	echo ${quote $args} > /n/remote/admin/$id/ctl} # mount the scheduler name spacefn mountsched {	configfile := $configfile		# stop changes propagating out.	if{no $root}{		root=/grid/slave	}	opts := ()	fsopts := ()	schedaddr := ()	schedfsaddr := ()	readconfig {		if{~ $attr schedaddr}{			schedaddr=$val		}{~ $attr auth}{			if{~ $val 0}{				opts=($opts -A)			}		}{~ $attr keyfile}{			opts=($opts -k $val)		}{~ $attr schedfsaddr}{			schedfsaddr=$val		}{~ $attr fsauth}{			if{~ $val 0}{				fsopts=($fsopts -A)			}		}{~ $attr fskey fskeyfile}{		# first form is deprecated			fsopts=($opts -k $val)		}	}	if{no $schedaddr}{		ifs=' 
	'		schedaddr=`{cat /grid/slave/schedaddr}		if{no $schedaddr}{			echo no scheduler address found >[1=2]			raise error		}	}	mount $opts $schedaddr /n/remote	no $schedfsaddr ||		mount $fsopts $schedfsaddr /n/gridfs} # print a format(2) file with the given formatfn fmtcat {	if {! ~ $#* 2} {		echo usage: fmtread fmt file >[1=2]		raise usage	}	(fmt file) := $*	{echo $fmt >[1=0]; read -o 0; cat} <> $file} # readconfig command.# on entry $configfile is name of configuration file, or empty for default.# $root is default root directory.# run command for each entry in the config file, setting $attr and $val# to the attribute and the value in the entry.fn readconfig {	(cmd nil) := $*	if{no $configfile}{		if{ftest -f $root/config}{			configfile = $root/config		}	} {		if{! ~ $configfile '/*' './*'} {			configfile = $root/$configfile		}		if{! ftest -f $configfile}{			echo cannot find config file $configfile >[1=2]			raise 'config error'		}	}	if{! no $configfile} {		< $configfile getsexprs {			(attr sval) := ${els $sexp}			if{! ~ $#sval 1}{				echo bad config line $sexp >[1=2]				raise continue;			}			attr = ${text $attr}			val := ${text $sval}			$cmd		}	}}