lib/lib.sh: Sanitize the tag when making a temporary directory.
[distorted-letsencrypt] / lib / lib.sh
1 ### -*-sh-*-
2
3 prog=${0##*/}
4
5 usage () { echo "usage: $prog$usage"; }
6 fail () { echo >&2 "$prog: $*"; exit 1; }
7 fail_usage () { usage >&2; exit 1; }
8
9 run_as_user () {
10 case $(id -un) in
11 $user) ;;
12 *) exec sudo -u$user "$0" "$@" ;;
13 esac
14 HOME=$home; export HOME
15 PATH=$home/bin:/usr/local/bin:/bin:/usr/bin; export PATH
16 }
17
18 sanitize () { echo "$1" | tr -c 'A-Za-z0-9-\n' _; }
19
20 prepare_tmp () {
21 tag=$1
22
23 tmp=$home/tmp/$(sanitize "$tag").$$
24 rm -rf $tmp
25 mkdir $tmp
26 trap 'cd $home; rm -rf $tmp' EXIT INT TERM
27 }
28
29 make_le_conf () {
30 { cat $home/le.conf.skel
31 echo "config-dir = $home/etc"
32 echo "logs-dir = $home/log"
33 echo "work-dir = $tmp"
34 echo
35 case $# in
36 0) ;;
37 *)
38 map="webroot-map = {" sep=" "
39 for san in "$@"; do
40 map="$map$sep\"$san\": \"$home/webroot\"" sep=", "
41 done
42 map="$map }"
43 echo "$map"
44 ;;
45 esac
46 } >$tmp/le.conf
47 }