chiark / gitweb /
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 }