Empaquetage à partir des hooks ok

This commit is contained in:
2015-08-05 15:49:04 +02:00
parent 5b0882ce7a
commit 0861421561
8 changed files with 104 additions and 151 deletions

View File

@ -7,31 +7,6 @@ source "${TAMARIN_UTIL}"
DIST_DIR="${BASE_DIR}/dist"
SRC_DIR="${BASE_DIR}/src"
HOOKS_DIR="${BASE_DIR}/hooks"
function exec_hooks {
hook=${1}
workspace=${2}
hook_scripts=$( find "${HOOKS_DIR}" -type f -name "*${hook}" -executable)
for hook_script in ${hook_scripts}; do
info "[hook-${hook}] Executing ${hook_script}"
( cd "${workspace}" && "${hook_script}" )
# If the script did not execute properly, we stop here
if [ $? != 0 ]; then
fatal "The '${hook_script}' hook script did not finished properly !"
fi
info "[hook-${hook}] ${hook_script} done."
done
}
function build_project {
@ -39,7 +14,8 @@ function build_project {
set_opt project_name "${PROJECT_NAME}"
workspace=$(mktemp -d)
local workspace=$(mktemp -d)/${PROJECT_NAME}
mkdir -p "${workspace}"
# Copy sources to workspace
cd ${SRC_DIR}
@ -48,7 +24,7 @@ function build_project {
exec_hooks "prebuild" "${workspace}"
cd "${workspace}"
dpkg-buildpackage -us -uc
dpkg-buildpackage -us -uc 2> >(error) 1> >(info)
if [ $? != 0 ]; then
fatal "The build process has not completed successfuly !"

View File

@ -6,7 +6,7 @@ DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
source "${DIR}/util.sh"
info "Updating packages definition..."
apt-get update
apt-get update 2> >(error) 1> >(info)
info "Installing package $1..."
gdebi --n "$1"
gdebi --n "$1" 2> >(error) 1> >(info)

View File

@ -1,36 +1,90 @@
#!/usr/bin/env bash
OPT_FILE="/tmp/.tamarin_opts"
HOOKS_DIR="${BASE_DIR}/hooks"
OPT_FILE="${BASE_DIR}/tmp/.tamarin_opts"
function info {
echo "[${HOSTNAME}] [INFO] $@"
if [ -z "$@" ]; then
while read str; do
log INFO "${str}"
done
else
log INFO "$@"
fi
}
function debug {
echo "[${HOSTNAME}] [DEBUG] $@"
if [ -z "$@" ]; then
while read str; do
log DEBUG "${str}"
done
else
log DEBUG "$@"
fi
}
function error {
echo "[${HOSTNAME}] [ERROR] $@" >&2
if [ -z "$@" ]; then
while read str; do
log ERROR "${str}" >&2
done
else
log ERROR "$@" >&2
fi
}
function fatal {
echo "[${HOSTNAME}] [FATAL] $@" >&2
if [ -z "$@" ]; then
while read str; do
log FATAL "${str}" >&2
done
else
log FATAL "$@" >&2
fi
exit 1
}
function log {
local args=( $@ )
echo "[${HOSTNAME}] [${args[0]}] ${args[@]:1}"
}
function get_opt {
opt_name=${1}
default_value=${2}
touch "${OPT_FILE}"
source "${OPT_FILE}"
echo ${!opt_name:-${default_value}}
local opt_name=${1}
local default_value=${2}
touch "${OPT_FILE}"
source "${OPT_FILE}"
echo ${!opt_name:-${default_value}}
}
function set_opt {
opt_name=${1}
opt_value=${2}
touch "${OPT_FILE}"
sed -i "s/^${opt_name}*$//" "${OPT_FILE}"
echo "${opt_name}=\"${opt_value}\"" >> "${OPT_FILE}"
local opt_name=${1}
local opt_value=${2}
touch "${OPT_FILE}"
sed -i "s/^${opt_name}*$//" "${OPT_FILE}"
echo "${opt_name}=\"${opt_value}\"" >> "${OPT_FILE}"
}
function exec_hooks {
local hook=${1}
local workspace=${2}
local hook_scripts=$( find "${HOOKS_DIR}" -type f -name "*${hook}" -executable)
for hook_script in ${hook_scripts}; do
info "[${hook}] Executing ${hook_script}"
( cd "${workspace}" && "${hook_script}" ) 2> >(error) 1> >(info)
# If the script did not execute properly, we stop here
if [ $? != 0 ]; then
fatal "The '${hook_script}' hook script did not finished properly !"
fi
info "[${hook}] ${hook_script} Done."
done
}