git-secret/utils/build-utils.sh

95 lines
2.4 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -e
# shellcheck disable=SC1090,SC1091
source "$SECRETS_PROJECT_ROOT/src/version.sh"
# Initializing and settings:
2022-06-05 07:56:24 +00:00
readonly READ_PERM=0644
readonly EXEC_PERM=0755
2022-06-05 07:56:24 +00:00
readonly SCRIPT_NAME='git-secret'
readonly SCRIPT_DESCRIPTION='Shell scripts to encrypt your private data inside a git repository.'
readonly SCRIPT_VERSION="$GITSECRET_VERSION"
# This may be overridden:
if [[ -z "$SCRIPT_BUILD_DIR" ]]; then
SCRIPT_BUILD_DIR="$PWD/build"
fi
2022-06-05 07:56:24 +00:00
readonly SCRIPT_DEST_DIR="$SCRIPT_BUILD_DIR/buildroot"
function locate_release {
local release_type="$1"
2021-05-06 15:52:35 +00:00
local arch="${2:-}"
2021-05-06 14:47:41 +00:00
find "$SCRIPT_DEST_DIR" \
-maxdepth 1 \
-name "*${arch}.$release_type" | head -1
}
function preinstall_files {
# Only requires `-T` or `-c` depending on the OS
local dir_switch="$1"
# Preparing the files:
rm -rf "$SCRIPT_BUILD_DIR"
mkdir -p "$SCRIPT_DEST_DIR"
# Coping the files inside the build folder:
install -D "$dir_switch" \
-b -m "$EXEC_PERM" "$dir_switch" "$SCRIPT_NAME" \
2021-05-06 14:47:41 +00:00
"$SCRIPT_BUILD_DIR/usr/bin/$SCRIPT_NAME"
# Install the manualls:
2021-05-06 14:47:41 +00:00
install -m "$EXEC_PERM" -d "$SCRIPT_BUILD_DIR/usr/share/man/man1"
install -m "$EXEC_PERM" -d "$SCRIPT_BUILD_DIR/usr/share/man/man7"
2021-05-06 10:16:48 +00:00
for file in man/man1/*.1 ; do
install -D "$dir_switch" \
-b -m "$READ_PERM" "$dir_switch" "$file" \
2021-05-06 14:47:41 +00:00
"$SCRIPT_BUILD_DIR/usr/share/$file"
done
install -D "$dir_switch" \
-b -m "$READ_PERM" "$dir_switch" 'man/man7/git-secret.7' \
2021-05-06 14:47:41 +00:00
"$SCRIPT_BUILD_DIR/usr/share/man/man7/git-secret.7"
}
function build_package {
# Only requires `rpm`, `apk`, or `deb` as first argument:
local build_type="$1"
2021-05-06 14:47:41 +00:00
local arch_type="${2:-all}"
# coreutils is for sha256sum
# See https://github.com/jordansissel/fpm for docs:
fpm \
--input-type 'dir' \
--output-type "$build_type" \
2021-05-06 14:47:41 +00:00
--chdir "$SCRIPT_BUILD_DIR" \
--architecture "$arch_type" \
--name "$SCRIPT_NAME" \
--version "$SCRIPT_VERSION" \
--description "$SCRIPT_DESCRIPTION" \
--url 'https://git-secret.io' \
--maintainer 'Nikita Sobolev (mail@sobolevn.me)' \
--license 'MIT' \
--depends 'bash' \
--depends 'coreutils' \
--depends 'gawk' \
--depends 'git' \
--depends 'gnupg' \
--deb-no-default-config-files \
.
}
function clean_up_files {
2021-05-06 14:47:41 +00:00
# Pre-installed files:
rm -rf "${SCRIPT_BUILD_DIR:?}/usr"
# nfpm configs:
rm -rf "$SCRIPT_BUILD_DIR"/*.yml
}