Skip to content

Instantly share code, notes, and snippets.

@NTICompass
Created July 17, 2016 02:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save NTICompass/27d4959e5fb4167f95e5643380555461 to your computer and use it in GitHub Desktop.
Save NTICompass/27d4959e5fb4167f95e5643380555461 to your computer and use it in GitHub Desktop.
Gentoo Portage shortcuts script (and ZSH completion file)
#compdef emergeTools
# This is a zsh autocomplete file for NTICompass' "emergeTools" script
_emergeTools(){
local -a commands
commands=(
'update: Update emerge''s database'
'upgrade: List available package updates'
'safe-upgrade: Run upgrade WITHOUT --keep-going'
'check: [deprecated] Run revdep-rebuild'
'clean: Remove unneeded packages (--depclean)'
'rebuild: Rebuild packages with updated libraries (@preserved-rebuild)'
'fix: Run both "clean" and "rebuild"'
'modules: Reinstall modules after a kernel update (@module-rebuild)'
'x11: Reinstall X11 packages (@x11-module-rebuild)'
)
if (( CURRENT == 2 )); then
_describe -t commands 'commands' commands
fi
return 0
}
_emergeTools
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: `basename $0` ( update | (safe-)upgrade | fix [clean+rebuild] | x11 | modules | check )"
exit 1
fi
case $1 in
"update")
# sudo emerge --sync && sudo layman -S && sudo eix-update
echo "Running: 'sudo eix-sync'"
sudo eix-sync
;;
"upgrade")
echo "Running: 'sudo emerge --ask --verbose --update --newuse --deep --with-bdeps=y --keep-going @world'"
sudo emerge --ask --verbose --update --newuse --deep --with-bdeps=y --keep-going @world
;;
"safe-upgrade")
echo "Running: 'sudo emerge --ask --verbose --update --newuse --deep --with-bdeps=y @world'"
sudo emerge --ask --verbose --update --newuse --deep --with-bdeps=y @world
;;
"check")
echo "[deprecated] Running: 'revdep-rebuild -ip'"
revdep-rebuild -ip
echo "[deprecated] Now run: 'sudo revdep-rebuild -i -- --ask'"
;;
"clean")
echo "Running: 'sudo emerge --depclean --ask'"
sudo emerge --depclean --ask
;;
"rebuild")
echo "Running: 'sudo emerge -1av @preserved-rebuild'"
sudo emerge -1av @preserved-rebuild
;;
"fix")
echo "Running: 'sudo emerge --depclean --ask && sudo emerge -1av @preserved-rebuild'"
sudo emerge --depclean --ask && sudo emerge -1av @preserved-rebuild
;;
"modules")
echo "Running: 'sudo emerge -1av @module-rebuild'"
sudo emerge -1av @module-rebuild
;;
"x11")
echo "Running: 'sudo emerge -1av @x11-module-rebuild'"
sudo emerge -1av @x11-module-rebuild
;;
*)
echo "Invalid command"
exit 1
;;
esac
@NTICompass
Copy link
Author

To enable ZSH auto completion, put the _emergeTools file into ~/.zsh/completion and add the following to ~/.zshrc:

fpath=(~/.zsh/completion $fpath)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment