125 lines
3.9 KiB
Bash
Executable File
125 lines
3.9 KiB
Bash
Executable File
#!/bin/bash -e
|
|
#
|
|
# Build GPG files.
|
|
#
|
|
# @package Bash
|
|
# @author Kai Kimera <mail@kai.kim>
|
|
# @copyright 2023 Kai Kimera
|
|
# @license MIT
|
|
# @version 0.0.1
|
|
# @link https://github.com/ghastore
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
# CONFIGURATION.
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
|
|
# Vars.
|
|
GIT_REPO="${1}"
|
|
GIT_USER="${2}"
|
|
GIT_EMAIL="${3}"
|
|
GIT_TOKEN="${4}"
|
|
GPG_URL="${5}"
|
|
GPG_NAME="${6}"
|
|
GPG_CMD="${7}"
|
|
USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"
|
|
|
|
# Apps.
|
|
date="$( command -v date )"
|
|
git="$( command -v git )"
|
|
curl="$( command -v curl )"
|
|
gpg="$( command -v gpg )"
|
|
|
|
# Dirs.
|
|
d_src="/root/git/repo"
|
|
|
|
# Git.
|
|
${git} config --global user.name "${GIT_USER}"
|
|
${git} config --global user.email "${GIT_EMAIL}"
|
|
${git} config --global init.defaultBranch 'main'
|
|
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
# INITIALIZATION.
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
|
|
init() {
|
|
ts="$( _timestamp )"
|
|
|
|
clone \
|
|
&& build \
|
|
&& push
|
|
}
|
|
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
# GIT: CLONE REPOSITORY.
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
|
|
clone() {
|
|
echo "--- [GIT] CLONE: ${GIT_REPO#https://}"
|
|
|
|
local src="https://${GIT_USER}:${GIT_TOKEN}@${GIT_REPO#https://}"
|
|
${git} clone "${src}" "${d_src}"
|
|
|
|
echo "--- [GIT] LIST: '${d_src}'"
|
|
ls -1 "${d_src}"
|
|
}
|
|
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
# GPG: BUILD FILES.
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
|
|
build() {
|
|
echo "--- [GPG] BUILD"
|
|
_pushd "${d_src}" || exit 1
|
|
|
|
if [[ "${GPG_CMD}" == "dearmor" ]]; then
|
|
${curl} -X GET -A "${USER_AGENT}" -fsSL "${GPG_URL}" | ${gpg} --batch --yes --dearmor -o "${GPG_NAME}"
|
|
else
|
|
${curl} -X GET -A "${USER_AGENT}" -fsSL -o "${GPG_NAME}" "${GPG_URL}"
|
|
fi
|
|
|
|
_popd || exit 1
|
|
}
|
|
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
# GIT: PUSH GPG TO GPG STORE REPOSITORY.
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
|
|
push() {
|
|
echo "--- [GIT] PUSH: '${d_src}' -> '${GIT_REPO#https://}'"
|
|
_pushd "${d_src}" || exit 1
|
|
|
|
# Commit build files & push.
|
|
echo "Commit build files & push..."
|
|
${git} add . \
|
|
&& ${git} commit -a -m "BUILD: ${ts}" \
|
|
&& ${git} push
|
|
|
|
_popd || exit 1
|
|
}
|
|
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
# ------------------------------------------------< COMMON FUNCTIONS >------------------------------------------------ #
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
|
|
# Pushd.
|
|
_pushd() {
|
|
command pushd "$@" > /dev/null || exit 1
|
|
}
|
|
|
|
# Popd.
|
|
_popd() {
|
|
command popd > /dev/null || exit 1
|
|
}
|
|
|
|
# Timestamp.
|
|
_timestamp() {
|
|
${date} -u '+%Y-%m-%d %T'
|
|
}
|
|
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
# -------------------------------------------------< RUNNING SCRIPT >------------------------------------------------- #
|
|
# -------------------------------------------------------------------------------------------------------------------- #
|
|
|
|
init "$@"; exit 0
|