Skip to content

Commit 9e1d1c5

Browse files
committed
Improved yeet command to support apt too
1 parent e204862 commit 9e1d1c5

3 files changed

Lines changed: 96 additions & 24 deletions

File tree

rc/shell/aliases

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -135,29 +135,8 @@ if [ "${OSTYPE}" = 'cygwin' ]; then
135135
fi
136136

137137
### Package manager
138-
PACKAGE_MANAGER_CMD='sudo printf ""';
139-
140-
if [[ "${PACKAGE_MANAGER}" == 'pacman' ]]; then
141-
PACKAGE_MANAGER_CMD="${PACKAGE_MANAGER_CMD}"' && sudo ${PACKAGE_MANAGER}'
142-
else
143-
PACKAGE_MANAGER_CMD="${PACKAGE_MANAGER_CMD}"' && ${PACKAGE_MANAGER}'
144-
fi
145-
146-
CAN_PM_ALIAS_AUTOCOMPLETE=false
147-
148-
if [[ "${PACKAGE_MANAGER}" == "apt" ]]; then
149-
PACKAGE_MANAGER_CMD="sudo apt -y"
150-
elif [[ "${PACKAGE_MANAGER}" == "paru" ]] \
151-
|| [[ "${PACKAGE_MANAGER}" == "yay" ]]; then
152-
PACKAGE_MANAGER_CMD="${PACKAGE_MANAGER_CMD} --noredownload --norebuild --sudoloop" # Optimisations
153-
PACKAGE_MANAGER_CMD="${PACKAGE_MANAGER_CMD} --noconfirm" # Prompt skip
154-
PACKAGE_MANAGER_CMD="${PACKAGE_MANAGER_CMD} --bottomup --color auto" # Visuals
155-
elif [[ "${PACKAGE_MANAGER}" == "yaourt" ]]; then
156-
PACKAGE_MANAGER_CMD="${PACKAGE_MANAGER_CMD} --noconfirm"
157-
fi
158-
159-
alias yeet="${PACKAGE_MANAGER_CMD}"
160-
set_alias_completion_source "${PACKAGE_MANAGER}" "yeet"
138+
alias yeet='package_manager_command'
139+
set_alias_completion_source "${PACKAGE_MANAGER}" 'yeet'
161140

162141
### Fixes
163142
[ -f "${ROOT_USR_BIN}/monodevelop" ] && alias monodevelop="GNOME_DESKTOP_SESSION_ID="" monodevelop"

