+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 user port service site
+ IFS=. read -r user port service site <<-EOF
+ ${conf%\/server\.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"
+ 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_dir"' \
+ /etc/nginx/site.d/'"$site_dir"'/x509; \
+ sudo install -m 644 -o root -g root /dev/stdin \
+ /etc/nginx/site.d/'"$site_dir"'/x509/.gitignore <<-EOF
+ key.pem
+ EOF
+ '
+ rule _x509_service_key_send_deciphered $service \
+ /etc/nginx/"$site_dir"/x509/key.pem -l root "$@"
+ ;;
+ esac
+ done
+ }