66
www.obarun.org

66-envfile

This command is a mix of s6-envdir and importas program. It reads files containing variable assignments on the given directory, adds the variables to the environment, then executes a program.

Interface

	66-envfile [ -h ] [ -f file ] [ -l ] dir prog
	

This tool expects to find a regular file(s) in dir containing one or multiple key=value pair. For earch files found, it will parse the file, import the key=value then execs prog with the modified environment.

Options

File syntax

file is a text file containing lines of the form key = value. Whitespace is permitted before and after key, and before or after value, Quoting is also possible. In this case, the quoting field is treated as one word.

Empty lines, or lines containing only whitespace, are ignored. Lines beginning with # (possibly after some whitespace) are ignored (and typically used for comments). Comments are not possible at the end of lines: key = value # comment is not a valid comment.

Empty value is not permitted.

If key begin by a '!' character: !key=value the key will be removed from the environment after the substitution.

Example of use

	#!/usr/bin/execlineb -P
	fdmove -c 2 1
	66-envfile -f ntpd /etc/66/conf/
	foreground { mkdir -p  -m 0755 ${RUNDIR} } 
	execl-cmdline -s { ntpd ${CMD_ARGS} }
	
/etc/66/conf/ntpd file contain :
	!RUNDIR=/run/openntpd
	!CMD_ARGS=-d -s
	

66-envfile reads /etc/66/conf/ntpd file, parses the file, import the variable RUNDIR and CMD_ARGS, replaces the ${RUNDIR} and ${CMD_ARGS} by the corresponding values, unexport the variable then execs the ntpd commandline.

The strict equivalent with s6-envdir and importas command will be:

	#!/usr/bin/execlineb -P
	fdmove -c 2 1
	s6-envdir /etc/66/conf
	importas -u RUNDIR RUNDIR
	importas -u CMD_ARGS CMD_ARGS
	foreground { mkdir -p  -m 0755 ${RUNDIR} } 
	execl-cmdline -s { ntpd ${CMD_ARGS} }
	

where /etc/66/conf directory contains two named files RUNDIR and CMD_ARGS written with /run/openntpd and -d -s respectively.