forked from mirrored-repos/manjaro-tools
106 lines
2.3 KiB
Bash
106 lines
2.3 KiB
Bash
#!/bin/bash
|
|
#
|
|
# 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; version 2 of the License.
|
|
#
|
|
# 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.
|
|
|
|
version=@version@
|
|
|
|
SYSCONFDIR='@sysconfdir@'
|
|
|
|
[[ -r @libdir@/util-msg.sh ]] && source @libdir@/util-msg.sh
|
|
[[ -r @libdir@/util.sh ]] && source @libdir@/util.sh
|
|
|
|
set_owner=${SUDO_USER:-$USER}
|
|
|
|
if [[ -n $SUDO_USER ]]; then
|
|
eval "USER_HOME=~$SUDO_USER"
|
|
else
|
|
USER_HOME=$HOME
|
|
fi
|
|
|
|
USER_CONFIG="$USER_HOME/.config"
|
|
|
|
load_config "${USER_CONFIG}/manjaro-tools.conf"
|
|
load_config "${SYSCONFDIR}/manjaro-tools.conf"
|
|
|
|
create_set(){
|
|
msg "Creating [${sets_dir}/${name}.set] ..."
|
|
if [[ -f ${sets_dir}/${name}.set ]];then
|
|
msg2 "Backing up ${sets_dir}/${name}.set.orig"
|
|
mv "${sets_dir}/${name}.set" "${sets_dir}/${name}.set.orig"
|
|
fi
|
|
local list=$(find * -maxdepth 0 -type d | sort)
|
|
for item in ${list[@]};do
|
|
cd $item
|
|
if [[ -f PKGBUILD ]];then
|
|
msg2 "Adding ${item##*/}"
|
|
echo ${item##*/} >> ${sets_dir}/${name}.set || break
|
|
fi
|
|
cd ..
|
|
done
|
|
}
|
|
|
|
remove_set(){
|
|
msg "Removing [${sets_dir}/${name}.set] ..."
|
|
rm ${sets_dir}/${name}.set
|
|
}
|
|
|
|
show_set(){
|
|
local list=$(cat ${sets_dir}/${name}.set)
|
|
msg "Content of [${sets_dir}/${name}.set] ..."
|
|
for item in ${list[@]}; do
|
|
msg2 "$item"
|
|
done
|
|
}
|
|
|
|
query=false
|
|
create=false
|
|
remove=false
|
|
display=false
|
|
name='default'
|
|
|
|
usage() {
|
|
echo "Usage: ${0##*/} [options]"
|
|
echo " -c <name> Create set"
|
|
echo " -r <name> Remove set"
|
|
echo " -d <name> Display set"
|
|
echo " -q Show sets"
|
|
echo ' -h This help'
|
|
echo ''
|
|
echo ''
|
|
exit 1
|
|
}
|
|
|
|
orig_argv=("$@")
|
|
|
|
opts='c:r:d:qh'
|
|
|
|
while getopts "${opts}" arg; do
|
|
case "${arg}" in
|
|
c) name="$OPTARG"; create=true ;;
|
|
r) name="$OPTARG"; remove=true ;;
|
|
q) query=true ;;
|
|
d) name="$OPTARG"; display=true;;
|
|
h) usage ;;
|
|
esac
|
|
done
|
|
|
|
shift $(($OPTIND - 1))
|
|
|
|
check_root "$0" "${orig_argv[@]}"
|
|
|
|
if ${create};then
|
|
create_set
|
|
elif ${remove};then
|
|
remove_set
|
|
elif ${display};then
|
|
show_set
|
|
else
|
|
msg "Available sets: $(load_sets)"
|
|
fi
|