Refactor script with functions
This commit is contained in:
		
							
								
								
									
										42
									
								
								renew_cert.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										42
									
								
								renew_cert.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							@@ -4,8 +4,8 @@ path="$( cd "$(dirname "$0")" ; pwd -P )"
 | 
			
		||||
 | 
			
		||||
#############
 | 
			
		||||
# variables
 | 
			
		||||
acme_dir=/srv/certs/acme-challenge/.well-known/acme-challenge
 | 
			
		||||
opt_dir=/srv/certs/.opt
 | 
			
		||||
acme_dir=/docker/certs/acme-challenge/.well-known/acme-challenge
 | 
			
		||||
opt_dir=/docker/certs/.opt
 | 
			
		||||
account_key=$opt_dir/account.key
 | 
			
		||||
acme_tiny=$opt_dir/acme_tiny.py
 | 
			
		||||
openssl_conf=$opt_dir/openssl.conf
 | 
			
		||||
@@ -14,6 +14,7 @@ openssl_conf=$opt_dir/openssl.conf
 | 
			
		||||
# script
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
main() {
 | 
			
		||||
  # stop script if receive SIGINT (ctrl-c)
 | 
			
		||||
  trap "exit" INT
 | 
			
		||||
  
 | 
			
		||||
@@ -57,22 +58,34 @@ acme_dir=${acme_dir%/}
 | 
			
		||||
  opt_dir=${opt_dir%/}
 | 
			
		||||
  
 | 
			
		||||
  # check if python is installed
 | 
			
		||||
command -v python >/dev/null 2>&1 || { echo >&2 "I require python but it's not installed.  Aborting."; exit 1; }
 | 
			
		||||
  command -v python >/dev/null 2>&1 || { echo >&2 "Python is required but it's not installed.  Aborting."; exit 1; }
 | 
			
		||||
  
 | 
			
		||||
  counter=0
 | 
			
		||||
 | 
			
		||||
  for arg in "$@"
 | 
			
		||||
  do
 | 
			
		||||
    process_renewal
 | 
			
		||||
  
 | 
			
		||||
    if [ $? == 0 ]; then
 | 
			
		||||
      echo "Certificate successfully created!"
 | 
			
		||||
      counter=$((counter+1))
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
  
 | 
			
		||||
  echo "$counter new certificates created!"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
process_renewal() (
 | 
			
		||||
    arg="$path/${arg%/}"
 | 
			
		||||
  
 | 
			
		||||
    if [ ! -d "$arg" ]; then
 | 
			
		||||
      echo "Folder $arg doesn't exists!"
 | 
			
		||||
    continue
 | 
			
		||||
      return 1
 | 
			
		||||
    fi
 | 
			
		||||
  
 | 
			
		||||
    if [ ! -s "$arg/domain.conf" ]; then
 | 
			
		||||
      echo "Configuration file doen't exists!"
 | 
			
		||||
    continue
 | 
			
		||||
      return 1
 | 
			
		||||
    fi
 | 
			
		||||
  
 | 
			
		||||
    # load configuration variables
 | 
			
		||||
@@ -82,12 +95,13 @@ do
 | 
			
		||||
    # check domain.conf variables
 | 
			
		||||
    if [ -z "$NAME" ]; then
 | 
			
		||||
      echo "No name given for domain \"$arg\"".
 | 
			
		||||
    continue
 | 
			
		||||
      return 1
 | 
			
		||||
    fi
 | 
			
		||||
    echo "Processing certificate \"$NAME\"..."
 | 
			
		||||
  
 | 
			
		||||
    if [ ${#DOMAINS[@]} -eq 0 ]; then
 | 
			
		||||
      echo "No domains given for \"$NAME\"."
 | 
			
		||||
    continue
 | 
			
		||||
      return 1
 | 
			
		||||
    fi
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
@@ -119,7 +133,7 @@ do
 | 
			
		||||
  
 | 
			
		||||
    if [ $? != 0 ]; then
 | 
			
		||||
      echo "Creating csr/key files FAILED for \"$NAME\"!"
 | 
			
		||||
    continue
 | 
			
		||||
      return 1
 | 
			
		||||
    fi
 | 
			
		||||
  
 | 
			
		||||
    # get certificate
 | 
			
		||||
@@ -128,7 +142,7 @@ do
 | 
			
		||||
    if [ $? != 0 ]; then
 | 
			
		||||
      rm -rf $arg/tmp.pem
 | 
			
		||||
      echo "Getting certificate for \"$NAME\" FAILED!"
 | 
			
		||||
    continue
 | 
			
		||||
      return 1
 | 
			
		||||
    fi
 | 
			
		||||
  
 | 
			
		||||
    if [ -s "$arg/tmp.pem" ]; then
 | 
			
		||||
@@ -136,12 +150,10 @@ do
 | 
			
		||||
    else
 | 
			
		||||
      echo "New certificate for \"$NAME\" doesn't exists or is empty"
 | 
			
		||||
      rm -rf "$arg/tmp.pem"
 | 
			
		||||
    continue
 | 
			
		||||
      return 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
  echo "Certificate for \"$NAME\" successfully created!"
 | 
			
		||||
  counter=$((counter+1))
 | 
			
		||||
    return 0
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
echo "$counter new certificates created!"
 | 
			
		||||
main "$@"; exit
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user