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.
103 lines
3.3 KiB
103 lines
3.3 KiB
#!/bin/bash
|
|
|
|
#############################################################################
|
|
##
|
|
## A thin wrapper that translates humanly understandable "apt-like" commands
|
|
## to the enigma-esque syntax that is used by 'pacman'.
|
|
##
|
|
#############################################################################
|
|
|
|
if ! command -v pacman &> /dev/null
|
|
then
|
|
echo "ERROR: 'pacman' could not be found."
|
|
echo "Make sure it is installed and in your PATH!"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
cmd="$1" # catch first arguments with $1
|
|
shift # drop the first argument from "$@"
|
|
|
|
|
|
case "$cmd" in
|
|
update)
|
|
# Update local package repo/cache
|
|
echo "Updating package index ..."
|
|
pacman -Sy
|
|
;;
|
|
upgrade)
|
|
# Perform package upgrade
|
|
echo "Installing package upgrades ..."
|
|
pacman -Syu
|
|
;;
|
|
upgradeable)
|
|
# Show which pacakges have an upgrade available
|
|
echo "Listing up upgradeable packages ..."
|
|
pacman -Qu
|
|
;;
|
|
install|reinstall)
|
|
# (re)Install a package and its dependencies
|
|
echo "Installing '$@' ..."
|
|
pacman -S "$@"
|
|
;;
|
|
remove)
|
|
# Remove package and its dependencies
|
|
echo "Removing '$@' ..."
|
|
pacman -R "$@"
|
|
echo "If you want to remove unused dependencies, run 'aptman autoremove'"
|
|
echo "or consider 'aptman purge [PKG]' next time."
|
|
;;
|
|
autoremove)
|
|
# Remove orphaned packages
|
|
echo "Removing orphaned packages ..."
|
|
pacman -Qdtq | pacman -Rs -
|
|
;;
|
|
purge)
|
|
# Remove package, dependencies and all of the config files
|
|
echo "Removing '$@', configurations and dependencies ..."
|
|
pacman -Rns "$@"
|
|
;;
|
|
check)
|
|
# Check & potentially fix broken dependencies
|
|
echo "Checking & (potentially fixing) broken dependencies ..."
|
|
pacman -Dk
|
|
;;
|
|
search)
|
|
# Search for available packages
|
|
echo "Searching packages for '$@' ..."
|
|
pacman -Ss "$@"
|
|
;;
|
|
show)
|
|
# Show info for a package
|
|
echo "Showing info for '$@' ..."
|
|
pacman -Si "$@"
|
|
;;
|
|
clean)
|
|
# Clean up pacman cache
|
|
# --> All the cached packages that are not installed, and unused sync database
|
|
echo "Cleaning up pacman cache ..."
|
|
pacman -Sc
|
|
;;
|
|
cleaner)
|
|
# Clean up pacman caches HARDER
|
|
# --> To remove ALL files from the cache directory
|
|
echo "Cleaning up pacman cache REALLY HARD ..."
|
|
pacman -Scc
|
|
;;
|
|
*)
|
|
# else
|
|
echo "Usage: aptman [...]"
|
|
echo "---------------------------------------"
|
|
echo "update - Update packages"
|
|
echo "upgrade - Install upgrades"
|
|
echo "upgradeable - List upgradeable packages"
|
|
echo "install | reinstall - (re)Install packages"
|
|
echo "remove - Uninstall package"
|
|
echo "autoremove - Uninstalling orphaned packages"
|
|
echo "purge - Uninstall package, dependencies and clean config"
|
|
echo "check - Check for broken dependencies"
|
|
echo "search - Search package"
|
|
echo "show - Show package info"
|
|
echo "clean | cleaner - Clean up pacman cache"
|
|
;;
|
|
esac
|