|  | @@ -1,60 +0,0 @@
 | 
	
		
			
				|  |  | -#!/usr/bin/env bash
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -if [ `id -gn` != "root" ]; then
 | 
	
		
			
				|  |  | -    echo "Run as root!"
 | 
	
		
			
				|  |  | -    exit 1
 | 
	
		
			
				|  |  | -fi
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -source "${SNAP}/init"
 | 
	
		
			
				|  |  | -DOMAIN=`snapctl get domain`
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -echo "See log (journal -exf --grep=snap.${SNAP_NAME}*) for result"
 | 
	
		
			
				|  |  | -if [ "${DOMAIN}" != "--not-set" ]; then
 | 
	
		
			
				|  |  | -    snapctl is-connected certs
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    if [ $? -ne 0 ]; then
 | 
	
		
			
				|  |  | -        snapctl set domain="--not-set"
 | 
	
		
			
				|  |  | -        exit 0
 | 
	
		
			
				|  |  | -    fi
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    readarray -d '' DOMAINS < <(find "${CERTS_DIR}" -type d -name "${DOMAIN}" -print0)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    if [ "${#DOMAINS[@]}" -ne 0 ]; then
 | 
	
		
			
				|  |  | -        DOMAIN_DIR="${DOMAINS[0]}"
 | 
	
		
			
				|  |  | -        LAST_EDITED=`stat "${DOMAIN_DIR}/.time" --format="%Y" 2> /dev/null || echo 0`
 | 
	
		
			
				|  |  | -        ORIG_EDITED=`stat "${SSL_DIR}/.time" --format="%Y" 2> /dev/null || echo 0`
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        if [ "${LAST_EDITED}" -le "${ORIG_EDITED}" ]; then 
 | 
	
		
			
				|  |  | -            logger "${SNAP_NAME}: Certificate for ${DOMAIN} is not changed"
 | 
	
		
			
				|  |  | -            exit 0
 | 
	
		
			
				|  |  | -        fi
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        gpg_start_agent
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        i=0
 | 
	
		
			
				|  |  | -        readarray -d '' CERTIFICATES < <(find "${DOMAIN_DIR}" -type f -name "*.gpg" -print0)
 | 
	
		
			
				|  |  | -        for CERTIFICATE in "${CERTIFICATES[@]}"; do
 | 
	
		
			
				|  |  | -            DEST="${SSL_DIR}/`basename "${CERTIFICATE}" ".gpg"`"
 | 
	
		
			
				|  |  | -            ORIG=""
 | 
	
		
			
				|  |  | -            if [ -f "${DEST}" ]; then
 | 
	
		
			
				|  |  | -                ORIG="`cat "${DEST}"`"
 | 
	
		
			
				|  |  | -            fi
 | 
	
		
			
				|  |  | -            gpg --batch --yes --output "${DEST}" --decrypt "${CERTIFICATE}"
 | 
	
		
			
				|  |  | -                
 | 
	
		
			
				|  |  | -            DIFF=`echo "${ORIG}" | diff "${DEST}" -`
 | 
	
		
			
				|  |  | -            RET=$?
 | 
	
		
			
				|  |  | -            if [ "${RET}" -ne 0 ]; then
 | 
	
		
			
				|  |  | -                echo "${ORIG}" > "${DEST}.backup"
 | 
	
		
			
				|  |  | -                (( i = $i + 1 ))
 | 
	
		
			
				|  |  | -            fi
 | 
	
		
			
				|  |  | -        done
 | 
	
		
			
				|  |  | -        if [ "${i}" -ne 0 ]; then
 | 
	
		
			
				|  |  | -            cp -f "${DOMAIN_DIR}/.time" "${SSL_DIR}/.time"
 | 
	
		
			
				|  |  | -            logger "${SNAP_NAME}: Certificates (${DOMAIN}) changed for ${SNAP_NAME}-${UUID}, restart"
 | 
	
		
			
				|  |  | -            snapctl restart "${SNAP_NAME}"
 | 
	
		
			
				|  |  | -        fi
 | 
	
		
			
				|  |  | -        gpg_close_agent
 | 
	
		
			
				|  |  | -    else
 | 
	
		
			
				|  |  | -        logger "No certificate for ${DOMAIN} for ${SNAP_NAME}"
 | 
	
		
			
				|  |  | -    fi
 | 
	
		
			
				|  |  | -fi
 |