#!/bin/sh --
#	gpg_decrypttouch.sh - De-encryption with keep the timestamp and the permission.
#	Mon,14 Jan,2008
#	Copyright(C)2008 G-HAL
#
RM=/bin/rm
CHMOD=/bin/chmod
ECHO=/bin/echo
BASENAME=/usr/bin/basename
DIRNAME=/usr/bin/dirname
STAT=/usr/bin/stat
TOUCH=/usr/bin/touch
SED=/usr/bin/sed
GNUPG=/usr/local/bin/gpg
GNUPG_OPT___DECRYPT_FILE=--decrypt-file
#
SED_REFORMAT__GET_SUFFIX='s/^.*(\.[^\.]*)$/\1/'
#
#
if [ "x${1}" = "x" ]; then
  echo "$0: Argment required..."
  exit 1
fi
if [ "x${1}" = "x--delete" ]; then
  ARG_FILE=$2
  SW_RM=true
else
  ARG_FILE=$1
  SW_RM=false
fi
if [ ! -f ${ARG_FILE} ]; then
  echo "$0: No input file..."
  exit 1
fi
#
ARG_DIR=`${DIRNAME} ${ARG_FILE}`
ARG_SUFFIX=`${ECHO} "${ARG_FILE}" | ${SED} -E "${SED_REFORMAT__GET_SUFFIX}"`
if [ "${ARG_SUFFIX}" = "${ARG_FILE}" ]; then
  echo "$0: Can't quarry suffix..."
  exit 1
fi
ARG_BASE=`${BASENAME} -s ${ARG_SUFFIX} ${ARG_FILE}`
DST_FILE="${ARG_DIR}/${ARG_BASE}"
#
if [ ! "${ARG_SUFFIX}" = ".asc" -a ! "${ARG_SUFFIX}" = ".gpg" ]; then
  echo "$0: Unknown suffix..."
  exit 1
fi
#
#
${GNUPG} ${GNUPG_OPT___DECRYPT_FILE} ${ARG_FILE}
GNUPG_RET=$?
if [ ${GNUPG_RET} -ne 0 ]; then
  exit ${GNUPG_RET}
fi
#
${TOUCH} -c -h -r ${ARG_FILE} ${DST_FILE}
${CHMOD} -h `${STAT} -n -f "%Mp%03Lp" ${ARG_FILE}` ${DST_FILE}
if [ ${SW_RM} = true ]; then
  ${RM} -P ${ARG_FILE}
fi
#
# [ End of File ]

