mirror of
				https://github.com/willfarrell/docker-crontab.git
				synced 2025-10-30 21:27:18 +01:00 
			
		
		
		
	fix: SC2086 shellcheck fixes.
This commit is contained in:
		| @@ -17,13 +17,13 @@ fi | |||||||
|  |  | ||||||
| get_config() { | get_config() { | ||||||
|     if [ -f "${HOME_DIR}/config.json" ]; then |     if [ -f "${HOME_DIR}/config.json" ]; then | ||||||
|         jq 'map(.)' ${HOME_DIR}/config.json > ${HOME_DIR}/config.working.json |         jq 'map(.)' "${HOME_DIR}"/config.json > "${HOME_DIR}"/config.working.json | ||||||
|     elif [ -f "${HOME_DIR}/config.toml" ]; then |     elif [ -f "${HOME_DIR}/config.toml" ]; then | ||||||
|         rq -t <<< $(cat ${HOME_DIR}/config.toml) | jq 'map(.)' > ${HOME_DIR}/config.json |         rq -t <<< $(cat "${HOME_DIR}"/config.toml) | jq 'map(.)' > "${HOME_DIR}"/config.json | ||||||
|     elif [ -f "${HOME_DIR}/config.yml" ]; then |     elif [ -f "${HOME_DIR}/config.yml" ]; then | ||||||
|         rq -y <<< $(cat ${HOME_DIR}/config.yml) | jq 'map(.)' > ${HOME_DIR}/config.json |         rq -y <<< $(cat "${HOME_DIR}"/config.yml) | jq 'map(.)' > "${HOME_DIR}"/config.json | ||||||
|     elif [ -f "${HOME_DIR}/config.yaml" ]; then |     elif [ -f "${HOME_DIR}/config.yaml" ]; then | ||||||
|         rq -y <<< $(cat ${HOME_DIR}/config.yaml) | jq 'map(.)' > ${HOME_DIR}/config.json |         rq -y <<< $(cat "${HOME_DIR}"/config.yaml) | jq 'map(.)' > "${HOME_DIR}"/config.json | ||||||
|     fi |     fi | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -31,7 +31,7 @@ DOCKER_SOCK=/var/run/docker.sock | |||||||
| CRONTAB_FILE=/etc/crontabs/docker | CRONTAB_FILE=/etc/crontabs/docker | ||||||
|  |  | ||||||
| # Ensure dir exist - in case of volume mapping | # Ensure dir exist - in case of volume mapping | ||||||
| mkdir -p ${HOME_DIR}/jobs ${HOME_DIR}/projects | mkdir -p "${HOME_DIR}"/jobs "${HOME_DIR}"/projects | ||||||
|  |  | ||||||
| ensure_docker_socket_accessible() { | ensure_docker_socket_accessible() { | ||||||
|     if ! grep -q "^docker:" /etc/group; then |     if ! grep -q "^docker:" /etc/group; then | ||||||
| @@ -40,12 +40,12 @@ ensure_docker_socket_accessible() { | |||||||
|         if [ "${DOCKER_GID}" != "0" ]; then |         if [ "${DOCKER_GID}" != "0" ]; then | ||||||
|             if ! grep -qE "^[^:]+:[^:]+:${DOCKER_GID}:" /etc/group; then |             if ! grep -qE "^[^:]+:[^:]+:${DOCKER_GID}:" /etc/group; then | ||||||
|                 # No group with such gid exists - create group docker |                 # No group with such gid exists - create group docker | ||||||
|                 addgroup -g ${DOCKER_GID} docker |                 addgroup -g "${DOCKER_GID}" docker | ||||||
|                 adduser docker docker |                 adduser docker docker | ||||||
|             else |             else | ||||||
|                 # Group with such gid exists - add user "docker" to this group |                 # Group with such gid exists - add user "docker" to this group | ||||||
|                 DOCKER_GROUP_NAME=`getent group "${DOCKER_GID}" | awk -F':' '{{ print $1 }}'` |                 DOCKER_GROUP_NAME=`getent group "${DOCKER_GID}" | awk -F':' '{{ print $1 }}'` | ||||||
|                 adduser docker $DOCKER_GROUP_NAME |                 adduser docker "$DOCKER_GROUP_NAME" | ||||||
|             fi |             fi | ||||||
|         else |         else | ||||||
|             # Docker socket belongs to "root" group - add user "docker" to this group |             # Docker socket belongs to "root" group - add user "docker" to this group | ||||||
| @@ -59,14 +59,14 @@ slugify() { | |||||||
| } | } | ||||||
|  |  | ||||||
| make_image_cmd() { | make_image_cmd() { | ||||||
|     DOCKERARGS=$(echo ${1} | jq -r .dockerargs) |     DOCKERARGS=$(echo "${1}" | jq -r .dockerargs) | ||||||
|     VOLUMES=$(echo ${1} | jq -r '.volumes | map(" -v " + .) | join("")') |     VOLUMES=$(echo "${1}" | jq -r '.volumes | map(" -v " + .) | join("")') | ||||||
|     PORTS=$(echo ${1} | jq -r '.ports | map(" -p " + .) | join("")') |     PORTS=$(echo "${1}" | jq -r '.ports | map(" -p " + .) | join("")') | ||||||
|     EXPOSE=$(echo ${1} | jq -r '.expose | map(" --expose " + .) | join("")') |     EXPOSE=$(echo "${1}" | jq -r '.expose | map(" --expose " + .) | join("")') | ||||||
|     # We'll add name in, if it exists |     # We'll add name in, if it exists | ||||||
|     NAME=$(echo ${1} | jq -r 'select(.name != null) | .name') |     NAME=$(echo "${1}" | jq -r 'select(.name != null) | .name') | ||||||
|     NETWORK=$(echo ${1} | jq -r 'select(.network != null) | .network') |     NETWORK=$(echo "${1}" | jq -r 'select(.network != null) | .network') | ||||||
|     ENVIRONMENT=$(echo ${1} | jq -r '.environment | map(" -e " + .) | join("")') |     ENVIRONMENT=$(echo "${1}" | jq -r '.environment | map(" -e " + .) | join("")') | ||||||
|     # echo ${1} | jq -r '.environment | join("\n")' > ${PWD}/${NAME}.env |     # echo ${1} | jq -r '.environment | join("\n")' > ${PWD}/${NAME}.env | ||||||
|     # ENVIRONMENT=" --env-file ${PWD}/${NAME}.env" |     # ENVIRONMENT=" --env-file ${PWD}/${NAME}.env" | ||||||
|     if [ "${DOCKERARGS}" == "null" ]; then DOCKERARGS=; fi |     if [ "${DOCKERARGS}" == "null" ]; then DOCKERARGS=; fi | ||||||
| @@ -76,19 +76,19 @@ make_image_cmd() { | |||||||
|     if [ ! -z "${ENVIRONMENT}" ]; then DOCKERARGS="${DOCKERARGS}${ENVIRONMENT}"; fi |     if [ ! -z "${ENVIRONMENT}" ]; then DOCKERARGS="${DOCKERARGS}${ENVIRONMENT}"; fi | ||||||
|     if [ ! -z "${PORTS}" ]; then DOCKERARGS="${DOCKERARGS}${PORTS}"; fi |     if [ ! -z "${PORTS}" ]; then DOCKERARGS="${DOCKERARGS}${PORTS}"; fi | ||||||
|     if [ ! -z "${EXPOSE}" ]; then DOCKERARGS="${DOCKERARGS}${EXPOSE}"; fi |     if [ ! -z "${EXPOSE}" ]; then DOCKERARGS="${DOCKERARGS}${EXPOSE}"; fi | ||||||
|     IMAGE=$(echo ${1} | jq -r .image | envsubst) |     IMAGE=$(echo "${1}" | jq -r .image | envsubst) | ||||||
|     TMP_COMMAND=$(echo ${1} | jq -r .command) |     TMP_COMMAND=$(echo "${1}" | jq -r .command) | ||||||
|     echo "docker run ${DOCKERARGS} ${IMAGE} ${TMP_COMMAND}" |     echo "docker run ${DOCKERARGS} ${IMAGE} ${TMP_COMMAND}" | ||||||
| } | } | ||||||
|  |  | ||||||
| make_container_cmd() { | make_container_cmd() { | ||||||
|     DOCKERARGS=$(echo ${1} | jq -r .dockerargs) |     DOCKERARGS=$(echo "${1}" | jq -r .dockerargs) | ||||||
|     if [ "${DOCKERARGS}" == "null" ]; then DOCKERARGS=; fi |     if [ "${DOCKERARGS}" == "null" ]; then DOCKERARGS=; fi | ||||||
|     SCRIPT_NAME=$(echo ${1} | jq -r .name) |     SCRIPT_NAME=$(echo "${1}" | jq -r .name) | ||||||
|     SCRIPT_NAME=$(slugify $SCRIPT_NAME) |     SCRIPT_NAME=$(slugify "$SCRIPT_NAME") | ||||||
|     PROJECT=$(echo ${1} | jq -r .project) |     PROJECT=$(echo "${1}" | jq -r .project) | ||||||
|     CONTAINER=$(echo ${1} | jq -r .container | envsubst) |     CONTAINER=$(echo "${1}" | jq -r .container | envsubst) | ||||||
|     TMP_COMMAND=$(echo ${1} | jq -r .command) |     TMP_COMMAND=$(echo "${1}" | jq -r .command) | ||||||
|  |  | ||||||
|     if [ "${PROJECT}" != "null" ]; then |     if [ "${PROJECT}" != "null" ]; then | ||||||
|  |  | ||||||
| @@ -96,7 +96,7 @@ make_container_cmd() { | |||||||
|         if [ "${SCRIPT_NAME}" == "null" ]; then |         if [ "${SCRIPT_NAME}" == "null" ]; then | ||||||
|             SCRIPT_NAME=$(cat /proc/sys/kernel/random/uuid) |             SCRIPT_NAME=$(cat /proc/sys/kernel/random/uuid) | ||||||
|         fi |         fi | ||||||
| cat << EOF > ${HOME_DIR}/projects/${SCRIPT_NAME}.sh | cat << EOF > "${HOME_DIR}"/projects/"${SCRIPT_NAME}".sh | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| set -e | set -e | ||||||
|  |  | ||||||
| @@ -119,14 +119,14 @@ EOF | |||||||
| #} | #} | ||||||
|  |  | ||||||
| make_cmd() { | make_cmd() { | ||||||
|     if [ "$(echo ${1} | jq -r .image)" != "null" ]; then |     if [ "$(echo "${1}" | jq -r .image)" != "null" ]; then | ||||||
|         make_image_cmd "$1" |         make_image_cmd "$1" | ||||||
|     elif [ "$(echo ${1} | jq -r .container)" != "null" ]; then |     elif [ "$(echo "${1}" | jq -r .container)" != "null" ]; then | ||||||
|         make_container_cmd "$1" |         make_container_cmd "$1" | ||||||
|     #elif [ "$(echo ${1} | jq -r .host)" != "null" ]; then |     #elif [ "$(echo ${1} | jq -r .host)" != "null" ]; then | ||||||
|     #   make_host_cmd "$1" |     #   make_host_cmd "$1" | ||||||
|     else |     else | ||||||
|         echo ${1} | jq -r .command |         echo "${1}" | jq -r .command | ||||||
|     fi |     fi | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -157,9 +157,9 @@ parse_schedule() { | |||||||
|             TIME=$2 |             TIME=$2 | ||||||
|             TOTAL=0 |             TOTAL=0 | ||||||
|  |  | ||||||
|             M=$(echo $TIME | grep -o '[0-9]\+m') |             M=$(echo "$TIME" | grep -o '[0-9]\+m') | ||||||
|             H=$(echo $TIME | grep -o '[0-9]\+h') |             H=$(echo "$TIME" | grep -o '[0-9]\+h') | ||||||
|             D=$(echo $TIME | grep -o '[0-9]\+d') |             D=$(echo "$TIME" | grep -o '[0-9]\+d') | ||||||
|  |  | ||||||
|             if [ -n "${M}" ]; then |             if [ -n "${M}" ]; then | ||||||
|                 TOTAL=$(($TOTAL + ${M::-1})) |                 TOTAL=$(($TOTAL + ${M::-1})) | ||||||
| @@ -186,31 +186,31 @@ function build_crontab() { | |||||||
|     ONSTART=() |     ONSTART=() | ||||||
|     while read i ; do |     while read i ; do | ||||||
|  |  | ||||||
|         SCHEDULE=$(jq -r .[$i].schedule ${CONFIG} | sed 's/\*/\\*/g') |         SCHEDULE=$(jq -r .["$i"].schedule "${CONFIG}" | sed 's/\*/\\*/g') | ||||||
|         if [ "${SCHEDULE}" == "null" ]; then |         if [ "${SCHEDULE}" == "null" ]; then | ||||||
|             echo "Schedule Missing: $(jq -r .[$i].schedule ${CONFIG})" |             echo "Schedule Missing: $(jq -r .["$i"].schedule "${CONFIG}")" | ||||||
|             continue |             continue | ||||||
|         fi |         fi | ||||||
|         SCHEDULE=$(parse_schedule ${SCHEDULE} | sed 's/\\//g') |         SCHEDULE=$(parse_schedule "${SCHEDULE}" | sed 's/\\//g') | ||||||
|  |  | ||||||
|         if [ "$(jq -r .[$i].command ${CONFIG})" == "null" ]; then |         if [ "$(jq -r .["$i"].command "${CONFIG}")" == "null" ]; then | ||||||
|             echo "Command Missing: $(jq -r .[$i].command ${CONFIG})" |             echo "Command Missing: $(jq -r .["$i"].command "${CONFIG}")" | ||||||
|             continue |             continue | ||||||
|         fi |         fi | ||||||
|  |  | ||||||
|         COMMENT=$(jq -r .[$i].comment ${CONFIG}) |         COMMENT=$(jq -r .["$i"].comment "${CONFIG}") | ||||||
|         if [ "${COMMENT}" != "null" ]; then |         if [ "${COMMENT}" != "null" ]; then | ||||||
|             echo "# ${COMMENT}" >> ${CRONTAB_FILE} |             echo "# ${COMMENT}" >> ${CRONTAB_FILE} | ||||||
|         fi |         fi | ||||||
|  |  | ||||||
|         SCRIPT_NAME=$(jq -r .[$i].name ${CONFIG}) |         SCRIPT_NAME=$(jq -r .["$i"].name "${CONFIG}") | ||||||
|         SCRIPT_NAME=$(slugify $SCRIPT_NAME) |         SCRIPT_NAME=$(slugify "$SCRIPT_NAME") | ||||||
|         if [ "${SCRIPT_NAME}" == "null" ]; then |         if [ "${SCRIPT_NAME}" == "null" ]; then | ||||||
|             SCRIPT_NAME=$(cat /proc/sys/kernel/random/uuid) |             SCRIPT_NAME=$(cat /proc/sys/kernel/random/uuid) | ||||||
|         fi |         fi | ||||||
|  |  | ||||||
|         COMMAND="/bin/bash ${HOME_DIR}/jobs/${SCRIPT_NAME}.sh" |         COMMAND="/bin/bash ${HOME_DIR}/jobs/${SCRIPT_NAME}.sh" | ||||||
| cat << EOF > ${HOME_DIR}/jobs/${SCRIPT_NAME}.sh | cat << EOF > "${HOME_DIR}"/jobs/"${SCRIPT_NAME}".sh | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| set -e | set -e | ||||||
|  |  | ||||||
| @@ -222,31 +222,31 @@ set -e | |||||||
|  |  | ||||||
| echo "Start Cronjob **${SCRIPT_NAME}** ${COMMENT}" | echo "Start Cronjob **${SCRIPT_NAME}** ${COMMENT}" | ||||||
|  |  | ||||||
| $(make_cmd "$(jq -c .[$i] ${CONFIG})") | $(make_cmd "$(jq -c .["$i"] "${CONFIG}")") | ||||||
| EOF | EOF | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|         if [ "$(jq -r .[$i].trigger ${CONFIG})" != "null" ]; then |         if [ "$(jq -r .["$i"].trigger "${CONFIG}")" != "null" ]; then | ||||||
|             while read j ; do |             while read j ; do | ||||||
|                 if [ "$(jq .[$i].trigger[$j].command ${CONFIG})" == "null" ]; then |                 if [ "$(jq .["$i"].trigger["$j"].command "${CONFIG}")" == "null" ]; then | ||||||
|                     echo "Command Missing: $(jq -r .[$i].trigger[$j].command ${CONFIG})" |                     echo "Command Missing: $(jq -r .["$i"].trigger["$j"].command "${CONFIG}")" | ||||||
|                     continue |                     continue | ||||||
|                 fi |                 fi | ||||||
|                 #TRIGGER_COMMAND=$(make_cmd "$(jq -c .[$i].trigger[$j] ${CONFIG})") |                 #TRIGGER_COMMAND=$(make_cmd "$(jq -c .[$i].trigger[$j] ${CONFIG})") | ||||||
|                 echo "$(make_cmd "$(jq -c .[$i].trigger[$j] ${CONFIG})")" >> ${HOME_DIR}/jobs/${SCRIPT_NAME}.sh |                 echo "$(make_cmd "$(jq -c .["$i"].trigger["$j"] "${CONFIG}")")" >> "${HOME_DIR}"/jobs/"${SCRIPT_NAME}".sh | ||||||
|                 #COMMAND="${COMMAND} && ${TRIGGER_COMMAND}" |                 #COMMAND="${COMMAND} && ${TRIGGER_COMMAND}" | ||||||
|             done < <(jq -r '.['$i'].trigger|keys[]' ${CONFIG}) |             done < <(jq -r '.['"$i"'].trigger|keys[]' "${CONFIG}") | ||||||
|         fi |         fi | ||||||
|  |  | ||||||
|         echo "echo \"End Cronjob **${SCRIPT_NAME}** ${COMMENT}\"" >> ${HOME_DIR}/jobs/${SCRIPT_NAME}.sh |         echo "echo \"End Cronjob **${SCRIPT_NAME}** ${COMMENT}\"" >> "${HOME_DIR}"/jobs/"${SCRIPT_NAME}".sh | ||||||
|  |  | ||||||
|         echo "${SCHEDULE} ${COMMAND}" >> ${CRONTAB_FILE} |         echo "${SCHEDULE} ${COMMAND}" >> ${CRONTAB_FILE} | ||||||
|  |  | ||||||
|         if [ "$(jq -r .[$i].onstart ${CONFIG})" == "true" ]; then |         if [ "$(jq -r .["$i"].onstart "${CONFIG}")" == "true" ]; then | ||||||
|             ONSTART+=("${COMMAND}") |             ONSTART+=("${COMMAND}") | ||||||
|         fi |         fi | ||||||
|     done < <(jq -r '.|keys[]' ${CONFIG}) |     done < <(jq -r '.|keys[]' "${CONFIG}") | ||||||
|  |  | ||||||
|     echo "##### crontab generation complete #####" |     echo "##### crontab generation complete #####" | ||||||
|     cat ${CRONTAB_FILE} |     cat ${CRONTAB_FILE} | ||||||
| @@ -271,7 +271,7 @@ start_app() { | |||||||
|         echo "NO CONFIG FILE FOUND" |         echo "NO CONFIG FILE FOUND" | ||||||
|     fi |     fi | ||||||
|     if [ "$1" = "crond" ]; then |     if [ "$1" = "crond" ]; then | ||||||
|         if [ -f ${CONFIG} ]; then |         if [ -f "${CONFIG}" ]; then | ||||||
|             build_crontab |             build_crontab | ||||||
|         else |         else | ||||||
|             echo "Unable to find ${CONFIG}" |             echo "Unable to find ${CONFIG}" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user