#!/bin/bash
#  Copyright (c) 2016 - 2020 by NuTyX team (http://nutyx.org)
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 
#  USA.
#
usage () {
echo '
USAGE
      mybld [option] <collection>|<package> [version]

OPTIONS
      -c, --cleanup <collection>
              Clean the /<version>/<collection> folder in a safety way.


      -R, --runtime <dependency package>
              Return the list of package depending on the <dependency package>.

      -A, --ask
              Ask for confirmation.

      -p, --pause
              Make a pause after enter in to the chroot.

      -n, --new <collection>/<package> [version] [description] [source]
              Create a new <collection>/<package>/Pkgfile.

      -i, --increment <package>
             Increment the release number and build the package.

      -I, --init
             Create all the necessary folder (sources, LOGS and depot).

      -s, --sync [package|collection]
             Synchronize all the binaries of the [package|collection].

MORE INFO
       mybld(8)

'|more
}
check_root() {
if [ "$UID" == "0" ]; then
	echo "The 'root' account is not allow to building packages"
	exit 1
fi
}
generate_Pkgfile() {
if [ ! -d ${COLLECTION} ]; then
	echo  "
>>>     The collection '${COLLECTION}' does not exist
"
	exit 1
fi
if [ "$(git config user.name)" == "" ];then
	echo "
>>>     your username is not set in your $HOME/.gitconfig
"
	exit 1
fi
if [ "$(git config user.email)" == "" ];then
	echo "
>>>     your email is  not set in your $HOME/.gitconfig
"
	exit 1
fi
if [ -f ${COLLECTION}/${PARAM}/Pkgfile ];then
	echo "
>>>     ABORT: File '${COLLECTION}/${PARAM}/Pkgfile' already exist !!!
"
	exit 1
fi
mkdir -p "${COLLECTION}/${PARAM}"
echo "description=\"${3}\"
url=\"\"

packager=\"$(git config user.name) <$(git config user.email)>\"
contributors=\"\"

makedepends=()
run=()
set=()

name=${PARAM}
version=${2}

source=(${4})

build() {
cd \$name-\$version
./configure --prefix=/usr
make
make DESTDIR=\$PKG install
}" \
> ${COLLECTION}/${PARAM}/Pkgfile
$EDITOR ${COLLECTION}/${PARAM}/Pkgfile
}
create_folders () {
if [ -z "$VERSION" ]; then
	echo "
>>>     VERSION is not SET
"
	exit 1
fi
sudo mkdir -p $ROOT/$VERSION
sudo chown -R $(whoami):$(whoami) $ROOT/$VERSION
sudo mkdir -p /$ROOTMOUNT/{logs/$(uname -m)/$VERSION,sources,$(uname -m)/$VERSION}
sudo chown -R $(whoami):$(whoami) /$ROOTMOUNT
exit 0
}
rsync_binaries () {
if [ -z "$VERSION" ]; then
	echo "
>>>     VERSION is not SET
"
	exit 1
fi
if [ ! -z ${PARAM[0]} ]; then
	echo "
sudo mkdir -p $ROOTMOUNT/$(uname -m)/$VERSION/$COLLECTION/${PARAM[0]}/
sudo chown -R $(whoami):$(whoami) $ROOTMOUNT/$(uname -m)/$VERSION/$COLLECTION/${PARAM[0]}/
rsync -av --delete $URL/$(uname -m)/$VERSION/$COLLECTION/${PARAM[0]}/  \\
$ROOTMOUNT/$(uname -m)/$VERSION/$COLLECTION/${PARAM[0]}/
"
	echo -n "  OK ? (y) : "
	answer
	sudo mkdir -p $ROOTMOUNT/$(uname -m)/$VERSION/$COLLECTION/${PARAM[0]}/
	sudo chown -R $(whoami):$(whoami) $ROOTMOUNT/$(uname -m)/$VERSION/$COLLECTION/${PARAM[0]}/
	rsync -av --delete $URL/$(uname -m)/$VERSION/$COLLECTION/${PARAM[0]}/ \
$ROOTMOUNT/$(uname -m)/$VERSION/$COLLECTION/${PARAM[0]}/
	exit 0
fi

if [ ! -z $COLLECTION ]; then
	echo "
sudo mkdir -p $ROOTMOUNT/$(uname -m)/$VERSION/$COLLECTION/
sudo chown -R $(whoami):$(whoami) $ROOTMOUNT/$(uname -m)/$VERSION/$COLLECTION/
rsync -av --delete $URL/$(uname -m)/$VERSION/$COLLECTION/ $ROOTMOUNT/$(uname -m)/$VERSION/$COLLECTION/
"
	echo -n "  OK ? (y) : "
	answer
	sudo mkdir -p $ROOTMOUNT/$(uname -m)/$VERSION/$COLLECTION/
	sudo chown -R $(whoami):$(whoami) $ROOTMOUNT/$(uname -m)/$VERSION/$COLLECTION/
	rsync -av --delete $URL/$(uname -m)/$VERSION/$COLLECTION/ $ROOTMOUNT/$(uname -m)/$VERSION/$COLLECTION/
	exit 0
fi

echo "
mkdir -p $ROOTMOUNT/$(uname -m)/$VERSION/
sudo chown -R $(whoami):$(whoami) $ROOTMOUNT/$(uname -m)/$VERSION/
rsync -av --delete $URL/$(uname -m)/$VERSION/ $ROOTMOUNT/$(uname -m)/$VERSION/
"
echo -n "  OK ? (y) : "
answer
mkdir -p $ROOTMOUNT/$(uname -m)/$VERSION/
sudo chown -R $(whoami):$(whoami) $ROOTMOUNT/$(uname -m)/$VERSION/
rsync -av --delete $URL/$(uname -m)/$VERSION/ $ROOTMOUNT/$(uname -m)/$VERSION/
exit 0
}
parse_arguments() {
while [ "$1" ]; do
case $1 in
	-c|--cleanup)
		CLEANUP="yes"
		shift
		if [ -z ${1} ]; then
			echo "You need to specify a collection"
			exit 1
		fi
		PARAM+=($1);;

	-n|--new)
		shift
		COLLECTION="$(echo ${1}|cut -d '/' -f1)"
		PARAM="$(echo ${1}|cut -d '/' -f2)"
		find_collection
		if [ -z "${COLLECTION}" ]; then
			COLLECTION="$(echo ${1}|cut -d '/' -f1)"
			generate_Pkgfile "$@"
			exit 0
		else
			echo "
