You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.1 KiB
46 lines
1.1 KiB
#!/bin/sh
|
|
set -e -u
|
|
|
|
show_help() {
|
|
echo 'Usage: pkg command [arguments]'
|
|
echo ''
|
|
echo 'A tool for managing packages. Commands:'
|
|
echo ''
|
|
echo ' files <packages>'
|
|
echo ' install <packages>'
|
|
echo ' list-all'
|
|
echo ' list-installed'
|
|
echo ' reinstall <packages>'
|
|
echo ' search <query>'
|
|
echo ' show <packages>'
|
|
echo ' uninstall <packages>'
|
|
echo ' upgrade'
|
|
exit 1
|
|
}
|
|
|
|
assert_not_root() {
|
|
if [ $(id -u) -eq 0 ]
|
|
then
|
|
echo "This must NOT be run as root as it will break your environment (root will be required for nearly everything due to changed file permissions)"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
if [ $# = 0 ]; then show_help; fi
|
|
CMD="$1"
|
|
shift 1
|
|
|
|
case "$CMD" in
|
|
f*) dpkg -L "$@";;
|
|
h*) show_help;;
|
|
add|i*) assert_not_root; apt update; apt install "$@";;
|
|
list-a*) apt list "$@";;
|
|
list-i*) apt list --installed "$@";;
|
|
rei*) assert_not_root; apt install --reinstall "$@";;
|
|
se*) assert_not_root; apt update; apt search "$@";;
|
|
sh*) apt show "$@";;
|
|
un*|rem*|rm|del*) assert_not_root; apt remove "$@";;
|
|
up*) assert_not_root; apt update; apt full-upgrade "$@";;
|
|
*) echo "Unknown command: '$CMD' (run 'pkg help' for usage information)";;
|
|
esac
|
|
|
|
|