diff --git a/gp-scripts/snaplock-time.sh b/gp-scripts/snaplock-time.sh new file mode 100644 index 0000000..9eaaaa9 --- /dev/null +++ b/gp-scripts/snaplock-time.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +# 1970-01-01 00:00:00 equals to 2038-01-19 03:14:08 +# snaplock ends 2002-12-31 23:59:59 which is 2071-01-19 03:14:07 +SNAPLOCK_UPPER="2038-01-19 03:14:08" +SNAPLOCK_UPPER_EPOCH=$(date --utc --date="${SNAPLOCK_UPPER}" +%s) +SNAPLOCK_LOWER="2002-12-31 23:59:59" +SNAPLOCK_LOWER_EPOCH=$(date --utc --date="${SNAPLOCK_LOWER}" +%s) + + +if [[ "${@}" == "" ]]; then + echo "Please specify a date to convert" + exit 1 +fi + +DATE="$@" +if ! DATE_EPOCH=$(date --utc --date="${DATE}" +%s); then + echo "Could not convert \"${DATE}\"" + exit 1 +fi + +if [ ${DATE_EPOCH} -ge ${SNAPLOCK_UPPER_EPOCH} ]; then + SNAPLOCK_DATE_EPOCH=$((DATE_EPOCH-SNAPLOCK_UPPER_EPOCH)) +elif [ ${DATE_EPOCH} -le ${SNAPLOCK_LOWER_EPOCH} ]; then + SNAPLOCK_DATE_EPOCH=$((DATE_EPOCH+SNAPLOCK_UPPER_EPOCH)) +else + SNAPLOCK_DATE_EPOCH="${DATE_EPOCH}" +fi + +date --utc --date="@${SNAPLOCK_DATE_EPOCH}"