>>>     The package '${PARAM}' already exist in the '${COLLECTION}' collection !!!
"
			exit 1
		fi;;

	-R|--runtime)
		RUNTIME="yes"
		shift
		if [ -z ${1} ]; then
			echo "You need to specify a runtime dependancy package name"
			exit 1
		fi
		PARAM+=($1)
		find_collection
		if [ -z "${COLLECTION}" ]; then
			echo "
>>>	WARNING package '${PARAM[0]}' not found in any collection
"
		fi
		find_runtime ${1}
		exit 0;;

	-i|--increment)
		INCREMENT="yes"
		shift
		PARAM+=($1);;

	-p|--pause)
		PAUSE=" && printf \"You are now in the chroot.\n\
Type exit when finish.\n\n Good Luck !!!\n\n\" && bash";;

	-I|--init)
		INIT="yes";;

	-s|--sync)
		SYNC="yes"
		if [ ! -z $2 ]; then
			shift
			PARAM+=($1)
		fi;;

	-A|--ask)
		CONFIRM="yes"
		echo "====> you ask confirmation" ;;

	-h|--help)
		usage
		exit 0 ;;

	-*|--*)
		usage
		exit 1;;
	*)
			PARAM+=($1)
	esac

	shift
done
}
interrupted() {
echo "Interrupted !!!"
}
trap "interrupted" SIGHUP SIGINT SIGQUIT SIGTERM
umount_all() {
for FOLDER in $MOUNT_POINTS
do
	[ -d $ROOT/${VERSION}/${COLLECTION}/${FOLDER} ] || continue
	if mountpoint $ROOT/${VERSION}/${COLLECTION}/${FOLDER} > /dev/null;then
		sudo umount $ROOT/${VERSION}/${COLLECTION}/${FOLDER} || exit 1
	fi
	rm -d $ROOT/${VERSION}/${COLLECTION}/${FOLDER} || exit 1
done
}
remove_all() {
for FOLDER in $MOUNT_POINTS
do
	[ -d $ROOT/${VERSION}/${COLLECTION}/${FOLDER} ] && exit 1
done
[ -z $ROOT/${1} ] && exit 1
[ ! -d $ROOT/${1} ] && exit 0
for i in run sys proc dev/pts dev
do
	[ -d $ROOT/${1}/${i} ] || continue
	mountpoint $ROOT/${1}/${i} > /dev/null || continue
	sudo umount $ROOT/${1}/${i} || exit 1
done
for FOLDER in $ROOT/${1}/*
do
	[ -d ${FOLDER} ] || continue
	! mountpoint ${FOLDER} > /dev/null || continue
	sudo rm -r $FOLDER || exit 1
done
find $ROOT/${VERSION}/${COLLECTION} -maxdepth 1 -type f -delete
rm -d $ROOT/${VERSION}/${COLLECTION} || exit 1
echo "
>>>   $ROOT/${1} cleanup successfully ...
"
}
answer() {
read a
if [ "$a" != "y" ] && [ "$a" != "Y" ] && [ "$a" != "yes" ]; then
	echo "
Answer should be 'y, Y or yes'
"
	error "$ROOT/${VERSION}/${COLLECTION}"
fi
}
error() {
	umount_all
	remove_all ${1}
	exit 1
}
find_collection () {
	for i in $(find . -name Pkgfile -exec dirname {} +) ; do
		unset COLLECTION
		COLLECTION="$(dirname $i|cut -d '/' -f2)"
		[ "$COLLECTION" == "chroot" ] && continue
		if [ "${PARAM[0]}" == "${COLLECTION}" ]; then
			unset PARAM
			return
		fi
		[ "${PARAM[0]}" == "$(basename $i)" ] && return
	done
	unset COLLECTION
}
find_runtime () {
for i in $(find ${ROOTMOUNT}/$(uname -m)/${VERSION}/ -name "*$(uname -m).cards*"); do
	LANG=C pkginfo -a $i|grep "${1}1"|grep "Dependencies"|cut -d ":" -f1
done
}
setup_pkgmk_conf() {
PKGMK_CONF='
export CFLAGS="-O2 -pipe"
export CXXFLAGS="${CFLAGS}"
export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)"
PKGMK_GROUPS=(devel man doc service)
PKGMK_LOCALES=(af an ar as az be bg bs ca cs cy da de el es fi fr ga gl \
gn he hi hr hu ia id is it ja ka kk km kn ko lt lv mk ml mr ms my nl nn \
oc or pa pt pl rm ro ru rw si sq sk sl sr sv ta te th tr uk ur uz vi xh zh)
PKGMK_CLEAN="no"
PKGMK_KEEP_SOURCES="yes"
PKGMK_SOURCE_DIR="/sources"
PKGMK_WORK_DIR="/tmp/work"
PKGMK_COMPRESS_PACKAGE="yes"
PKGMK_COMPRESSION_MODE="xz"
PKGMK_IGNORE_REPO="no"
PKGMK_IGNORE_COLLECTION="no"
PKGMK_IGNORE_RUNTIMEDEPS="no"'
}
setup_cards_conf() {
CARDS_CONF=""

C="${COLLECTION}"

[[ "${COLLECTION}" != "base" && "${COLLECTION}" != "cli" && "${COLLECTION}" != "gui" && \
"${COLLECTION}" != "nos" && "${COLLECTION}" != "cli-extra" && "${COLLECTION}" != "gui-extra" && \
"${COLLECTION}" != "desktops" ]] && C="${COLLECTION}-extra"

if [ "${C}" == "${COLLECTION}-extra" ]; then
	CARDS_CONF+="
dir /DEPOT/${C}
dir /DEPOT/${COLLECTION}"
	C="gui"
	[ -z "$BASE" ] && CARDS_CONF+="
base /DEPOT/${C}
base /DEPOT/${COLLECTION}"
fi

if [ "${C}" == "gui-extra" ]; then
	CARDS_CONF+="
dir /DEPOT/gui-extra"
	[ -z "$BASE" ] && CARDS_CONF+="
base /DEPOT/gui-extra"
fi

if [ "${C}" == "nos" ]; then
	CARDS_CONF+="
dir /DEPOT/nos"
	[ -z "$BASE" ] && CARDS_CONF+="
base /DEPOT/nos"
fi

if [ "${C}" == "desktops" ]; then
	CARDS_CONF+="
dir /DEPOT/desktops"
	[ -z "$BASE" ] && CARDS_CONF+="
base /DEPOT/desktops"
fi

if [[ "${C}" == "gui" || "${C}" == "gui-extra" || \
"${C}" == "nos" || "${C}" == "desktops" ]]; then
	CARDS_CONF+="
dir /DEPOT/gui"
	[ -z "$BASE" ] && CARDS_CONF+="
base /DEPOT/gui"
fi

if [ "${C}" == "cli-extra" ]; then
	CARDS_CONF+="
dir /DEPOT/cli-extra"
	[ -z "$BASE" ] && CARDS_CONF+="
base /DEPOT/cli-extra"
fi

if [[ "${C}" == "cli" || "${C}" == "cli-extra" || "${C}" == "gui" || \
"${C}" == "gui-extra" || "${C}" == "nos" || "${C}" == "desktops" ]]; then
	CARDS_CONF+="
dir /DEPOT/cli"
	[ -z "$BASE" ] && CARDS_CONF+="
base /DEPOT/cli"
fi

CARDS_CONF+="
dir /DEPOT/base
logdir /LOGS"
[ -z "$BASE" ] && CARDS_CONF+="
base /DEPOT/base"
if [ ! -z "$BASE" ]; then
	for i in ${BASE[@]}; do
		CARDS_CONF+="
base /DEPOT/$i"
	done
fi
}
#
#
########################################################################
# BEGIN HERE
########################################################################

check_root
[ -f $HOME/.mybld ] && source $HOME/.mybld
[ -z "$ROOTMOUNT" ] && ROOTMOUNT="$HOME/www"
[ -z "$ROOT" ] && ROOT="$HOME/mybld"
[ -z "$URL" ] && URL="rsync://download.nutyx.org/nutyx"
[ -z "$EDITOR" ] && EDITOR="vi"

if [ -z "${1}" ]; then
	echo "
>>> At least one argument is mandatory
"
	exit 1
fi
	if ! ( $(which rsync > /dev/null) ); then
		echo "
>>>     'rsync' not available
"
		exit 1
	fi
	if ! ( $(which git > /dev/null) ); then
		echo "
>>>     'git' not available
"
		exit 1
	fi
	if ! ( $(which $EDITOR > /dev/null) ); then
		echo "
>>>     '$EDITOR' not available
"
		exit 1
	fi
if [ ! -d .git ]; then
	echo "
>>>	No Git project found in '"$(pwd)"', The '.git' folder not exist.
"
	exit 1
fi
parse_arguments "$@"

[ -z "$VERSION" ] && VERSION="$(git branch --show-current)"
[ -z "$COLLECTION" ] && find_collection

if [ "$INIT" == "yes" ]; then
	create_folders
fi
if [ "$SYNC" == "yes" ]; then
	rsync_binaries
fi

if [ -z "${PARAM[0]}" ]; then
	if [ -z "${COLLECTION}" ]; then
		echo "
>>>	Specify the collection
"
		exit  1
	fi
fi

if [ -z "${COLLECTION}" ]; then
	echo "
>>>	package ${PARAM[0]} not found in any collection
"
	exit  1
fi

if [[ -d "$ROOT/${VERSION}/${COLLECTION}" && "$CLEANUP" != "yes" ]]; then
	mount | grep /"${VERSION}/${COLLECTION}"
	echo "
>>>	$ROOT/${VERSION}/${COLLECTION} exist ...
"
	echo -n "Safety cleanup of $ROOT/${VERSION}/${COLLECTION} ? : "
	answer
	CLEANUP="yes"
fi

if [ "$CLEANUP" == "yes" ]; then
	MOUNT_POINTS="DEPOT LOGS sources"
	umount_all
	remove_all "/${VERSION}/${COLLECTION}"
	exit 0
fi


if [ ! -z "${PARAM[1]}" ]; then
	CONFIRM="yes"
	if [ ! -f "$COLLECTION/${PARAM[0]}/Pkgfile" ]; then
		echo " $COLLECTION/${PARAM[0]}/Pkgfile not exist"
		exit 1
	fi
	. "$COLLECTION"/"${PARAM[0]}"/Pkgfile
	if [ -z "$version" ]; then
		echo ">>> version variable not set !"
		exit 1
	fi
	if [ "$version" == "${PARAM[1]}" ]; then
		echo ">>> version is the same !!!"
		exit 1
	fi
fi
if [ "$INCREMENT" == "yes" ]; then
	CONFIRM="yes"
	if [ ! -f "$COLLECTION/${PARAM[0]}/Pkgfile" ]; then
		echo " $COLLECTION/${PARAM[0]}/Pkgfile not exist"
		exit 1
	fi
	. "$COLLECTION"/"${PARAM[0]}"/Pkgfile
	[ -z "$release" ] && release=1

fi
# check if VERSION folder exist
if ! [ -d "$ROOT/$VERSION" ]; then
	echo ">>>   $ROOT/$VERSION folder not exist."
	exit 1
fi

# check if VERSION is own by me
if ! [ -O "$ROOT/$VERSION" ]; then
	echo ">>> $ROOT/$VERSION is not own by $(whoami)"
	exit 1
fi

GIT_PROJ=$(pwd)

if [ -z "$GIT_PROJ" ]; then
	error "Git root: ${GIT_PROJ} empty"
	exit 1
fi

GIT=$(basename $GIT_PROJ)

mkdir -p "$ROOT/${VERSION}/${COLLECTION}/etc" || exit 1

setup_cards_conf

DEVEL="cards.devel \
&& cd /root/$GIT \
$PAUSE \
&& bash scripts/$COLLECTION"

echo "$CARDS_CONF" > $ROOT/$VERSION/$COLLECTION/etc/cards.conf
[ -z "${PARAM[0]}" ] && CHROOT="ncurses readline bash"
if [ "$COLLECTION" == "base" ] \
|| [ "$COLLECTION" == "cli"  ] \
|| [ "$COLLECTION" == "gui" ] \
|| [ "$COLLECTION" == "cli-extra"  ] \
|| [ "$COLLECTION" == "gui-extra" ] \
|| [ "$COLLECTION" == "desktops" ] \
|| [ "$COLLECTION" == "nos" ]; then
	if ! [ -z "${PARAM[0]}" ]; then
		DEVEL="$DEVEL ${PARAM[0]}"
	else
		DEVEL="$DEVEL -a"
	fi
else
	DEVEL="$DEVEL -a \
&& bash scripts/$COLLECTION-extra -a"
	EXTRA="yes"
fi

setup_pkgmk_conf
echo "$PKGMK_CONF" > $ROOT/$VERSION/$COLLECTION/etc/pkgmk.conf

export DEVEL VERSION
echo ""
if [ -f $HOME/.mybld ];then
	echo " $HOME/.mybld:
 ================================="
	echo ""
	cat $HOME/.mybld
else
	echo ">>>       $HOME/.mybld not found"
fi
echo ""
echo " pkgmk.conf:
 ==========="
echo "$PKGMK_CONF"
echo ""
echo " cards.conf:
 ==========="
echo "$CARDS_CONF"
echo ""
echo " COLLECTION: $COLLECTION"
echo "GIT Project: $GIT_PROJ"
echo "    VERSION: $VERSION"
echo "      DEVEL: $DEVEL "
echo "     CHROOT: $CHROOT"
echo "The command: KERNEL="NONE" CHROOT="$CHROOT" LFS="$ROOT/${VERSION}/${COLLECTION}" DEPOT="/DEPOT" install-nutyx"
echo ""
echo "The rsync  : rsync -a $GIT_PROJ/${COLLECTION}/ $ROOT/${VERSION}/${COLLECTION}/root/$GIT/${COLLECTION}/"
[ "$EXTRA" == "yes" ] && \
echo "             rsync -a $GIT_PROJ/${COLLECTION}-extra/ $ROOT/${VERSION}/${COLLECTION}/root/$GIT/${COLLECTION}-extra/"
echo ""

if [ ! -z "${PARAM[1]}" ]; then
	echo ""
	echo " Upgrading ${PARAM[0]}: $version -> ${PARAM[1]}"
	echo ""
fi
if [ "$INCREMENT" == "yes" ]; then
	echo " Upgrading ${PARAM[0]}: $version-$release -> $version-$((release+1))"
	echo ""
fi
if [ "$CONFIRM" == "yes" ]; then
	echo -n "  OK ? (y) : "
	answer
fi

if [ ! -z "${PARAM[1]}" ]; then
	sed -i "s@version=$version@version=${PARAM[1]}@" \
	"$COLLECTION"/"${PARAM[0]}"/Pkgfile
	sed -i "/release=/d" "$COLLECTION"/"${PARAM[0]}"/Pkgfile
fi
if [ "$INCREMENT" == "yes" ]; then
	sed -i "/release=/d" "$COLLECTION"/"${PARAM[0]}"/Pkgfile
	sed -i "/^version=/ a release=$((release+1))" "$COLLECTION"/"${PARAM[0]}"/Pkgfile
fi

mkdir -p $ROOT/${VERSION}/${COLLECTION}/DEPOT || error /${VERSION}/${COLLECTION}
if [ -d ${ROOTMOUNT}/$(uname -m)/${VERSION} ]; then
	sudo mount --bind ${ROOTMOUNT}/$(uname -m)/${VERSION} $ROOT/${VERSION}/${COLLECTION}/DEPOT || error /${VERSION}/${COLLECTION}
else
	error /${VERSION}/${COLLECTION}
fi
MOUNT_POINTS="DEPOT"

mkdir -p $ROOT/${VERSION}/${COLLECTION}/LOGS
if [ -d ${ROOTMOUNT}/logs/$(uname -m)/${VERSION} ];then
	sudo mount --bind ${ROOTMOUNT}/logs/$(uname -m)/${VERSION} $ROOT/${VERSION}/${COLLECTION}/LOGS || error /${VERSION}/${COLLECTION}
else
	error /${VERSION}/${COLLECTION}
fi
MOUNT_POINTS="$MOUNT_POINTS LOGS"


mkdir -p $ROOT/${VERSION}/${COLLECTION}/sources || error /${VERSION}/${COLLECTION}
if [ -d ${ROOTMOUNT}/sources ]; then
	sudo mount --bind ${ROOTMOUNT}/sources $ROOT/${VERSION}/${COLLECTION}/sources || error /${VERSION}/${COLLECTION}
else
	error /${VERSION}/${COLLECTION}
fi
MOUNT_POINTS="$MOUNT_POINTS sources"

mkdir -p $ROOT/${VERSION}/${COLLECTION}/root/$GIT || error /${VERSION}/${COLLECTION}
rsync -a $GIT_PROJ/${COLLECTION}/ $ROOT/${VERSION}/${COLLECTION}/root/$GIT/${COLLECTION}/ || error "rsync"
mkdir $ROOT/${VERSION}/${COLLECTION}/root/$GIT/scripts
ln -sv /usr/bin/build-port $ROOT/${VERSION}/${COLLECTION}/root/$GIT/scripts/${COLLECTION}
if [ "$EXTRA" == "yes" ]; then
	rsync -a $GIT_PROJ/${COLLECTION}-extra/ \
		$ROOT/${VERSION}/${COLLECTION}/root/$GIT/${COLLECTION}-extra/ || error "rsync"
	ln -sv /usr/bin/build-port \
		$ROOT/${VERSION}/${COLLECTION}/root/$GIT/scripts/${COLLECTION}-extra
fi

echo 'running the command: sudo KERNEL="NONE" CHROOT="$CHROOT" LFS="$ROOT/${VERSION}/${COLLECTION}" DEPOT="/DEPOT" DEVEL="$DEVEL" install-nutyx || error /${VERSION}/${COLLECTION}'
sudo KERNEL="NONE" CHROOT="$CHROOT" LFS="$ROOT/${VERSION}/${COLLECTION}" DEPOT="/DEPOT" DEVEL="$DEVEL" install-nutyx || error /${VERSION}/${COLLECTION}

umount_all
remove_all "/${VERSION}/${COLLECTION}"
unset VERSION DEVEL

# Don't try to commit if no specific package was build
if [ -z "${PARAM[0]}" ]; then
	exit 0
fi
echo -n "  Commit ? (y) : "
answer

cd "${GIT_PROJECT}"
source /etc/profile.d/cards.sh
commit "$COLLECTION/${PARAM[0]}"
exit 0