rc/shell/functions

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,88 @@ function edit() {
3636
fi
3737
done
3838
}
39+
40+
function package_manager_command() {
41+
local OPERATION
42+
local PACKAGE_MANAGER
43+
local PACKAGE_MANAGER_COMMAND
44+
local PACKAGE_MANAGER_FAMILY
45+
46+
OPERATION="${1}" && shift
47+
PACKAGE_MANAGER='unknown'
48+
PACKAGE_MANAGER_COMMAND='unknown'
49+
PACKAGE_MANAGER_FAMILY='unknown'
50+
USE_SUDO=false
51+
52+
if [ -e '/usr/bin/apt' ]; then
53+
PACKAGE_MANAGER='apt'
54+
PACKAGE_MANAGER_COMMAND="sudo ${PACKAGE_MANAGER} -y"
55+
PACKAGE_MANAGER_FAMILY='apt'
56+
USE_SUDO=true
57+
elif [ -e '/usr/bin/paru' ]; then
58+
PACKAGE_MANAGER='paru'
59+
PACKAGE_MANAGER_COMMAND="${PACKAGE_MANAGER} --noredownload --norebuild --sudoloop --noconfirm --bottomup --color auto"
60+
PACKAGE_MANAGER_FAMILY='pacman'
61+
USE_SUDO=false
62+
elif [ -e '/usr/bin/yay' ]; then
63+
PACKAGE_MANAGER='yay'
64+
PACKAGE_MANAGER_COMMAND="${PACKAGE_MANAGER} --noredownload --norebuild --sudoloop --noconfirm --bottomup --color auto"
65+
PACKAGE_MANAGER_FAMILY='pacman'
66+
USE_SUDO=false
67+
elif [ -e '/usr/bin/yaourt' ]; then
68+
PACKAGE_MANAGER='yaourt'
69+
PACKAGE_MANAGER_COMMAND="${PACKAGE_MANAGER} --noconfirm"
70+
PACKAGE_MANAGER_FAMILY='pacman'
71+
USE_SUDO=false
72+
elif [ -e '/usr/bin/pacman' ]; then
73+
PACKAGE_MANAGER='pacman'
74+
PACKAGE_MANAGER_COMMAND="sudo ${PACKAGE_MANAGER}"
75+
PACKAGE_MANAGER_FAMILY='pacman'
76+
USE_SUDO=true
77+
fi
78+
79+
# PACKAGE_MANAGER_COMMAND_PREFIX='sudo printf ""';
80+
# PACKAGE_MANAGER_COMMAND="${PACKAGE_MANAGER_COMMAND_PREFIX}"' && ${PACKAGE_MANAGER_COMMAND}'
81+
82+
sudo printf ''
83+
84+
if [[ "${OPERATION}" == 'install' ]] \
85+
|| [[ "${OPERATION}" == '-S' ]]; then
86+
if [[ "${PACKAGE_MANAGER_FAMILY}" == 'apt' ]]; then
87+
${PACKAGE_MANAGER_COMMAND} install "${@}"
88+
elif [[ "${PACKAGE_MANAGER_FAMILY}" == 'pacman' ]]; then
89+
${PACKAGE_MANAGER_COMMAND} -S "${@}"
90+
fi
91+
elif [[ "${OPERATION}" == 'search' ]]; then
92+
if [[ "${PACKAGE_MANAGER_FAMILY}" == 'apt' ]]; then
93+
${PACKAGE_MANAGER_COMMAND} search "${@}"
94+
elif [[ "${PACKAGE_MANAGER_FAMILY}" == 'pacman' ]]; then
95+
${PACKAGE_MANAGER_COMMAND} "${@}"
96+
fi
97+
elif [[ "${OPERATION}" == 'uninstall' ]] \
98+
|| [[ "${OPERATION}" == '-Rns' ]]; then
99+
if [[ "${PACKAGE_MANAGER_FAMILY}" == 'apt' ]]; then
100+
${PACKAGE_MANAGER_COMMAND} purge "${@}"
101+
elif [[ "${PACKAGE_MANAGER_FAMILY}" == 'pacman' ]]; then
102+
${PACKAGE_MANAGER_COMMAND} -Rns "${@}"
103+
fi
104+
elif [[ "${OPERATION}" == 'update' ]] \
105+
|| [[ "${OPERATION}" == '-Syy' ]]; then
106+
if [[ "${PACKAGE_MANAGER_FAMILY}" == 'apt' ]]; then
107+
${PACKAGE_MANAGER_COMMAND} update
108+
elif [[ "${PACKAGE_MANAGER_FAMILY}" == 'pacman' ]]; then
109+
${PACKAGE_MANAGER_COMMAND} -Syy
110+
fi
111+
elif [[ "${OPERATION}" == 'upgrade' ]] \
112+
|| [[ "${OPERATION}" == '-Syu' ]]; then
113+
if [[ "${PACKAGE_MANAGER_FAMILY}" == 'apt' ]]; then
114+
${PACKAGE_MANAGER_COMMAND} update
115+
${PACKAGE_MANAGER_COMMAND} upgrade
116+
elif [[ "${PACKAGE_MANAGER_FAMILY}" == 'pacman' ]]; then
117+
${PACKAGE_MANAGER_COMMAND} -Syu
118+
fi
119+
else
120+
echo 'Unknown operation.'
121+
return 1
122+
fi
123+
}

scripts/update-rcs.sh

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,16 @@ if does_bin_exist 'paru'; then
152152
set_config_value "${SHELL_VARIABLES_RC_PATH}" 'export PACKAGE_MANAGER' 'paru'
153153
elif does_bin_exist 'yay'; then
154154
set_config_value "${SHELL_VARIABLES_RC_PATH}" 'export PACKAGE_MANAGER' 'yay'
155-
else
155+
elif does_bin_exist 'yaourt'; then
156+
set_config_value "${SHELL_VARIABLES_RC_PATH}" 'export PACKAGE_MANAGER' 'yaourt'
157+
elif does_bin_exist 'pacman'; then
156158
set_config_value "${SHELL_VARIABLES_RC_PATH}" 'export PACKAGE_MANAGER' 'pacman'
159+
elif does_bin_exist 'apt'; then
160+
set_config_value "${SHELL_VARIABLES_RC_PATH}" 'export PACKAGE_MANAGER' 'apt'
161+
elif does_bin_exist 'apk'; then
162+
set_config_value "${SHELL_VARIABLES_RC_PATH}" 'export PACKAGE_MANAGER' 'apk'
163+
elif does_bin_exist 'pkg'; then
164+
set_config_value "${SHELL_VARIABLES_RC_PATH}" 'export PACKAGE_MANAGER' 'pkg'
157165
fi
158166

159167
if does_bin_exist 'micro'; then

0 commit comments

Comments
 (0)