fakeroot usage added to avoid root privileges requirements.
[threegates.git] / bin / threegates_builder.sh
1 #!/bin/bash
2 set -x
3
4 usage () {
5     echo "USAGE"
6     echo "$1 [-d|-dd] [-p <prefix>]"
7     echo "  -dd dry totally run (local and system wide)"
8     echo "  -d  dry run system-related commands"
9     echo "  -p  prefix path for the installation (default is ./out)"
10     echo "  -t  produce a tar archive of the output (use it with fakeroot)"
11     exit $2
12 }
13
14 #
15 #  MAIN
16 #
17 GROUPNAME=threegates
18
19 DRYRUN=0
20 EXCMD_FS=""
21 EXCMD_SY=""
22 THREEGATES_BASE="./out"
23 WITH_ARCHIVE=0
24
25 while [ $# -gt 0 ]; do
26     case $1 in
27         -dd) DRYRUN=2 ;;
28         -d)  DRYRUN=1 ;;
29         -p)  THREEGATES_BASE="$2" ; shift ;;
30         -t)  WITH_ARCHIVE=1 ;;
31         *)   usage $0  ;;
32     esac
33     shift
34 done
35
36 if [ $DRYRUN -eq 2 ]; then
37     EXCMD_FS="echo "
38 fi
39 if [ $DRYRUN -ge 1 ]; then
40     EXCMD_SY="echo "
41 fi
42
43 if ! grep -q $GROUPNAME /etc/group ; then
44     $EXCMD_SY groupadd -r $GROUPNAME
45 fi
46
47 $EXCMD_FS mkdir -p        ${THREEGATES_BASE}/usr/lib/threegates/bin
48 $EXCMD_FS cp raw/root/usr/bin/crl-manager.py ${THREEGATES_BASE}/usr/bin
49 $EXCMD_SY chown root.root ${THREEGATES_BASE}/usr/bin/crl-manager.py
50 $EXCMD_FS chmod 744       ${THREEGATES_BASE}/usr/bin/crl-manager.py
51
52
53 $EXCMD_FS mkdir -p  ${THREEGATES_BASE}/var/lib/threegates
54 $EXCMD_FS chmod 755 ${THREEGATES_BASE}/var/lib/threegates
55
56 $EXCMD_FS mkdir -p  ${THREEGATES_BASE}/var/lib/threegates/ca
57 $EXCMD_FS chmod 755 ${THREEGATES_BASE}/var/lib/threegates/ca
58
59 $EXCMD_FS mkdir -p  ${THREEGATES_BASE}/var/lib/threegates/crl
60 $EXCMD_FS chmod 755 ${THREEGATES_BASE}/var/lib/threegates/crl
61
62 $EXCMD_FS mkdir -p  ${THREEGATES_BASE}/var/lib/threegates/crluri
63 $EXCMD_FS chmod 755 ${THREEGATES_BASE}/var/lib/threegates/crluri
64
65 $EXCMD_FS mkdir -p  ${THREEGATES_BASE}/var/lib/threegates/crlurinew
66 $EXCMD_FS chmod 775 ${THREEGATES_BASE}/var/lib/threegates/crlurinew
67 $EXCMD_FS chmod g+s ${THREEGATES_BASE}/var/lib/threegates/crlurinew
68 $EXCMD_SY chgrp $GROUPNAME ${THREEGATES_BASE}/var/lib/threegates/crlurinew
69
70 export THREEGATES_CA_BASE="${THREEGATES_BASE}/var/lib/threegates/ca"
71 $EXCMD_FS ./bin/certs_extractor.sh
72
73 if [ $WITH_ARCHIVE -eq 1 ]; then
74     cd $THREEGATES_BASE
75     tar zcvf ../threegates_out.tgz *
76 fi
77
78 exit 0