+rule_apache2_key_send () {
+ local -; set +f
+ for conf in "$tool"/etc/apache2/site.d/*/VirtualHost.conf
+ do conf=${conf#"$tool"/etc/apache2/site.d/}
+ local port domain
+ IFS=. read -r port domain <<-EOF
+ ${conf%/VirtualHost.conf}
+ EOF
+ assert 'test "${port:+set}"'
+ assert 'test "${domain:+set}"'
+ local site="$port.$domain"
+ case $port in
+ (443)
+ rule _x509_site_key_decrypt "$domain" |
+ rule ssh -l root ' \
+ sudo install -d -m 770 -o '"$user"' -g '"$user"' \
+ /etc/apache2 \
+ /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"'/x509/.gitignore <<-EOF
+ key.pem
+ EOF
+ sudo install -m 400 -o root -g root \
+ /dev/stdin \
+ /etc/apache2/'"'$site'"'/x509/key.pem
+ '
+ ;;
+ esac
+ done
+ }
+rule_dovecot_key_send () {
+ rule _x509_site_key_decrypt imap."$vm_domainname" |
+ rule ssh -l root ' \
+ sudo install -d -m 770 -o root -g root \
+ /etc/dovecot/'"$vm_domainname"'/ \
+ /etc/dovecot/'"$vm_domainname"'/imap \
+ /etc/dovecot/'"$vm_domainname"'/imap/x509 ; \
+ sudo install -m 644 -o root -g root /dev/stdin \
+ /etc/dovecot/'"$vm_domainname"'/imap/x509/.gitignore <<-EOF
+ key.pem
+ EOF
+ sudo install -m 400 -o root -g root \
+ /dev/stdin \
+ /etc/dovecot/"$vm_domainname"/imap/x509/key.pem
+ '
+ }
+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/*/key_send
+ do conf=${conf#"$tool"/etc/nginx/site.d/}
+ local site=${conf%/key_send}
+ rule _x509_site_key_decrypt \
+ "$(cat "$tool"/etc/nginx/site.d/"$site"/key_send)" |
+ rule ssh -l root ' \
+ sudo install -d -m 770 -o root -g root \
+ /etc/nginx \
+ /etc/nginx/x509.d \
+ /etc/nginx/x509.d/'"'$site'"'; \
+ sudo install -m 644 -o root -g root /dev/stdin \
+ /etc/nginx/x509.d/'"'$site'"'/.gitignore <<-EOF
+ key.pem
+ EOF
+
+ install -m 400 -o root -g root \
+ /dev/stdin \
+ /etc/nginx/x509.d/'"'$site'"'/key.pem
+ '
+ done
+ }
+rule_postfix_key_send () {
+ rule _x509_site_key_decrypt smtpd."$vm_domainname" |
+ rule ssh -l root ' \
+ sudo install -d -m 770 -o root -g root \
+ /etc/postfix/'"$vm_domainname"'/ \
+ /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
+ EOF
+ sudo install -m 644 -o root -g root /dev/stdin \
+ /etc/postfix/'"$vm_domainname"'/smtpd/x509/.gitignore <<-EOF
+ key.pem
+ EOF
+ install -m 400 -o root -g root \
+ /dev/stdin \
+ /etc/postfix/'"'$vm_domainname'"'/smtpd/x509/key.pem
+ '
+ }
+