dotfiles/.config/shell/debian

90 lines
2.4 KiB
Plaintext

which apt >/dev/null || return
addalternative() {
sudo update-alternatives --install /usr/bin/$1 $1 "$(which "$1$2")" 1
}
snapinstall() {
sudo snap install "$@" && refreshSetup
}
alias aptupdate='sudo apt-get update'
alias aptremove='sudo apt-get remove'
alias aptpurge='sudo apt-get purge'
alias aptclean='sudo apt-get clean && sudo apt-get autoremove'
upgrade() {
if test -x /usr/bin/pkcon
then sudo pkcon update
else sudo apt update && sudo apt upgrade
fi
sudo snap refresh
flatpak update -y
sudo npm update -g
# npm -g outdated --parseable=true | cut -d : -f 4 | xargs -n 1 npm -g install
}
uma() {
if test "$1"
then printf 'y\nj\na' | umake "$1" "$2" "/opt/${3:-$2}"
else
uma ide idea-ultimate idea
uma android android-studio android/android-studio && yes | /opt/android/sdk/tools/bin/sdkmanager --licenses && pathadd /opt/android/sdk/tools/bin /opt/android/sdk/platform-tools && sudo apt install qemu-kvm && sudo adduser janek kvm
test -d "/opt/vscode" && uma ide visual-studio-code vscode
fi
}
alias aptrepo='sudo add-apt-repository'
_aptrepo_n="$(test "$OSTYPE" != "cygwin" && add-apt-repository --help | grep -- "-n")"
aptrepon() {
test $_aptrepo_n && aptrepo -y -n "$@" || aptrepo -y "$@"
}
aptrepos() {
for repo in "$@"
do aptrepon $repo
done
aptupdate
}
alias aptinstall='sudo apt-get install'
aptinstalls() {
apt-cache show "$1" | grep --color=never '\(Version\|Description\):'
aptinstall "$@"
}
aptinstalli() {
apt download $1
sudo dpkg --ignore-depends=$2 -i $1*.deb
}
aptrepoinstall() {
aptrepo -yu $1
if (( $# > 1 ))
then aptinstall "${@:2}"
else aptinstall "${1##*/}"
fi
}
# Gets the download url for the latest release of a package provided via GitHub Releases
# Usage: ghrelease USER REPO [PATTERN]
ghrelease() {
result=$(curl -s "https://api.github.com/repos/$1/$2/releases/latest" | grep -o "http.*${3:-deb}" | awk '{ print length(), $0}' | sort -n | cut -d' ' -f2-)
echo "$result" | grep amd64 || echo "$result"
}
# Installs a local or remote(http/https) deb package and removes it after installation
installdeb() {
loc="/tmp/install.deb"
case $1 in
http*) wget -O "$loc" $1;;
*) loc="$1";;
esac
sudo dpkg -i "$loc" "${@:2}" && sudo apt -f install && rm "$loc"
}
installgh() {
installdeb $(ghrelease "$@")
}
# Downloads all dependencies of a package into the current directory
download-debs() {
apt-get download $1 && apt-cache depends -i $1 | awk '/Depends:/ {print $2}' | xargs apt-get download
}