You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
git-secret/utils/build-utils.sh

98 lines
2.3 KiB
Bash

#!/usr/bin/env bash
set -e
# Initializing and settings:
READ_PEM=0644
EXEC_PEM=0755
SCRIPT_NAME='git-secret'
SCRIPT_DESCRIPTION='A bash-tool to store your private data inside a git repository.'
SCRIPT_VERSION="$(bash "${PWD}"/git-secret --version)"
# This might be overridden someday:
: "${SCRIPT_EPOCH:=0}"
: "${SCRIPT_ITERATION:=1}"
# This may be overridden:
if [[ -z "$SCRIPT_BUILD_DIR" ]]; then
SCRIPT_BUILD_DIR="${PWD}/build"
fi
SCRIPT_DEST_DIR="${SCRIPT_BUILD_DIR}/buildroot"
function locate_apk {
find "$SCRIPT_DEST_DIR" -maxdepth 1 -name '*.apk' | head -1
} # TODO: use an argument instead
function locate_deb {
find "$SCRIPT_DEST_DIR" -maxdepth 1 -name '*.deb' | head -1
}
function locate_rpm {
find "$SCRIPT_DEST_DIR" -maxdepth 1 -name '*.rpm' | 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_PEM" "${dir_switch}" 'git-secret' \
"${SCRIPT_DEST_DIR}/usr/bin/git-secret"
install -m "$EXEC_PEM" -d "${SCRIPT_DEST_DIR}/usr/share/man/man1"
install -m "$EXEC_PEM" -d "${SCRIPT_DEST_DIR}/usr/share/man/man7"
for file in man/man1/* ; do
if [[ "$file" == *.md ]]; then
continue
fi
install -D "${dir_switch}" \
-b -m "$READ_PEM" "${dir_switch}" "$file" \
"${SCRIPT_DEST_DIR}/usr/share/$file"
done
install -D "${dir_switch}" \
-b -m "$READ_PEM" "${dir_switch}" 'man/man7/git-secret.7' \
"${SCRIPT_DEST_DIR}/usr/share/man/man7/git-secret.7"
}
function build_package {
# Only requires `rpm`, `apk` or `deb` as first argument:
local build_type="$1"
# coreutils is for sha256sum
# See https://github.com/jordansissel/fpm for docs:
fpm \
-s dir \
-t "$build_type" \
-a all \
-n "$SCRIPT_NAME" \
--version "$SCRIPT_VERSION" \
--description "$SCRIPT_DESCRIPTION" \
--url "https://sobolevn.github.io/git-secret/" \
--maintainer "Nikita Sobolev (mail@sobolevn.me)" \
--license "MIT" \
-C "$SCRIPT_DEST_DIR" \
-d "bash" \
-d "coreutils" \
-d "gawk" \
-d "git" \
-d "gnupg" \
--deb-no-default-config-files \
.
}
function clean_up_files {
rm -rf "${SCRIPT_DEST_DIR:?}/usr"
}