slackpkgExtend Slackware
Slackware
wget https://git.christianimmanuel.de/scripts/raw/Slackware/slackpkgExtend && chmod 740 slackpkgExtendslackpkgExtend raw
#!/bin/bash
### Slackware
#################################################
### This script manages your Slackware and SBo pkgs.
### It can be used as a wrapper of the normal slackpkg command.
### To get started type:
### slackpkgExtend help
###
### I have found an interesting part in the slackpkg script:
###
### If you want a new function or need a rewrite of an existing
### feature, you can put your new function in a shell script under
### /usr/libexec/slackpkg/functions.d/
###
### Remember - the new function scripts need to be executable
###
### So i could include this functions directly into the slackpkg
PARAMETER="$1"
shift 1
INPUT="$@"
SCRIPT_PATH="$(realpath $0)"
DIR_BASE="/root/Slackbuilds"
DIR_INSTALLED="$DIR_BASE/installed"
DIR_INSTALL="$DIR_BASE/pkgs"
DIR_FAILED="$DIR_BASE/failed"
DIR_LOG="$HOME/.cache/slackpkgExtend"
DIR_PACKAGESLOG="/var/log/packages"
FILE_BLACKLIST="/etc/slackpkg/blacklist"
FILE_LOG="$DIR_LOG/log"
mkdir -p $DIR_INSTALLED $DIR_INSTALL $DIR_FAILED $DIR_LOG
# Check if slackbuilds git exist in ${DIR_INSTALL}
checkInitial() {
if [ -z "$(ls -A $DIR_INSTALL)" ]; then
echoHelp "Check if slackbuilds git exist in ${DIR_INSTALL}"
echoOrange "You are missing the slackbuilds git folder!"
echoGreen "Cloning git into $DIR_INSTALL"
readInputYn "Yn"
[[ "$READ_CHECK" = "n" ]] && echoOrange "Clone slackbuild was canceled." && return 1
git clone git://git.slackbuilds.org/slackbuilds.git $DIR_INSTALL
fi
}
checkLock() {
if [[ $(ls /var/lock | grep "^slackpkg.") ]]; then
echo ""
quit '\nAnother instance of slackpkg is running. If this is not correct, you can\nremove /var/lock/slackpkg.* files and run slackpkg again.\n'
fi
}
NC='\033[0m'
COLOR_RED="\033[0;31;1m"
COLOR_GREEN="\033[0;32;1m"
COLOR_BLUE="\033[0;34;1m"
echoSeparator() {
echo -en "\n\033[1;36;1m$(printf '%0.s▂' $(seq 1 $(tput cols)))\033[0m\n\n"
}
echoGreen() {
p="-e"; [[ "$1" = "-n" ]] && p="-en" && shift 1
echo $p "${COLOR_GREEN}$1${NC}"
}
echoOrange() {
p="-e"; [[ "$1" = "-n" ]] && p="-en" && shift 1
echo $p "\033[0;33;1m$1${NC}"
}
echoRed() {
p="-e"; [[ "$1" = "-n" ]] && p="-en" && shift 1
echo $p "${COLOR_RED}$1${NC}"
}
echoPurple() {
p="-e"; [[ "$1" = "-n" ]] && p="-en" && shift 1
echo $p "\033[0;35;1m$1${NC}"
}
echoBlue() {
p="-e"; [[ "$1" = "-n" ]] && p="-en" && shift 1
echo $p "${COLOR_BLUE}$1${NC}"
}
echoHelp() {
[[ "$1" = "-q" ]] && return 1
p="-e"; n="\n"; [[ "$1" = "-n" ]] && p="-en" && n="" && shift 1
echoSeparator
[[ -n $2 ]] && echo -e "\n\033[1;35;1m$2\033[0m"
echo $p "\n${COLOR_BLUE}$1${NC}$n"
}
quit() {
echoSeparator
echoRed "ERROR: $1"
exit 0
}
#
#
#
readInputYn() {
I=$1; a="$(sed 's/./&|/g;s/|$//g' <<<"$I")"; unset READ_CHECK
echoHelp -n "Enter command: ${COLOR_GREEN}[$a] " "$2" && read -n1 c;
echo ""
if [[ "[${a,,}]" =~ "${c,}" ]]; then READ_CHECK="$(grep -oi "$c" <<< $I)"; else readInputYn "$I" "$2" ;fi
}
blacklistCheck() {
sed -ne '/# This sction will be written by slackpkgExtend_build/,$ p' $FILE_BLACKLIST | grep -q "^$NAME\.\*\[0-9\]+_SBo"
}
blacklistAdd() {
echo "$NAME.*[0-9]+_SBo" >> $FILE_BLACKLIST
}
blacklistClear() {
sed -i "/^$NAME\.\*\[0-9\]+_SBo$/d" $FILE_BLACKLIST
}
failedInput() {
echo "No package found named $INPUT"
}
getPkgPath() {
NAME="$INPUT"
INPUT="$( cd $DIR_INSTALL && find . -type d -name "$INPUT" | head -n1 | sed "s/^\.\///g")"
[[ -z $INPUT ]] && failedInput
}
checkSbo() {
sed -n "s/^$NAME-[0-9]//p" <<< $(ls --color=never /var/log/packages/) | grep -q "[0-9]_SBo$"
}
checkAlien() {
sed -n "s/^$NAME-[0-9]//p" <<< $(ls --color=never /var/log/packages/) | grep -q "\-[0-9]alien$"
}
checkInstalled() {
[[ -z $NAME ]] && quit "checkInstalled: no NAME set..."
VERSION="$(sed -n "s/^$NAME-[0-9]//p" <<< $(ls --color=never /var/log/packages/) | sed "s/-.*$//g")"
}
#help info $NAME
slackGetInfo() {
check="$(find $DIR_INSTALL -type d -name "$INPUT" | head -n1 | sed "s/^\.\///g")"
if [[ -z $check ]]; then
command slackpkg info "$INPUT"
else
echoHelp "Get info of SBo package."
echo "$INPUT" | grep -q "/" || getPkgPath
BASENAME="$(basename $INPUT)"
cat $DIR_INSTALL/$INPUT/$BASENAME.info
fi
}
#help search-build $NAME
searchPkg() {
echoHelp "Search for SBo package."
INPUT="$(echo $INPUT | sed "s/^search //g")"
FINDS="$(find $DIR_INSTALL -type d -name "$INPUT")"
echo "$FINDS" | sed "s|$DIR_INSTALL/||g"
}
slackSearch() {
NAME="$INPUT" bc=false
blacklistCheck && blacklistClear && bc=true
command slackpkg search $NAME
$bc && blacklistAdd
}
#help check-installed $NAMES
slackCheckInstalled() {
echoHelp "Check if a specific package is installed."
notinstalled=()
diffinstall=()
isslack=()
issbo=()
isalien=()
for NAME in ${INPUT[@]}; do
checkInstalled
if checkSbo; then
issbo+=( "$NAME" )
elif checkAlien; then
isalien+=( "$NAME" )
elif slackpkg search "$NAME" | awk '{print $1 " " $4}' | sed -r "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g"| grep -q "\[inst\] $NAME-[0-9]"; then
isslack+=( "$NAME" )
elif grep -q "$NAME" <<< $(whereis $NAME | awk '{print $2}'); then
diffinstall+=( "$NAME" )
elif [[ -n $VERSION ]]; then
diffinstall+=( "$NAME" )
else
notinstalled+=( "$NAME" )
fi
done
[[ -n ${notinstalled[@]} ]] || [[ -n $isslack ]] || [[ -n $isalien ]] || [[ -n $diffinstall ]] || [[ -n $issbo ]] && echo ""
[[ -n ${notinstalled[@]} ]] && echoRed "Not installed:${NC}\t\t${notinstalled[*]}"
[[ -n $isslack ]] && echoGreen "Slackpkg installed:${NC}\t${isslack[*]}"
[[ -n $isalien ]] && echoGreen "Alien installed:${NC}\t${isalien[*]}"
[[ -n $issbo ]] && echoGreen "SBo installed:${NC}\t\t${issbo[*]}"
[[ -n $diffinstall ]] && echoOrange "Different installation:${NC}\t${diffinstall[*]}"
echo ""
}
#help check-folder
slackCheckInstalledFolder() {
echoHelp "Check the content of $DIR_INSTALLED for misplaced folders."
notinstalled=()
diffinstall=()
issbo=()
isalien=()
for NAME in $(ls --color=never -1 $DIR_INSTALLED | sed "/^.*\.tar.gz/d;/^.*\.old/d" | sort | uniq | xargs); do
checkInstalled
if checkSbo; then
issbo+=( "$NAME" )
elif checkAlien; then
isalien+=( "$NAME" )
elif grep -q "$NAME" <<< $(whereis $NAME | awk '{print $2}'); then
diffinstall+=( "$NAME" )
elif [[ -n $VERSION ]]; then
diffinstall+=( "$NAME" )
else
notinstalled+=( "$NAME" )
fi
done
[[ -n ${notinstalled[@]} ]] && echoRed "Not installed:${NC} ${notinstalled[*]}"
[[ -n $isalien ]] && echoOrange "Alien installed: ${NC}${isalien[*]}"
[[ -n $diffinstall ]] && echoOrange "Different installation: ${NC}${diffinstall[*]}"
[[ -n $issbo ]] && echoGreen "Installed: ${NC}${issbo[*]}"
}
slackCheckInstallSources() {
add_c=false
blacklistCheck && blacklistClear add_c=true
sp=`slackpkg search $NAME | sed -r "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g" | grep -i "$NAME-[0-9]"`
SOURCE_A="$(grep -i " : $NAME-[0-9]" <<< $sp | awk '{print $4}')"
SOURCE_B="$(grep -i " $NAME.*sbo-current$" <<< $sp | awk '{print $1}')"
PACKAGES_A=() PACKAGES_B=()
[[ -n $SOURCE_A ]] && PACKAGES_A+=( "$SOURCE_A" )
[[ -n $SOURCE_B ]] && PACKAGES_B+=( "$SOURCE_B" )
SOURCE=" $([[ -n $SOURCE_A ]] && echo "Slackpkg ")$([[ -n $SOURCE_B ]] && echo "SBo ")"
$add_c && blacklistAdd
}
slackCheckInstalledByPackage() {
p=( "$@" ) INSTALLED_PACKAGES=() UNINSTALLED_PACKAGES=() COLORED_LIST=""
f=`ls --color=never "$DIR_PACKAGESLOG"`
for i in ${p[@]}; do
if grep -qw "$i" <<< $f; then
INSTALLED_PACKAGES+=( "$i" )
elif grep -q "$(sed "s/-sbo-current//g" <<< $i)" <<< $f; then
INSTALLED_PACKAGES+=( "$(grep "$(sed "s/-sbo-current//g" <<< $i)" <<< $f | head -n1)" )
else
UNINSTALLED_PACKAGES+=( "$i" )
fi
done
[[ -n ${INSTALLED_PACKAGES[@]} ]] && COLORED_LIST="${COLOR_GREEN}${INSTALLED_PACKAGES[*]}${NC} "
[[ -n ${UNINSTALLED_PACKAGES[@]} ]] && COLORED_LIST="$COLORED_LIST${COLOR_RED}${UNINSTALLED_PACKAGES[*]}${NC}"
}
slackCheckDublicates() {
DUBLICATES="$(ls --color=never /var/log/packages | sort | sed "s/-[0-9].*$//g" | uniq -d | xargs)"
[[ -n $DUBLICATES ]]
}
### Install
installPkg() {
checkInstalled
failed=false
source $NAME.info
if echo $DOWNLOAD_x86_64 | wc -c | grep -wq "[0|1]"; then
LOADs="$DOWNLOAD"; MD5s="$MD5SUM"
else
LOADs="$DOWNLOAD_x86_64"; MD5s="$MD5SUM_x86_64"
fi
c=0
for LOAD in $(echo $LOADs); do
c=$((c+1))
wget "$LOAD" || quit "failed Downloads!"
BASENAMELOAD=$(basename "$LOAD")
MD5="$(echo $MD5s | cut -d " " -f $c)"
echo "$MD5 ## $(md5sum $BASENAMELOAD | awk '{print $1}')"
if md5sum $BASENAMELOAD | awk '{print $1}' | grep -qw "$MD5"; then
echo "$BASENAMELOAD md5 checked"
else
echoRed "$BASENAMELOAD md5 check failed!"
failed=true
break
fi
done
if $failed; then
echoRed "\nInstall $NAME failed!"
FAILED+=( "$NAME" )
else
chmod +x $NAME.SlackBuild
./$NAME.SlackBuild
if /sbin/installpkg "/tmp/$(ls -t /tmp | grep "$NAME" | head -n1)"; then
blacklistAdd
echoGreen "\nInstalled:${NC} $NAME"
else
cd ..
cp -r $DIR_INSTALLED/$NAME $DIR_FAILED && rm -r $DIR_INSTALLED/$NAME
echoRed "\nInstall $NAME failed!"
fi
fi
}
installFromHttp() {
PACK="$INPUT"
BASENAME="$(basename $PACK)"
NAME="$(echo "$BASENAME" | sed "s/.tar.gz$//g")"
checkInstalled
cd $DIR_INSTALLED
wget "$PACK" || quit "failed getting $PACK!"
tar -xvzf $BASENAME
cd $DIR_INSTALLED/$NAME || quit "cd $DIR_INSTALLED/$NAME failed!"
installPkg
}
installFromLocal() {
NAME="$(basename $INPUT)"
isinstalled=false
if echo "$INPUT" | grep -q "/"; then
NAME="$(basename $INPUT)"
else
getPkgPath
fi
checkInstalled
[[ -n $VERSION ]] && echoOrange "$NAME-$VERSION is already installed.."
grep "$NAME" <<< $(whereis $NAME | awk '{print $2}') && isinstalled=true
[[ -n $VERSION ]] && echoOrange "$(echo "/var/log/packages/$(sed -n "s/^$NAME-/$NAME-/p" <<< $(ls --color=never /var/log/packages/))")"
[[ -n $VERSION ]] && isinstalled=true
if ! [[ "$PARAMETER" = "upgrade-build" ]] && ! $SKIP_REQUEST; then
$isinstalled && return 1
readInputYn "Yn" "Install:${NC} $INPUT?"
[[ "$READ_CHECK" = "n" ]] && echoRed "Installation canceled: ${NC}$NAME##" && return 1
fi
echo "cp -r $DIR_INSTALL/$INPUT $DIR_INSTALLED"
[[ -d "$DIR_INSTALLED/$NAME" ]] && mv $DIR_INSTALLED/$NAME $DIR_INSTALLED/$NAME.old
cp -r $DIR_INSTALL/$INPUT $DIR_INSTALLED
! [[ -d "$DIR_INSTALLED/$NAME" ]] && echoRed "Cant find $NAME in $DIR_INSTALLED." && return 1
cd $DIR_INSTALLED/$NAME
installPkg
}
#help install $NAMES
slackInstall() {
echoHelp "Install Slackpkg, SBo or http packages."
if echo "$INPUT" | grep "^http" | grep -q ".tar.gz$"; then
installFromHttp
else
slackInstallNormal
fi
}
slackInstallNormal() {
slackCheckInstalled
SOURCE_ALL=""
PACKAGES_ALL_A=() PACKAGES_ALL_B=() PACKAGES_ALL_AB=()
for NAME in ${INPUT[@]}; do
slackCheckInstallSources
SOURCE_ALL="$SOURCE_ALL $NAME=($SOURCE)"
if [[ "$SOURCE" = " Slackpkg " ]]; then
PACKAGES_ALL_A+=( "${PACKAGES_A[@]}" )
elif [[ "$SOURCE" = " SBo " ]]; then
PACKAGES_ALL_B+=( "${PACKAGES_B[@]}" )
elif [[ "$SOURCE" = " Slackpkg SBo " ]]; then
PACKAGES_ALL_AB+=( "${PACKAGES_A[@]}" )
PACKAGES_ALL_AB+=( "${PACKAGES_B[@]}" )
fi
done
slackCheckInstalledByPackage ${PACKAGES_ALL_A[@]}
[[ -n ${PACKAGES_ALL_A[@]} ]] && echo -e "\nSlackpkg:\t$(sed "s/ /\n\t\t/g" <<< ${COLORED_LIST})"
slackCheckInstalledByPackage ${PACKAGES_ALL_B[@]}
[[ -n ${PACKAGES_ALL_B[@]} ]] && echo -e "SBo:\t\t$(sed "s/ /\n\t\t/g" <<< ${COLORED_LIST})"
slackCheckInstalledByPackage ${PACKAGES_ALL_AB[@]}
[[ -n ${PACKAGES_ALL_AB[@]} ]] && echo -e "\nSlackpkg & SBo:\t$(sed "s/ /\n\t\t/g" <<< ${COLORED_LIST}))"
[[ -z ${notinstalled[@]} ]] && return 1
echoGreen "\nInstall missing:${NC} ${notinstalled[*]}"
[[ -n ${PACKAGES_ALL_AB[@]} ]] && readInputYn "n" "Enter n to prefer SBo"
[[ -z ${PACKAGES_ALL_AB[@]} ]] && [[ -n ${PACKAGES_ALL_B[@]} ]] && readInputYn "Y" "Install SBo package?"
installnormal=()
installsbo=()
for i in ${notinstalled[@]}; do
grep -wq "$i" <<< ${PACKAGES_ALL_A[*]} && installnormal+=( "$i" )
grep -wq "$i" <<< ${PACKAGES_ALL_B[*]} && installsbo+=( "$i" )
grep -wq "$i" <<< ${PACKAGES_ALL_AB[*]} && [[ "$READ_CHECK" = "i" ]] && installnormal+=( "$i" )
grep -wq "$i" <<< ${PACKAGES_ALL_AB[*]} && [[ "$READ_CHECK" = "s" ]] && installsbo+=( "$i" )
done
SKIP_REQUEST=true
for NAME in ${installnormal[@]}; do
echoGreen "Installing:${NC} $NAME"
command slackpkg install $NAME
done
for NAME in ${installsbo[@]}; do
INPUT="$NAME"
installFromLocal
done
slackRemoveDublicates
}
#help remove $NAMES
slackRemoveBuild() {
echoHelp "Remove Slackpkg, Alienbob or SBo pkgs."
notinstalled=()
diffinstall=()
remove=()
for NAME in ${INPUT[@]}; do
checkInstalled
if [[ -n $VERSION ]]; then
remove+=( "$NAME" )
checkSbo && blacklistCheck && blacklistClear
elif grep -q "$NAME" <<< $(whereis $NAME | awk '{print $2}'); then
diffinstall+=( "$NAME" )
else
notinstalled+=( "$NAME" )
fi
done
## REMOVE
[[ -n $remove ]] && command slackpkg remove ${remove[@]}
[[ -n ${notinstalled[@]} ]] && echoOrange "Not installed:${NC}\t${notinstalled[*]}"
failed=() removed_n=()
for NAME in ${remove[@]}; do
VERSION=""
checkInstalled
if checkSbo; then
blacklistAdd
failed+=( "$NAME" )
elif [[ -n $VERSION ]]; then
failed+=( "$NAME" )
else
removed_n+=( "$NAME" )
fi
done
# clear build installed folder
for i in ${removed_n[@]}; do [[ -d $DIR_INSTALLED/$i ]] && rm -r $DIR_INSTALLED/$i; done
[[ -n $failed ]] || [[ -n $diffinstall ]] || [[ -n $removed_n ]] && echo ""
[[ -n $failed ]] && echoRed "Failed: ${NC}${failed[*]}"
[[ -n $diffinstall ]] && echoGreen "Different installation: ${NC}${diffinstall[*]}"
[[ -n $removed_n ]] && echoGreen "Removed: ${NC}${removed_n[*]}"
}
#help remove-dublicate
slackRemoveDublicates() {
echoHelp -q "Remove dublicated Slackpkg Alienbob or SBo pkgs."
slackCheckDublicates || return 1
echoHelp "Remove dublicated Slackpkg Alienbob or SBo pkgs."
echoGreen "Dublicates found: ${DUBLICATES[*]}" && INPUT="${DUBLICATES[@]}" slackRemoveBuild
}
#help update
slackUpdate() {
echoHelp "Update the regular slackpkgs."
command slackpkg update
}
#help update-build
slackUpdateBuild() {
echoHelp "Update the SBo git."
cd $DIR_INSTALL
git pull
}
#help upgrade-all
slackUpgradeAll() {
echoHelp "Upgrade the regular slackpkgs."
command slackpkg upgrade-all
}
#help upgrade-build
slackUpgradeBuild() {
echoHelp "Upgrade all SBo packages."
slackUpdate
FAILED=()
INSTALLED=($(cd $DIR_INSTALLED && ls --color=never | grep -v "\."))
aVersion=""
bVersion=""
# check versions
checkVersion() {
upgradeVersion=""
name="$1"
pkg_dir="$2"
aVersion="$(grep "^VERSION" $DIR_INSTALLED/$name/$name.info | sed "s/VERSION=//g;s/\"//g")"
bVersion="$(grep "^VERSION" $pkg_dir/$name.info | sed "s/VERSION=//g;s/\"//g")"
[[ "$(echo $aVersion | sed 's/\./-/g' )" = "$(echo $bVersion | sed 's/\./-/g' )" ]] || upgradeVersion="$bVersion"
}
# iterate over pkgs
echoHelp "\nCheckking versions."
upgrade=()
for name in ${INSTALLED[@]}; do
#echo "$name"
pkg_dir="$(find $DIR_INSTALL -name "$name" | head -n1)"
if [[ -d $pkg_dir ]]; then
checkVersion "$name" "$pkg_dir"
t="\t"; [[ "${#name}" -lt "8" ]] && t="\t\t"
v="\t"; [[ "${#aVersion}" -gt "7" ]] && v=" "
[[ "${#upgradeVersion}" -le "0" ]] && echo -e "$name$t$aVersion$v= $bVersion"
if [[ "${#upgradeVersion}" -gt "0" ]]; then
SED="$(echo $DIR_INSTALL | sed 's/\//\\\//g')\/"
pkg_dir="$(echo "$pkg_dir" | sed "s/$SED//g")"
echoGreen "$name$t$aVersion$v< $bVersion $pkg_dir"
upgrade+=( "$name" )
fi
fi
done
if [[ -n ${upgrade[@]} ]]; then
echoGreen "\nUpgradelist:${NC} ${upgrade[*]}"
c="false"
readInputYn "Yn"
for INPUT in ${upgrade[@]}; do
echoGreen "Upgrading:${NC} $INPUT"
installFromLocal
done
fi
slackRemoveDublicates
[[ -z $upgrade ]] && echoGreen "\nAll up to date."
[[ -n ${FAILED[@]} ]] && echoRed "Upgrade failed:${NC} ${FAILED[*]}"
}
getCommandFromHelp() {
COMMAND="$(slackHelp --no-color | grep "command: $PARAMETER" | sed "s/.*-> //g")"
${COMMAND}
}
slackReadNew() {
slackHelp
while true; do
SKIP_REQUEST=false
echoSeparator
echo ""
echoBlue -n "Enter command: "
read -e INPUT
PARAMETER="$(cut -d' ' -f1 <<< $INPUT)"
INPUT=( "$(cut -d' ' -f2- <<< $INPUT)" )
getCommandFromHelp
done
}
slackHelp() {
command slackpkg help
color_green="\\$COLOR_GREEN" color_blue="\\$COLOR_BLUE" color_yellow="\\$COLOR_YELLOW" color_cyan="\\$COLOR_CYAN"
if grep -wq '\--no-color' <<< $1; then shift 1; color_green="" color_cyan="" color_yellow="" color_blue=""; fi
SED="s/#help /"${color_blue}"command: ${color_green}/g;s/\$NAME/${color_yellow}\$NAME/g;s/() {//g;s/^.*echoHelp \"//g;s/^.*echoHelp -q \"//g;s/\"$//g;s/\$DIR_INSTALLED/$(sed "s/\//\\\\\//g"<<<$DIR_INSTALLED)/g;"
echo -e "$(sed "$SED" <<< $(grep -A2 "#help" <<< cat $SCRIPT_PATH | sed -n "/SED=\"s\/\#help/q;p") | sed "2~4s/^/${color_cyan}-> /g;3~4s/^/\\${NC}\\t /g;s/^--//g" | xargs -n2 -d'\n')"
echo ""
}
#########
### Main
checkLock
checkInitial
echo "$(date) $@" >> $FILE_LOG
cd $DIR_INSTALL
echoSeparator
case "$PARAMETER" in
dialog)
slackpkgExtend_dialog ${INPUT[@]}
;;
install)
slackInstall
;;
update)
slackUpdate
;;
update-build)
slackUpdateBuild
;;
upgrade-build)
slackUpgradeBuild
;;
upgrade-all)
slackUpgradeAll
;;
remove)
slackRemoveBuild
;;
search)
slackSearch
;;
search-build)
searchPkg
;;
info)
slackGetInfo
;;
list)
slackpkgExtend_list ${INPUT[@]}
;;
read)
slackReadNew
;;
check-folder)
slackCheckInstalledFolder
;;
check-installed)
slackCheckInstalled
;;
check-dublicates)
slackCheckDublicates
;;
remove-dublicates)
slackRemoveDublicates
;;
help)
slackHelp ${INPUT[@]}
;;
--help)
slackHelp ${INPUT[@]}
;;
-h)
slackHelp ${INPUT[@]}
;;
*)
command slackpkg ${INPUT[@]}
;;
esac