#!/bin/sh
set -e -f ${DRY_RUN:+-n} -u
-tool=${0%/*}
+tool=$(cd "${0%/*}"; cd -)
. "$tool"/lib/rule.sh
. "$tool"/etc/vm.sh
local -; set +f
for conf in "$tool"/etc/apache2/site.d/*/VirtualHost.conf
do conf=${conf#"$tool"/etc/apache2/site.d/}
- local user port service site
- IFS=. read -r user port service site <<-EOF
+ local port domain
+ IFS=. read -r port domain <<-EOF
${conf%\/VirtualHost\.conf}
EOF
- assert 'test "${user:+set}"'
- assert 'test "${service:+set}"'
- assert 'test "${site:+set}"'
assert 'test "${port:+set}"'
- local site_dir="$user.$port.$service.$site"
+ assert 'test "${domain:+set}"'
+ local site="$port.$domain"
case $port in
(443)
rule ssh -l root ' \
sudo install -d -m 770 -o '"$user"' -g '"$user"' \
/etc/apache2 \
- /etc/apache2/site.d/'"$site_dir"' \
- /etc/apache2/site.d/'"$site_dir"'/x509; \
+ /etc/apache2/site.d/'"$site"' \
+ /etc/apache2/site.d/'"$site"'/x509; \
sudo install -m 644 -o '"$user"' -g '"$user"' /dev/stdin \
- /etc/apache2/site.d/'"$site_dir"'/x509/.gitignore <<-EOF
+ /etc/apache2/site.d/'"$site"'/x509/.gitignore <<-EOF
key.pem
EOF
'
rule _x509_service_key_send_deciphered $service \
- ~"$user"/etc/apache2/"$site_dir"/x509/key.pem -l root "$@"
+ /etc/apache2/"$site"/x509/key.pem -l root "$@"
;;
esac
done
rule _x509_service_key_send_deciphered imap \
/etc/dovecot/$vm_domainname/$service/x509/key.pem -l root "$@"
}
+rule_gitolite_configure () {
+ (
+ cd "$tool"/etc/gitolite
+ GIT_SSH=../../lib/ssh \
+ ssh-agent sh -c ' \
+ SSH_ASKPASS='"$tool"'/lib/ssh-pass \
+ SSH_ID=git \
+ ssh-add '"$tool"'/var/sec/ssh/git </dev/null && \
+ git push -v origin '"$*"
+ )
+ }
+rule_nginx_key_send () {
+ local -; set +f
+ for conf in "$tool"/etc/nginx/site.d/*/server.conf
+ do conf=${conf#"$tool"/etc/nginx/site.d/}
+ local port domain
+ IFS=. read -r port domain <<-EOF
+ ${conf%\/server\.conf}
+ EOF
+ assert 'test "${port:+set}"'
+ assert 'test "${domain:+set}"'
+ local site="$port.$domain"
+ case $port in
+ (443)
+ rule ssh -l root ' \
+ sudo install -d -m 770 -o root -g root \
+ /etc/nginx \
+ /etc/nginx/site.d \
+ /etc/nginx/site.d/'"$site"' \
+ /etc/nginx/site.d/'"$site"'/x509; \
+ sudo install -m 644 -o root -g root /dev/stdin \
+ /etc/nginx/site.d/'"$site"'/x509/.gitignore <<-EOF
+ key.pem
+ EOF
+ '
+ rule _x509_service_key_send_deciphered $service \
+ /etc/nginx/"$site"/x509/key.pem -l root "$@"
+ ;;
+ esac
+ done
+ }
rule_postfix_key_send () {
rule ssh -l root ' \
sudo install -d -m 770 -o root -g root \
/etc/postfix/'"$vm_domainname"'/ \
- /etc/postfix/'"$vm_domainname"'/smptd \
- /etc/postfix/'"$vm_domainname"'/smptd/x509; \
+ /etc/postfix/'"$vm_domainname"'/smtpd \
+ /etc/postfix/'"$vm_domainname"'/smtpd/x509; \
sudo install -m 644 -o root -g root /dev/stdin \
/etc/postfix/'"$vm_domainname"'/smtp/x509/.gitignore <<-EOF
key.pem