Files
bpfire/src/scripts/readhash
2012-08-29 21:37:46 +02:00

23 lines
723 B
Bash

#!/bin/sh
#
# This script reads in variables from a config file, and produces a list of
# commands to run to set these as shell environment variables, it is
# intended to be used as follows:
#
# eval $(readhash /var/ipfire/main/settings)
#
# shell variables must consist of alphanumeric characters and underscores,
# and begin with an alphabetic character or underscore.
VARNAME='[A-Za-z_][A-Za-z0-9_]*'
# For the assigned value we only accept a limited number of characters - none
# of which are shell metachars
VARCHARS='A-Za-z0-9=/,.:_@#+-'
VARVAL="[${VARCHARS}]*"
sed -ne "s/\(${VARNAME}\)=\(${VARVAL}\)$/\1=\2/p" $1
# Accept space only if it's quoted
sed -ne "s/\(${VARNAME}\)=\('[ ${VARCHARS}]*'\)$/\1=\2/p" $1