AutoYADM commit: 2025-04-30 18:15:05
This commit is contained in:
parent
27dc9d5484
commit
6abfbb7f95
5 changed files with 1304 additions and 13 deletions
75
.config/fish/functions/update.fish
Normal file
75
.config/fish/functions/update.fish
Normal file
|
@ -0,0 +1,75 @@
|
|||
function update --description "Update everything"
|
||||
# autoconfirm
|
||||
# or force no multiterm
|
||||
argparse h/help y/no-confirm o/one-term -- $argv
|
||||
if set -ql _flag_h
|
||||
printf '%s\n' \
|
||||
'update -- update everything' \
|
||||
'Usage: run `update` to begin' \
|
||||
'Options:' \
|
||||
'-y/--no-confirm: Skip update confirmations' \
|
||||
'-o/--one-term: Force single terminal mode' \
|
||||
'-h/--help: Print this screen'
|
||||
return 0
|
||||
end
|
||||
# TODO add way for user to configure the update list?
|
||||
set -g termcmd foot fish -c
|
||||
set -l std 'cargo install-update -a
|
||||
gup update
|
||||
uv tool upgrade --all'
|
||||
set -l noconfirm 'flatpak update -y
|
||||
yes | paru -Syu'
|
||||
set -l confirm 'flatpak update
|
||||
paru -Syu'
|
||||
set -g cmds (string split \n -- $std | string trim)
|
||||
if set -q _flag_y
|
||||
set --append cmds (string split \n -- $noconfirm | string trim)
|
||||
sudo -v
|
||||
else
|
||||
set --append cmds (string split \n -- $confirm | string trim)
|
||||
end
|
||||
echo Commands to be run:
|
||||
for i in $cmds
|
||||
echo $i
|
||||
end
|
||||
|
||||
function execute
|
||||
argparse i/interactive -- $argv
|
||||
if set -ql _flag_i
|
||||
for cmd in $cmds
|
||||
# max 2 jobs at a time
|
||||
while test (count (jobs -p)) -ge 2
|
||||
sleep 0.5
|
||||
end
|
||||
if string match -q "*paru *" -- "$cmd"
|
||||
eval $cmd
|
||||
else
|
||||
$termcmd $cmd &>/dev/null &
|
||||
end
|
||||
end
|
||||
else
|
||||
for cmd in $cmds
|
||||
eval $cmd
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if not set -ql _flag_o && isatty stdin && isatty stdout
|
||||
while read --nchars 1 -l response --prompt-str="Run on multiple terminals? (y/n)" or return 1
|
||||
switch $response
|
||||
case y Y
|
||||
execute --interactive
|
||||
wait
|
||||
break
|
||||
case n N
|
||||
execute
|
||||
break
|
||||
case '*'
|
||||
echo Invalid input!
|
||||
continue
|
||||
end
|
||||
end
|
||||
else
|
||||
execute
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue