summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dot_config/zsh/aliasrc2
-rw-r--r--dot_config/zsh/dot_zshenv2
-rw-r--r--dot_config/zsh/dot_zshrc7
-rw-r--r--dot_local/bin/executable_update92
4 files changed, 99 insertions, 4 deletions
diff --git a/dot_config/zsh/aliasrc b/dot_config/zsh/aliasrc
index 5b933ed..75903ee 100644
--- a/dot_config/zsh/aliasrc
+++ b/dot_config/zsh/aliasrc
@@ -12,7 +12,7 @@
# sudo not required for some system commands
for x in mount umount sv emerge apt pacman updatedb su ; do
# shellcheck disable=SC2139
- alias $x='sudo $x'
+ alias $x="sudo $x"
done
if command -v doas >/dev/null 2>&1
diff --git a/dot_config/zsh/dot_zshenv b/dot_config/zsh/dot_zshenv
index 29838fc..47236cf 100644
--- a/dot_config/zsh/dot_zshenv
+++ b/dot_config/zsh/dot_zshenv
@@ -16,7 +16,7 @@ else
fi
# Use TUI editor for git
-export GIT_EDITOR="$EDITOR"
+[ -z "$GIT_EDITOR" ] && export GIT_EDITOR="$EDITOR"
# Default programs for SSH or not
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
export BROWSER="w3m"
diff --git a/dot_config/zsh/dot_zshrc b/dot_config/zsh/dot_zshrc
index a592706..296d368 100644
--- a/dot_config/zsh/dot_zshrc
+++ b/dot_config/zsh/dot_zshrc
@@ -39,8 +39,11 @@ setopt interactive_comments
setopt complete_aliases
# History in cache directory:
-HISTSIZE=100000000
-SAVEHIST=100000000
+HISTSIZE=999999999
+SAVEHIST=$HISTSIZE
+if [ -z "$XDG_STATE_HOME/zsh" ]; then
+ mkdir -p "$XDG_STATE_HOME/zsh"
+fi
HISTFILE="$XDG_STATE_HOME"/zsh/history
setopt BANG_HIST # Treat the '!' character specially during expansion.
setopt EXTENDED_HISTORY # Write the history file in the ":start:elapsed;command" format.
diff --git a/dot_local/bin/executable_update b/dot_local/bin/executable_update
new file mode 100644
index 0000000..1c36665
--- /dev/null
+++ b/dot_local/bin/executable_update
@@ -0,0 +1,92 @@
+#!/bin/sh
+
+set -e
+
+# if doas is installed, use it instead of sudo
+if [ -x "$(command -v doas)" ]; then
+ sudo() {
+ doas "$@"
+ }
+fi
+
+# Get current Distro
+if [ -f /etc/os-release ]; then
+ . /etc/os-release
+ if [ -z "$ID_LIKE" ]; then
+ ID_LIKE=""
+ fi
+else
+ ID=$(uname -s)
+fi
+
+UPDATED=0
+
+set -- "$ID" "$ID_LIKE"
+for i in "$@"; do
+ case "$i" in
+ # YUNO use ID_LIKE, chimera :(
+ alpine | chimera)
+ sudo apk update || return 1
+ sudo apk upgrade || return 1
+ UPDATED=1
+ ;;
+ arch)
+ # TODO: Find a way to prefer one over the other besides hardcoding
+ if [ -x "$(command -v yay)" ]; then
+ yay -Syu || return 1
+ yay -Yc || return 1
+ elif [ -x "$(command -v paru)" ]; then
+ paru -Syu || return 1
+ paru -c || return 1
+ else
+ sudo pacman -Syu || return 1
+ fi
+ UPDATED=1
+ ;;
+ Darwin)
+ brew update || return 1
+ brew upgrade -g || return 1
+ brew cleanup || return 1
+ UPDATED=1
+ ;;
+ debian)
+ sudo apt update || return 1
+ sudo apt dist-upgrade || return 1
+ sudo apt autoremove || return 1
+ UPDATED=1
+ ;;
+ gentoo)
+ sudo emaint -a sync || return 1
+ sudo emerge -avuDU --changed-use @world || return 1
+ sudo emerge -av --depclean || return 1
+ UPDATED=1
+ ;;
+ opensuse)
+ sudo zypper refresh || return 1
+ sudo zypper update || return 1
+ sudo zypper clean -a || return 1
+ UPDATED=1
+ ;;
+ *) ;;
+ esac
+ if [ "$UPDATED" -eq 1 ]; then
+ break
+ fi
+done
+
+# Update flatpaks, if flatpak is installed
+if [ -x "$(command -v flatpak)" ]; then
+ flatpak update || return 1
+ UPDATED=1
+fi
+
+# Update snaps, if snap is installed
+if [ -x "$(command -v snap)" ]; then
+ sudo snap refresh || return 1
+ UPDATED=1
+fi
+
+if [ "$UPDATED" -eq 0 ]; then
+ echo "No package managers found!"
+ exit 1
+fi