|
Ivan Mahonin |
e14835 |
#!/bin/bash
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
# options
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
if [ -z "$PLATFORM" ]; then
|
|
Ivan Mahonin |
e14835 |
PLATFORM="linux-x64"
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
export PLATFORM
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
if [ -z "$THREADS" ]; then
|
|
Ivan Mahonin |
e14835 |
THREADS=8
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
export THREADS
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
# root
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
ROOT_DIR=`realpath "$0"`
|
|
Ivan Mahonin |
e14835 |
ROOT_DIR=`dirname "$ROOT_DIR"`
|
|
Ivan Mahonin |
e14835 |
ROOT_DIR=`dirname "$ROOT_DIR"`
|
|
Ivan Mahonin |
e14835 |
ROOT_DIR=`dirname "$ROOT_DIR"`
|
|
Ivan Mahonin |
e14835 |
export ROOT_DIR
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
# dirs
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
export SCRIPT_DIR=$ROOT_DIR/script
|
|
Ivan Mahonin |
e14835 |
export COMMON_SCRIPT_DIR=$SCRIPT_DIR/common
|
|
Ivan Mahonin |
e14835 |
export INCLUDE_SCRIPT_DIR=$SCRIPT_DIR/include
|
|
Ivan Mahonin |
e14835 |
export PACKET_SCRIPT_DIR=$SCRIPT_DIR/packet
|
|
Ivan Mahonin |
e14835 |
export PACKET_DIR=$ROOT_DIR/packet/$PLATFORM
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
dd482a |
if [ ! -z $PACKET_BUILD_DIR ]; then
|
|
Ivan Mahonin |
dd482a |
export PACKET_DIR=$PACKET_BUILD_DIR/$PLATFORM
|
|
Ivan Mahonin |
dd482a |
fi
|
|
Ivan Mahonin |
dd482a |
|
|
Ivan Mahonin |
e14835 |
# vars
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
INITIAL_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
|
|
Ivan Mahonin |
e14835 |
INITIAL_PATH=$PATH
|
|
Ivan Mahonin |
e14835 |
INITIAL_LDFLAGS=$LDFLAGS
|
|
Ivan Mahonin |
e14835 |
INITIAL_CFLAGS=$CFLAGS
|
|
Ivan Mahonin |
e14835 |
INITIAL_CPPFLAGS=$CPPFLAGS
|
|
Ivan Mahonin |
e14835 |
INITIAL_PKG_CONFIG_PATH=$PKG_CONFIG_PATH
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
###################################
|
|
Ivan Mahonin |
e14835 |
#
|
|
Ivan Mahonin |
e14835 |
# Fairy Tale
|
|
Ivan Mahonin |
e14835 |
#
|
|
Ivan Mahonin |
e14835 |
# Once upon time in faraway...
|
|
Ivan Mahonin |
e14835 |
#
|
|
Ivan Mahonin |
e14835 |
# Function dependency:
|
|
Ivan Mahonin |
e14835 |
#
|
|
Ivan Mahonin |
e14835 |
# 1. download
|
|
Ivan Mahonin |
e14835 |
# |
|
|
Ivan Mahonin |
e14835 |
# 2. unpack
|
|
Ivan Mahonin |
e14835 |
# |
|
|
Ivan Mahonin |
e14835 |
# | env^
|
|
Ivan Mahonin |
e14835 |
# | |
|
|
Ivan Mahonin |
e14835 |
# 3. | envdeps
|
|
Ivan Mahonin |
e14835 |
# | | |
|
|
Ivan Mahonin |
e14835 |
# 4. build |
|
|
Ivan Mahonin |
e14835 |
# | |
|
|
Ivan Mahonin |
e14835 |
# 5. install |
|
|
Ivan Mahonin |
e14835 |
# | | |
|
|
Ivan Mahonin |
e14835 |
# 6. | env
|
|
Ivan Mahonin |
e14835 |
# | |
|
|
Ivan Mahonin |
e14835 |
# | envdeps*
|
|
Ivan Mahonin |
e14835 |
# |
|
|
Ivan Mahonin |
e14835 |
# 7. install_release
|
|
Ivan Mahonin |
e14835 |
# |
|
|
Ivan Mahonin |
e14835 |
# | env_release^
|
|
Ivan Mahonin |
e14835 |
# | |
|
|
Ivan Mahonin |
e14835 |
# 8. | envdeps_release
|
|
Ivan Mahonin |
e14835 |
# | |
|
|
Ivan Mahonin |
e14835 |
# 9. env_release
|
|
Ivan Mahonin |
e14835 |
# |
|
|
Ivan Mahonin |
e14835 |
# envdeps_release*
|
|
Ivan Mahonin |
e14835 |
#
|
|
Ivan Mahonin |
e14835 |
###################################
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
copy() {
|
|
Ivan Mahonin |
e14835 |
if [ -d "$1" ]; then
|
|
Ivan Mahonin |
e14835 |
if ! mkdir -p $2; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
if [ "$(ls -A $1)" ]; then
|
|
Ivan Mahonin |
e14835 |
if ! cp -rlf $1/* "$2/"; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
elif [ -f "$1" ]; then
|
|
Ivan Mahonin |
e14835 |
if ! (mkdir -p `dirname $2` && cp -l "$1" "$2"); then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
else
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
message() {
|
|
Ivan Mahonin |
e14835 |
echo " ------ $1"
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_done() {
|
|
Ivan Mahonin |
e14835 |
touch "$PACKET_DIR/$1/$2.done"
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_undone_silent() {
|
|
Ivan Mahonin |
dd482a |
rm -f $PACKET_DIR/$1/$2.*.done
|
|
Ivan Mahonin |
e14835 |
rm -f "$PACKET_DIR/$1/$2.done"
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_undone() {
|
|
Ivan Mahonin |
e14835 |
message "$1 set_undone $2"
|
|
Ivan Mahonin |
e14835 |
set_undone_silent $1 $2
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory_silent() {
|
|
Ivan Mahonin |
e14835 |
if [ ! -z "$DRY_RUN" ]; then
|
|
Ivan Mahonin |
e14835 |
return 0
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
set_undone_silent $1 $2
|
|
Ivan Mahonin |
dd482a |
rm -rf "$PACKET_DIR/$1/$2"
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory() {
|
|
Ivan Mahonin |
e14835 |
message "$1 clean $2"
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory_silent $1 $2
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
check_packet_function() {
|
|
Ivan Mahonin |
e14835 |
if [ ! -f "$PACKET_DIR/$1/$2.done" ]; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
prepare_build() {
|
|
Ivan Mahonin |
e14835 |
if ! copy "$UNPACK_PACKET_DIR" "$BUILD_PACKET_DIR"; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_environment_vars() {
|
|
Ivan Mahonin |
e14835 |
export NAME=$1
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
export CURRENT_PACKET_DIR=$PACKET_DIR/$NAME
|
|
Ivan Mahonin |
e14835 |
export FILES_PACKET_DIR=$PACKET_SCRIPT_DIR/$NAME.files
|
|
Ivan Mahonin |
e14835 |
export DOWNLOAD_PACKET_DIR=$CURRENT_PACKET_DIR/download
|
|
Ivan Mahonin |
e14835 |
export UNPACK_PACKET_DIR=$CURRENT_PACKET_DIR/unpack
|
|
Ivan Mahonin |
e14835 |
export ENVDEPS_PACKET_DIR=$CURRENT_PACKET_DIR/envdeps
|
|
Ivan Mahonin |
e14835 |
export BUILD_PACKET_DIR=$CURRENT_PACKET_DIR/build
|
|
Ivan Mahonin |
e14835 |
export INSTALL_PACKET_DIR=$CURRENT_PACKET_DIR/install
|
|
Ivan Mahonin |
e14835 |
export INSTALL_RELEASE_PACKET_DIR=$CURRENT_PACKET_DIR/install_release
|
|
Ivan Mahonin |
e14835 |
export ENV_PACKET_DIR=$CURRENT_PACKET_DIR/env
|
|
Ivan Mahonin |
e14835 |
export ENVDEPS_RELEASE_PACKET_DIR=$CURRENT_PACKET_DIR/envdeps_release
|
|
Ivan Mahonin |
e14835 |
export ENV_RELEASE_PACKET_DIR=$CURRENT_PACKET_DIR/env_release
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
export LD_LIBRARY_PATH="$ENV_PACKET_DIR/lib:$ENV_PACKET_DIR/lib64:$ENVDEPS_PACKET_DIR/lib:$ENVDEPS_PACKET_DIR/lib64:$INITIAL_LD_LIBRARY_PATH"
|
|
Ivan Mahonin |
e14835 |
export PATH="$ENVDEPS_PACKET_DIR/bin:$INITIAL_PATH"
|
|
Ivan Mahonin |
e14835 |
export LDFLAGS="-L$ENVDEPS_PACKET_DIR/lib $INITIAL_LDFLAGS"
|
|
Ivan Mahonin |
e14835 |
export CFLAGS="-I$ENVDEPS_PACKET_DIR/include $INITIAL_CFLAGS"
|
|
Ivan Mahonin |
e14835 |
export CPPFLAGS="-I$ENVDEPS_PACKET_DIR/include $INITIAL_CPPFLAGS"
|
|
Ivan Mahonin |
e14835 |
export PKG_CONFIG_PATH="$ENVDEPS_PACKET_DIR/lib/pkgconfig:$INITIAL_PKG_CONFIG_PATH"
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
call_packet_function() {
|
|
Ivan Mahonin |
e14835 |
local NAME=$1
|
|
Ivan Mahonin |
e14835 |
local FUNC=$2
|
|
Ivan Mahonin |
e14835 |
local PREPARE_FUNC=$3
|
|
Ivan Mahonin |
e14835 |
local FINALIZE_FUNC=$4
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_environment_vars $NAME
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
local FUNC_NAME=pk$FUNC
|
|
Ivan Mahonin |
e14835 |
local FUNC_CURRENT_PACKET_DIR=$CURRENT_PACKET_DIR/$FUNC
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
message "$NAME $FUNC"
|
|
Ivan Mahonin |
e14835 |
if [ ! -z "$DRY_RUN" ]; then
|
|
Ivan Mahonin |
e14835 |
return 0
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_undone_silent $NAME $FUNC
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
mkdir -p $FUNC_CURRENT_PACKET_DIR
|
|
Ivan Mahonin |
e14835 |
cd $FUNC_CURRENT_PACKET_DIR
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
69b66f |
source $INCLUDE_SCRIPT_DIR/inc-pkall-none.sh
|
|
Ivan Mahonin |
e14835 |
source "$PACKET_SCRIPT_DIR/$NAME.sh"
|
|
Ivan Mahonin |
e14835 |
[ ! $? -eq 0 ] && return 1
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
if [ ! -z "$PREPARE_FUNC" ]; then
|
|
Ivan Mahonin |
e14835 |
if ! "$PREPARE_FUNC"; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
if ! "$FUNC_NAME"; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
if [ ! -z "$FINALIZE_FUNC" ]; then
|
|
Ivan Mahonin |
e14835 |
if ! "$FINALIZE_FUNC"; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_done $NAME $FUNC
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
foreach_deps() {
|
|
Ivan Mahonin |
e14835 |
local NAME=$1
|
|
Ivan Mahonin |
e14835 |
local FUNC=$2
|
|
Ivan Mahonin |
e14835 |
local RECURSIVE=$3
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
source $PACKET_SCRIPT_DIR/$NAME.sh
|
|
Ivan Mahonin |
e14835 |
[ ! $? -eq 0 ] && return 1
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
local CURRENT_DEPS=$DEPS
|
|
Ivan Mahonin |
e14835 |
for DEP in $CURRENT_DEPS; do
|
|
Ivan Mahonin |
e14835 |
if [ ! -z "$DEP" ]; then
|
|
Ivan Mahonin |
e14835 |
local DEP_LOCAL=$DEP
|
|
Ivan Mahonin |
e14835 |
if [ "$RECURSIVE" = "recursive" ]; then
|
|
Ivan Mahonin |
e14835 |
if ! foreach_deps "$DEP_LOCAL" "$FUNC" "$RECURSIVE"; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
if ! "$FUNC" "$DEP_LOCAL" "$NAME"; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
done
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
add_envdeps() {
|
|
Ivan Mahonin |
e14835 |
if ! copy "$PACKET_DIR/$1/env" "$PACKET_DIR/$2/envdeps"; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
add_envdeps_release() {
|
|
Ivan Mahonin |
e14835 |
if ! copy "$PACKET_DIR/$1/env_release" "$PACKET_DIR/$2/envdeps_release"; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
download() {
|
|
Ivan Mahonin |
e14835 |
if ! (check_packet_function $1 download || call_packet_function $1 download); then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
unpack() {
|
|
Ivan Mahonin |
e14835 |
if ! (check_packet_function $1 unpack || (download $1 && call_packet_function $1 unpack)); then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
envdeps() {
|
|
Ivan Mahonin |
e14835 |
if check_packet_function $1 envdeps; then
|
|
Ivan Mahonin |
e14835 |
return 0
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
local NAME=$1
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
if ! foreach_deps $NAME env; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
message "$NAME envdeps"
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
if [ ! -z "$DRY_RUN" ]; then
|
|
Ivan Mahonin |
e14835 |
return 0
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory_silent $NAME envdeps
|
|
Ivan Mahonin |
e14835 |
mkdir -p "$PACKET_DIR/$NAME/envdeps"
|
|
Ivan Mahonin |
e14835 |
if ! foreach_deps $NAME add_envdeps; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
set_done $NAME envdeps
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
build() {
|
|
Ivan Mahonin |
e14835 |
if ! (check_packet_function $1 build || (envdeps $1 && unpack $1 && call_packet_function $1 build prepare_build)); then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
install() {
|
|
Ivan Mahonin |
69b66f |
if ! (check_packet_function $1 install || (envdeps $1 && build $1 && call_packet_function $1 install)); then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
env() {
|
|
Ivan Mahonin |
e14835 |
if check_packet_function $1 env; then
|
|
Ivan Mahonin |
e14835 |
return 0
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
local NAME=$1
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
if ! (install $1 && envdeps $1); then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
message "$NAME env"
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
if [ ! -z "$DRY_RUN" ]; then
|
|
Ivan Mahonin |
e14835 |
return 0
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory_silent $NAME env
|
|
Ivan Mahonin |
e14835 |
mkdir -p "$PACKET_DIR/$NAME/env"
|
|
Ivan Mahonin |
e14835 |
if ! (copy "$PACKET_DIR/$NAME/envdeps" "$PACKET_DIR/$NAME/env" \
|
|
Ivan Mahonin |
e14835 |
&& copy "$PACKET_DIR/$NAME/install" "$PACKET_DIR/$NAME/env"); then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
set_done $NAME env
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
install_release() {
|
|
Ivan Mahonin |
e14835 |
if ! (check_packet_function $1 install_release || (install $1 && call_packet_function $1 install_release)); then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
envdeps_release() {
|
|
Ivan Mahonin |
e14835 |
if check_packet_function $1 envdeps_release; then
|
|
Ivan Mahonin |
e14835 |
return 0
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
local NAME=$1
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
if ! foreach_deps $NAME env_release; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
message "$NAME envdeps_release"
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
if [ ! -z "$DRY_RUN" ]; then
|
|
Ivan Mahonin |
e14835 |
return 0
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory_silent $NAME envdeps_release
|
|
Ivan Mahonin |
e14835 |
mkdir -p "$PACKET_DIR/$NAME/envdeps_release"
|
|
Ivan Mahonin |
e14835 |
if ! foreach_deps $NAME add_envdeps_release; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
set_done $NAME envdeps_release
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
env_release() {
|
|
Ivan Mahonin |
e14835 |
if check_packet_function $1 env_release; then
|
|
Ivan Mahonin |
e14835 |
return 0
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
local NAME=$1
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
if ! (install_release $1 && envdeps_release $1); then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
message "$NAME env_release"
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
if [ ! -z "$DRY_RUN" ]; then
|
|
Ivan Mahonin |
e14835 |
return 0
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory_silent $NAME env_release
|
|
Ivan Mahonin |
e14835 |
mkdir -p "$PACKET_DIR/$NAME/env_release"
|
|
Ivan Mahonin |
e14835 |
if ! (copy "$PACKET_DIR/$NAME/envdeps_release" "$PACKET_DIR/$NAME/env_release" \
|
|
Ivan Mahonin |
e14835 |
&& copy "$PACKET_DIR/$NAME/install_release" "$PACKET_DIR/$NAME/env_release"); then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
set_done $NAME env_release
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
#############
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_download() {
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory $1 download
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_unpack() {
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory $1 download
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_envdeps() {
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory $1 envdeps
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_build() {
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory $1 build
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_install() {
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory $1 install
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_env() {
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory $1 env
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_install_release() {
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory $1 install_release
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_envdeps_release() {
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory $1 envdeps_release
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean_env_release() {
|
|
Ivan Mahonin |
e14835 |
clean_packet_directory $1 env_release
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean() {
|
|
Ivan Mahonin |
e14835 |
clean_download $1
|
|
Ivan Mahonin |
e14835 |
clean_unpack $1
|
|
Ivan Mahonin |
e14835 |
clean_envdeps $1
|
|
Ivan Mahonin |
e14835 |
clean_build $1
|
|
Ivan Mahonin |
e14835 |
clean_install $1
|
|
Ivan Mahonin |
e14835 |
clean_env $1
|
|
Ivan Mahonin |
e14835 |
clean_install_release $1
|
|
Ivan Mahonin |
e14835 |
clean_envdeps_release $1
|
|
Ivan Mahonin |
e14835 |
clean_env_release $1
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
dd482a |
clean_all_install() {
|
|
Ivan Mahonin |
dd482a |
clean_envdeps $1
|
|
Ivan Mahonin |
dd482a |
clean_build $1
|
|
Ivan Mahonin |
dd482a |
clean_install $1
|
|
Ivan Mahonin |
dd482a |
clean_env $1
|
|
Ivan Mahonin |
dd482a |
clean_install_release $1
|
|
Ivan Mahonin |
dd482a |
clean_envdeps_release $1
|
|
Ivan Mahonin |
dd482a |
clean_env_release $1
|
|
Ivan Mahonin |
dd482a |
}
|
|
Ivan Mahonin |
dd482a |
|
|
Ivan Mahonin |
1cbd1f |
clean_all_env() {
|
|
Ivan Mahonin |
69b66f |
clean_install $1
|
|
Ivan Mahonin |
69b66f |
clean_install_release $1
|
|
Ivan Mahonin |
1cbd1f |
clean_envdeps $1
|
|
Ivan Mahonin |
1cbd1f |
clean_env $1
|
|
Ivan Mahonin |
1cbd1f |
clean_envdeps_release $1
|
|
Ivan Mahonin |
1cbd1f |
clean_env_release $1
|
|
Ivan Mahonin |
1cbd1f |
}
|
|
Ivan Mahonin |
1cbd1f |
|
|
Ivan Mahonin |
e14835 |
#############
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_undone_download() {
|
|
Ivan Mahonin |
e14835 |
set_undone $1 download
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_undone_unpack() {
|
|
Ivan Mahonin |
e14835 |
set_undone $1 download
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_undone_envdeps() {
|
|
Ivan Mahonin |
e14835 |
set_undone $1 envdeps
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_undone_build() {
|
|
Ivan Mahonin |
e14835 |
set_undone $1 build
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_undone_install() {
|
|
Ivan Mahonin |
e14835 |
set_undone $1 install
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_undone_env() {
|
|
Ivan Mahonin |
e14835 |
set_undone $1 env
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_undone_install_release() {
|
|
Ivan Mahonin |
e14835 |
set_undone $1 install_release
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_undone_envdeps_release() {
|
|
Ivan Mahonin |
e14835 |
set_undone $1 envdeps_release
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
set_undone_env_release() {
|
|
Ivan Mahonin |
e14835 |
set_undone $1 env_release
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
clean() {
|
|
Ivan Mahonin |
e14835 |
set_undone_download $1
|
|
Ivan Mahonin |
e14835 |
set_undone_unpack $1
|
|
Ivan Mahonin |
e14835 |
set_undone_envdeps $1
|
|
Ivan Mahonin |
e14835 |
set_undone_build $1
|
|
Ivan Mahonin |
e14835 |
set_undone_install $1
|
|
Ivan Mahonin |
e14835 |
set_undone_env $1
|
|
Ivan Mahonin |
e14835 |
set_undone_install_release $1
|
|
Ivan Mahonin |
e14835 |
set_undone_envdeps_release $1
|
|
Ivan Mahonin |
e14835 |
set_undone_env_release $1
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
#############
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
with_deps() {
|
|
Ivan Mahonin |
e14835 |
if ! foreach_deps "$2" "$1" "recursive"; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
if ! "$1" "$2"; then
|
|
Ivan Mahonin |
e14835 |
return 1
|
|
Ivan Mahonin |
e14835 |
fi
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
shell() {
|
|
Ivan Mahonin |
e14835 |
set_environment_vars $1
|
|
Ivan Mahonin |
e14835 |
cd $PACKET_DIR/$1
|
|
Ivan Mahonin |
e14835 |
/bin/bash -i
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
dry_run() {
|
|
Ivan Mahonin |
e14835 |
DRY_RUN=1
|
|
Ivan Mahonin |
e14835 |
"$@"
|
|
Ivan Mahonin |
e14835 |
}
|
|
Ivan Mahonin |
e14835 |
|
|
Ivan Mahonin |
e14835 |
"$@"
|