dotfiles/bin/§software

72 lines
2.1 KiB
Plaintext
Raw Permalink Normal View History

2024-02-19 20:37:09 +01:00
#!/bin/bash
this="${0##*/}"
this_version="2021-12-01"
err() { printf >&2 "Error: $*\n"; exit 1; }
log() { printf ":: $* ::\n"; }
if [ ! -t 0 ]; then
exo-open --launch TerminalEmulator -- -e "$this $*"
exit
fi
action="${1:---help}"
if [[ "$action" = "--help" ]]; then
while read; do printf '%s\n' "$REPLY"
done <<-EOF
$this ($this_version) <andrle.jan@centrum.cz>
Utility for updating my packages managers such as \`npm\`, \`apt\`, \`github-releases\` …
Usage: $this --[help|check|update] [basic|dangerous]
[default] --help: show this text
--check: check updates
--update: update all
--list: list of packages managers
modificators:
[default] basic: checks/updates regular packages managers
dangerous: ↘+also \`pip\`
EOF
exit 0
fi
if [[ "$action" = "--list" ]]; then
echo npm
echo github-releases.js
echo _vim_plugins updates only
echo snap updates only
echo flatpak updates only
echo pip [dangerous]
exit 0
fi
modificator="${2:-basic}"
if [[ "$action" = "--check" ]]; then
log "npm outdated --global (for update use: \`npm update --global\`)"
npm outdated --global
[[ "${?}" = "0" ]] && echo "> all up-to.date"
log "github-releases.js --check (for update use for example: \`github-releases.js --update all\`)"
github-releases.js --check
if [[ ! "$modificator" = "basic" ]]; then
log "pip list --outdated"
pip list --outdated
fi
exit 0
fi
if [[ "$action" = "--update" ]]; then
log "npm update --global"
npm update --global
log "github-releases.js --update all"
github-releases.js --update all
log "_vim_plugins --update"
_vim_plugins --update
log "snap refresh --list"
snap refresh --list
log "flatpak update"
flatpak update
if [[ ! "$modificator" = "basic" ]]; then
log "pip list --outdated --format=freeze | grep -v '^\\-e' | cut -d = -f 1 | xargs -n1 pip install -U --user"
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U --user
fi
exit 0
fi
err "Wrong arguments (use \`--help\`)"