# pkgtool stuff
function package_name {
+
STRING=`basename $1 .tgz`
# Check for old style package name with one segment:
if [ "`echo $STRING | cut -f 1 -d -`" = "`echo $STRING | cut -f 2 -d -`" ]; then
echo $NAME
fi
fi
+
}
function package_version {
function install_packages {
+ # check if is time to clean the local repository
if [[ "$SIMPLARET_CLEAN" == "1" ]]; then
ARCH=$ARCH VERSION=$VERSION $SIMPLARET --purge
elif [[ ! -z "$SIMPLARET_PURGE_WEEKS" ]] && [[ "$SIMPLARET_PURGE_WEEKS" != "0" ]]; then
ARCH=$ARCH VERSION=$VERSION $SIMPLARET --purge -w $SIMPLARET_PURGE_WEEKS
fi
+ # now tries to install each package listed in the template
for pack in `cat $TEMPLATE | grep -v -e "^#" | cut -d : -f 1`; do
+
package_downloaded="0"
if [ "$SIMPLARET" == "simplaret" ]; then
extrafolder="$ARCH/$VERSION/"
else
unset extrafolder
fi
- for file in `find $STORAGE/$extrafolder -name $pack*tgz`; do
+
+ # first search the package in the patches folder
+ for file in `find $PATCHES_DIR/$extrafolder -name $pack*tgz`; do
if [[ "`package_name $file`" == "$pack" ]]; then
package_downloaded="1"
package_file="$file"
break
fi
done
+
+ # then search the package in the standard packages folder
+ if [[ "$package_downloaded" != "1" ]]; then
+ for file in `find $STORAGE/$extrafolder -name $pack*tgz`; do
+ if [[ "`package_name $file`" == "$pack" ]]; then
+ package_downloaded="1"
+ package_file="$file"
+ break
+ fi
+ done
+ fi
+
+ # if the package wasnt found, try to donwload it
if [[ "$package_downloaded" != "1" ]]; then
ARCH=$ARCH VERSION=$VERSION $SIMPLARET --get $pack -a
for file in `find $STORAGE/$extrafolder -name $pack*tgz`; do
fi
done
fi
+
+ # now tries to install the package, if available
if [ -z "$package_file" ]; then
echo error: could not install package $pack
else
fi
fi
fi
+
unset package_file
+
done
+
+ # purge packages, if needed
if [[ "$SIMPLARET_DELETE_DOWN" == "1" ]]; then
ARCH=$ARCH VERSION=$VERSION $SIMPLARET --purge
fi
+
}
function remove_packages {
+
for pack in `cat $TEMPLATE | grep -v -e "^#" | cut -d : -f 1`; do
ROOT=/$JAIL_ROOT/$server removepkg $pack
done
+
}
function eval_config {
+
if [ -f "$CONF" ]; then
source $CONF
else
# package is apllied; if in doubt, just say no or leave blank.
CONSIDER_ALL_PACKAGES_AS_PATCHES="0"
fi
+
}