| Hash | Commit message | Author | Date | Files | + | - |
1 | commit 73c331a3511785f919e974f9311be4c5932c161d |
2 | Author: Connor Etherington <[email protected]> |
3 | Date: Sat Dec 31 11:33:43 2022 +0200 |
4 | |
5 | Auto-Commit Update - 20221231 |
6 | --- |
7 | usr/bin/pman | 136 +++++++++++++++++++++++++++++++++++++++-------------------- |
8 | 1 file changed, 90 insertions(+), 46 deletions(-) |
9 | |
10 | diff --git a/usr/bin/pman b/usr/bin/pman |
11 | index 2b90737..5fd95ae 100755 |
12 | --- a/usr/bin/pman |
13 | +++ b/usr/bin/pman |
14 | @@ -19,7 +19,7 @@ packages=( |
15 | ) |
16 | |
17 | |
18 | -## If you wish to clone personal GitHub or GitLab repositories, |
19 | +## If you wish to clone personal GitHub or GitLab repositories, |
20 | ## please enter your own GitHub and/or GitLab username below: |
21 | |
22 | # GitHub / GitLab Usernames : |
23 | @@ -30,19 +30,19 @@ labname="" |
24 | |
25 | |
26 | ## Optionally, you can change the color scheme to your prefrence below. |
27 | -# Your options are as follows: ( blue, green, red, yellow, white, pink or random ) |
28 | +# Your options are as follows: ( blue, green, red, yellow, white, pink or random ) |
29 | |
30 | color1="blue" # Total Count |
31 | color2="pink" # Package Name |
32 | color3="yellow" # Package Description |
33 | |
34 | |
35 | -## PREFIXES AND FORMATTING: |
36 | -#--- |
37 | +## PREFIXES AND FORMATTING:: |
38 | +# --- |
39 | |
40 | # Pacman/AUR Package : <package-name> |
41 | |
42 | -# Gitlab Repo : L,<gitlab-username>/<repo-name> |
43 | +# Gitlab Repo : L,<gitlab-username>/<repo-name> |
44 | # GitHub Repo : H,<github-username>/<repo-name> |
45 | |
46 | # Npm Package : N,<package-name> |
47 | @@ -56,6 +56,50 @@ color3="yellow" # Package Description |
48 | # Web File / Torrent : W,<URL> |
49 | |
50 | |
51 | + |
52 | +## PACKAGE TEMPLATES:: |
53 | + |
54 | +# -------------------------------- # |
55 | + |
56 | +# Wine Packages: |
57 | + |
58 | +'wine' |
59 | +'twine' |
60 | +'q4wine' |
61 | +'wine-mono' |
62 | +'wine-nine' |
63 | +'wine-gecko' |
64 | +'wine-staging' |
65 | +'wine-gallium' |
66 | +'wine-directx' |
67 | +'libappimage' |
68 | +'gwenview' |
69 | +'appimagelauncher ' |
70 | +'lib32-vkd3d-tkg-git' |
71 | +'proton-ge-custom' |
72 | + |
73 | +# -------------------------------- # |
74 | + |
75 | +# Mutt ( Email Client ) Packages: |
76 | + |
77 | +'libosinfo' |
78 | +'dmg2img' |
79 | +'click' |
80 | +'ardour' |
81 | +'isync' |
82 | +'msmtp' |
83 | +'mailsync' |
84 | +'pam-gnupg' |
85 | +'notmuch' |
86 | +'abook' |
87 | +'urlview' |
88 | +'cronie' |
89 | +'mpop' |
90 | + |
91 | +# -------------------------------- # |
92 | + |
93 | + |
94 | + |
95 | # See /usr/share/doc/pkgdl/README.md for more information on list formatting. |
96 | |
97 | ################################################################################################################################ |
98 | @@ -92,24 +136,24 @@ random(){ echo -n "$(tput bold; tput setaf "$(seq 25|shuf|head -1)") ${*}$(tput |
99 | err() { clear ; echo -e "\n$(tput bold; tput setaf 1)[-] ERROR: ${*}$(tput sgr0)" && exit 1337 ; } |
100 | |
101 | |
102 | -scrstart() { clear ; echo -e "\n\n" ; green " Downloading Packages : " ; echo -e "\n\n" || |
103 | +scrstart() { clear ; echo -e "\n\n" ; green " Downloading Packages : " ; echo -e "\n\n" || |
104 | red "\n [-] ERROR: Could Not Find '"$1"'\n\n" ; } |
105 | |
106 | |
107 | -npminstall() { sudo npm install -g "$1" >/dev/null 2>&1 && return 0 || |
108 | +npminstall() { sudo npm install -g "$1" >/dev/null 2>&1 && return 0 || |
109 | ! sudo pacman -Qq npm >/dev/null 2>&1 && err "NPM is not installed. Please install it and try again." || |
110 | red "\n [-] ERROR: Could Not Find '"$1"' in NPM database.\n\n" ; } |
111 | |
112 | -snpinstall() { sudo snap install "$1" >/dev/null 2>&1 && return 0 || |
113 | +snpinstall() { sudo snap install "$1" >/dev/null 2>&1 && return 0 || |
114 | ! sudo pacman -Qq snapd >/dev/null 2>&1 && err "Snapd is not installed. Please install it and try again." || |
115 | red "\n [-] ERROR: Could Not Find '"$1"'in Snap database.\n\n" ; } |
116 | |
117 | -pkginstall() { ${helper} -S --needed --noconfirm "$1" >/dev/null 2>&1 && return 0 || |
118 | - $( ${helper} -Si "$1" >/dev/null 2>&1) && |
119 | +pkginstall() { ${helper} -S --needed --noconfirm "$1" >/dev/null 2>&1 && return 0 || |
120 | + $( ${helper} -Si "$1" >/dev/null 2>&1) && |
121 | red "\n [-] Errors occurred during install of ${1}. Most likely due to conflicting packages.\n\n" || |
122 | red "\n [-] ERROR: '"$1"' could not be found in package database.\n\n" ; } |
123 | |
124 | -pipinstall() { sudo python3 -m pip install "$1" >/dev/null 2>&1 && return 0 || |
125 | +pipinstall() { sudo python3 -m pip install "$1" >/dev/null 2>&1 && return 0 || |
126 | ! sudo pacman -Qq python-pip >/dev/null 2>&1 && err "Python-pip is not installed. Please install it and try again." || |
127 | red "\n [-] ERROR: Could Not Find '"$1"' in Python database.\n\n" ; } |
128 | |
129 | @@ -133,7 +177,7 @@ hubclone() { git clone https://github.com/"$1".git >/dev/null 2>&1 && return |
130 | ! sudo pacman -Qq git >/dev/null 2>&1 && err "Git is not installed. Please install it and try again." || |
131 | red "\n [-] ERROR: Could Not Find '"$1"' Git repo.\n\n" ; } |
132 | |
133 | -lnOrTorrent() { aria2c "${1}" >/dev/null 2>&1 && return 0 || |
134 | +lnOrTorrent() { aria2c "${1}" >/dev/null 2>&1 && return 0 || |
135 | ! sudo pacman -Qq aria2 >/dev/null 2>&1 && err "NPM is not installed. Please install it and try again." || |
136 | red "\n [-] ERROR: "$1", Could not be download.\n\n" ; } |
137 | |
138 | @@ -144,14 +188,14 @@ testLocal(){ \ |
139 | --yes-label 'Yes, Install It.' \ |
140 | --no-label 'No Nevermind.' \ |
141 | --yesno "\\n${1} cannot be found locally on the system, would you like to install it now?" 6 90 || exit 1 |
142 | - |
143 | + |
144 | dialog \ |
145 | --title "$TITLE" \ |
146 | --infobox "\\nInstalling ${1} ..." 6 35 |
147 | - |
148 | + |
149 | sudo pacman -S --noconfirm ${1} >/dev/null 2>&1 && return 0 |
150 | |
151 | - ${helper} -S --noconfirm ${1} >/dev/null 2>&1 && return 0 || |
152 | + ${helper} -S --noconfirm ${1} >/dev/null 2>&1 && return 0 || |
153 | err "${1} could not be installed. Please install it manually." ; } |
154 | |
155 | |
156 | @@ -199,10 +243,10 @@ testLocal ${editorName} |
157 | |
158 | [ ! -f ${XDG_DATA_HOME:-$HOME/.local/share}/PKD/pkdrc ] && |
159 | echo -e "# ~ PKD Config File ~ #\n\n"\ |
160 | - >> ${XDG_DATA_HOME:-$HOME/.local/share}/PKD/pkdrc |
161 | + >> ${XDG_DATA_HOME:-$HOME/.local/share}/PKD/pkdrc |
162 | |
163 | -! cat ${XDG_DATA_HOME:-$HOME/.local/share}/PKD/pkdrc >/dev/null 2>&1 | grep -q "editor" && |
164 | - echo "editor=\"${editor}\"" >> ${XDG_DATA_HOME:-$HOME/.local/share}/PKD/pkdrc || |
165 | +! cat ${XDG_DATA_HOME:-$HOME/.local/share}/PKD/pkdrc >/dev/null 2>&1 | grep -q "editor" && |
166 | + echo "editor=\"${editor}\"" >> ${XDG_DATA_HOME:-$HOME/.local/share}/PKD/pkdrc || |
167 | sed -i "s/editor=.*/editor=\"${editor}\"/" ${XDG_DATA_HOME:-$HOME/.local/share}/PKD/pkdrc ; } |
168 | |
169 | |
170 | @@ -237,21 +281,21 @@ esac |
171 | --yesno "\\nThe selected AUR helper was not found on your system, would you like to install it now?" 6 95 |
172 | |
173 | fetchHelper=$? |
174 | - |
175 | + |
176 | [ $fetchHelper = 0 ] && dialog \ |
177 | --title "$TITLE" \ |
178 | --infobox "\\nInstalling ${helperName} ..." 6 35 && eval $(\ |
179 | - sudo pacman -S --noconfirm --needed git >/dev/null 2>&1 |
180 | + sudo pacman -S --noconfirm --needed git >/dev/null 2>&1 |
181 | [ "$(id -u)" -eq 0 ] && err "Please run this script as a normal user, not with elevated privileges (sudo)." |
182 | -git clone https://aur.archlinux.org/${helperName}.git /tmp/${helperName}.$$ >/dev/null 2>&1 |
183 | +git clone https://aur.archlinux.org/${helperName}.git /tmp/${helperName}.$$ >/dev/null 2>&1 |
184 | |
185 | -cd /tmp/${helperName}.$$ && |
186 | - makepkg -sri --noconfirm >/dev/null 2>&1 && cd ~/ && |
187 | +cd /tmp/${helperName}.$$ && |
188 | + makepkg -sri --noconfirm >/dev/null 2>&1 && cd ~/ && |
189 | sudo rm -rf /tmp/${helperName}.$$ >/dev/null 2>&1 || |
190 | err "Could not install ${helperName}. Please install it manually.") |
191 | |
192 | ! cat ${XDG_DATA_HOME:-$HOME/.local/share}/PKD/pkdrc >/dev/null 2>&1 | grep -q "helper" && |
193 | - echo -e "helper=\"${helperName}\"" >> ${XDG_DATA_HOME:-$HOME/.local/share}/PKD/pkdrc || |
194 | + echo -e "helper=\"${helperName}\"" >> ${XDG_DATA_HOME:-$HOME/.local/share}/PKD/pkdrc || |
195 | sed -i "s/helper=.*/helper=\"${helperName}\"/" ${XDG_DATA_HOME:-$HOME/.local/share}/PKD/pkdrc ; } |
196 | |
197 | |
198 | @@ -273,10 +317,10 @@ source ${XDG_DATA_HOME:-$HOME/.local/share}/PKD/pkdrc |
199 | |
200 | |
201 | case ${1} in |
202 | - |
203 | + |
204 | -h|--help) printHelp ;; |
205 | - |
206 | - -f) echo "packages=(" >${multiDownlist} ; |
207 | + |
208 | + -f) echo "packages=(" >${multiDownlist} ; |
209 | |
210 | for CAT in ${@} ; do |
211 | |
212 | @@ -285,7 +329,7 @@ case ${1} in |
213 | done ; echo ')' >>$multiDownlist |
214 | |
215 | source ${multiDownlist} ;; |
216 | - |
217 | + |
218 | '') $editor $multiDownlist && source $multiDownlist ;; |
219 | |
220 | *) packages=( ${@} ) ;; |
221 | @@ -296,11 +340,11 @@ esac |
222 | [ -z $packages ] && err "No packages specified ..." |
223 | |
224 | |
225 | -for x in "${packages[@]}" ; do |
226 | +for x in "${packages[@]}" ; do |
227 | + |
228 | + echo $x >> /tmp/total.tmp |
229 | |
230 | - echo $x >> /tmp/total.tmp |
231 | - |
232 | - sed -i '/^\s*$/d;/^#/d' /tmp/total.tmp |
233 | + sed -i '/^\s*$/d;/^#/d' /tmp/total.tmp |
234 | |
235 | done ; scrstart |
236 | |
237 | @@ -313,43 +357,43 @@ while IFS=, read -r src pkg desc viewName ; do |
238 | |
239 | viewName="${pkg}" |
240 | |
241 | - |
242 | - echo ${pkg}|grep -q "^http.*" || echo ${pkg}|grep -q "^www.*" || echo ${pkg}|grep -q "^magnet:\?.*" && |
243 | + |
244 | + echo ${pkg}|grep -q "^http.*" || echo ${pkg}|grep -q "^www.*" || echo ${pkg}|grep -q "^magnet:\?.*" && |
245 | src='W' && viewName="$(basename ${pkg})" |
246 | |
247 | |
248 | [[ ${src} == 'W' ]] && [[ -z ${desc} ]] && desc="Downloading Link..." |
249 | |
250 | [[ ${src} == 'MH' ]] && [[ -z ${desc} ]] && desc="Cloning Repo from ${hubname}'s Github ..." |
251 | - |
252 | + |
253 | [[ ${src} == 'ML' ]] && [[ -z ${desc} ]] && desc="Cloning Repo from ${hubname}'s Gitlab..." |
254 | |
255 | - [[ ${src} == 'W' ]] && echo ${pkg} | grep -q "\.torrent$" || echo ${pkg} | grep -q "^magnet:\?.*" && |
256 | + [[ ${src} == 'W' ]] && echo ${pkg} | grep -q "\.torrent$" || echo ${pkg} | grep -q "^magnet:\?.*" && |
257 | viewName="Downloading Torrent File..." && desc="" |
258 | |
259 | |
260 | [[ ${src} == 'L' ]] && [[ -z ${desc} ]] && desc="Cloning from Gitlab..." |
261 | - |
262 | + |
263 | [[ ${src} == 'H' ]] && [[ -z ${desc} ]] && desc="Cloning from Github..." |
264 | |
265 | |
266 | - ((n=$n+1)) ; total=$(wc -l < /tmp/total.tmp) ; |
267 | - |
268 | - $color1 "( $n of $total ) " |
269 | + ((n=$n+1)) ; total=$(wc -l < /tmp/total.tmp) ; |
270 | + |
271 | + $color1 "( $n of $total ) " |
272 | |
273 | $color2 $viewName && [ -n "$(echo "$desc")" ] && green " - " && $color3 "$desc" ; echo "" |
274 | - |
275 | + |
276 | |
277 | case "$src" in |
278 | |
279 | - "W") lnOrTorrent "$pkg" ;; "L") labclone "$pkg" ;; "ML") mylabclone "$pkg" ;; |
280 | + "W") lnOrTorrent "$pkg" ;; "L") labclone "$pkg" ;; "ML") mylabclone "$pkg" ;; |
281 | + |
282 | + "S") snpinstall "$pkg" ;; "N") npminstall "$pkg" ;; "H") hubclone "$pkg" ;; |
283 | |
284 | - "S") snpinstall "$pkg" ;; "N") npminstall "$pkg" ;; "H") hubclone "$pkg" ;; |
285 | + "MH") myhubclone "$pkg" ;; "") pkginstall "$pkg" ;; "P") pipinstall "$pkg" ;; |
286 | |
287 | - "MH") myhubclone "$pkg" ;; "") pkginstall "$pkg" ;; "P") pipinstall "$pkg" ;; |
288 | - |
289 | "F") flatinstall "$pkg" ;; *) echo -e "\n" && err ""$src" is not a valid option for a source. - skipping: "$src" ..." |
290 | - |
291 | + |
292 | echo -e "\n" ; sleep 2 ;; esac ; done < /tmp/total.tmp || exit 1 |
293 | |
294 | msg "\n\n\n[+] Download Complete.\n" && sleep 1 && exit 0 || exit 1 |