From 7b7cb10e87aae3d3219b95c43db1f8f215cb0562 Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Fri, 13 Sep 2024 14:47:07 +0200 Subject: [PATCH] Refactor the software install workflow --- scripts/Arch/Software/Firefox/main.fish | 3 +++ scripts/Arch/Software/IcedTea/main.fish | 2 -- scripts/Arch/Software/KDE/main.fish | 2 -- scripts/Arch/Software/Pennywise/main.fish | 2 -- .../Software/Virtual Machine Manager/main.fish | 2 -- scripts/Arch/Software/aliae/main.fish | 4 +++- scripts/Arch/Software/brave/main.fish | 4 +++- scripts/Arch/Software/git/main.fish | 6 ++++-- scripts/Arch/Software/logo-ls/main.fish | 2 -- scripts/Arch/Software/minegrub-theme/main.fish | 5 ++++- scripts/Arch/Software/n/main.fish | 5 ++++- scripts/Arch/Software/openssh/main.fish | 2 -- scripts/Arch/Software/pyenv/main.fish | 5 ++++- scripts/Arch/Software/rclone/main.fish | 4 +++- scripts/Arch/Software/sddm/main.fish | 1 - scripts/Arch/Software/vim/main.fish | 7 +++++-- scripts/Arch/Software/vscode/main.fish | 2 -- scripts/Arch/Software/zoxide/main.fish | 4 +++- scripts/Common/Scripts/software.fish | 16 +++++----------- .../Software/Virtual Machine Manager/main.fish | 3 --- scripts/Common/Software/aliae/main.fish | 4 ---- scripts/Common/Software/bash/main.fish | 4 ---- scripts/Common/Software/n/main.fish | 1 - scripts/Common/Software/vim/main.fish | 4 ---- scripts/Common/Software/zoxide/main.fish | 4 ---- 25 files changed, 41 insertions(+), 57 deletions(-) diff --git a/scripts/Arch/Software/Firefox/main.fish b/scripts/Arch/Software/Firefox/main.fish index f6e4fa9c..9719cbd8 100755 --- a/scripts/Arch/Software/Firefox/main.fish +++ b/scripts/Arch/Software/Firefox/main.fish @@ -5,6 +5,9 @@ begin function installSW -V dir yayinst firefox + end + + function configureSW -V dir fish "$dir/../../../Common/Software/Firefox/main.fish" configure end diff --git a/scripts/Arch/Software/IcedTea/main.fish b/scripts/Arch/Software/IcedTea/main.fish index 0d794925..0159b820 100755 --- a/scripts/Arch/Software/IcedTea/main.fish +++ b/scripts/Arch/Software/IcedTea/main.fish @@ -9,8 +9,6 @@ begin yayinst \ icedtea-web - - configureSW end function configureSW diff --git a/scripts/Arch/Software/KDE/main.fish b/scripts/Arch/Software/KDE/main.fish index 7d2e921b..2f3da66a 100755 --- a/scripts/Arch/Software/KDE/main.fish +++ b/scripts/Arch/Software/KDE/main.fish @@ -19,8 +19,6 @@ begin # File Exchange Support for KDE Connect: https://wiki.archlinux.org/title/KDE#KDE_Connect ) sshfs \ fwupd - - configureSW end function configureSW diff --git a/scripts/Arch/Software/Pennywise/main.fish b/scripts/Arch/Software/Pennywise/main.fish index 3fe30f95..88ce68f2 100755 --- a/scripts/Arch/Software/Pennywise/main.fish +++ b/scripts/Arch/Software/Pennywise/main.fish @@ -6,8 +6,6 @@ begin function installSW yayinst \ pennywise-bin - - configureSW end function configureSW diff --git a/scripts/Arch/Software/Virtual Machine Manager/main.fish b/scripts/Arch/Software/Virtual Machine Manager/main.fish index 9d803ba1..37ea999b 100755 --- a/scripts/Arch/Software/Virtual Machine Manager/main.fish +++ b/scripts/Arch/Software/Virtual Machine Manager/main.fish @@ -14,8 +14,6 @@ begin swtpm \ lxc \ virt-bootstrap-git - - configureSW end function configureSW -V dir diff --git a/scripts/Arch/Software/aliae/main.fish b/scripts/Arch/Software/aliae/main.fish index ced280d1..a6592360 100755 --- a/scripts/Arch/Software/aliae/main.fish +++ b/scripts/Arch/Software/aliae/main.fish @@ -3,10 +3,12 @@ begin set -l dir (status dirname) source "$dir/../../Scripts/software.fish" - function installSW -V dir + function installSW yayinst \ aliae-bin + end + function configureSW -V dir fish "$dir/../../../Common/Software/aliae/main.fish" configure end diff --git a/scripts/Arch/Software/brave/main.fish b/scripts/Arch/Software/brave/main.fish index f2f6984e..fe7bc672 100755 --- a/scripts/Arch/Software/brave/main.fish +++ b/scripts/Arch/Software/brave/main.fish @@ -3,12 +3,14 @@ begin set -l dir (status dirname) source "$dir/../../Scripts/software.fish" - function installSW -V dir + function installSW yayinst brave-bin ( # brave-beta-bin # brave-nightly-bin ) + end + function configureSW -V dir fish "$dir/../../../Common/Software/brave/main.fish" configure end diff --git a/scripts/Arch/Software/git/main.fish b/scripts/Arch/Software/git/main.fish index 26279555..cc6d0bc3 100755 --- a/scripts/Arch/Software/git/main.fish +++ b/scripts/Arch/Software/git/main.fish @@ -3,7 +3,7 @@ begin set -l dir (status dirname) source "$dir/../../Scripts/software.fish" - function installSW -V dir + function installSW yayinst \ git \ git-lfs \ @@ -11,8 +11,10 @@ begin gitflow-bashcompletion-avh \ gitflow-fishcompletion-avh \ gitflow-zshcompletion-avh + end - and fish "$dir/../../../Common/Software/git/main.fish" configure + function configureSW -V dir + fish "$dir/../../../Common/Software/git/main.fish" configure end runInstaller $argv diff --git a/scripts/Arch/Software/logo-ls/main.fish b/scripts/Arch/Software/logo-ls/main.fish index e23e90b2..1f4c5581 100755 --- a/scripts/Arch/Software/logo-ls/main.fish +++ b/scripts/Arch/Software/logo-ls/main.fish @@ -32,8 +32,6 @@ begin rm -rf "$contextRoot" end - - configureSW end function configureSW -V dir diff --git a/scripts/Arch/Software/minegrub-theme/main.fish b/scripts/Arch/Software/minegrub-theme/main.fish index 9543f14c..dcf0ed35 100755 --- a/scripts/Arch/Software/minegrub-theme/main.fish +++ b/scripts/Arch/Software/minegrub-theme/main.fish @@ -3,8 +3,11 @@ begin set -l dir (status dirname) source "$dir/../../Scripts/software.fish" - function installSW -V dir + function installSW yayinst grub-theme-minegrub-git + end + + function configureSW -V dir fish "$dir/../../../Common/Software/minegrub-theme/main.fish" configure end diff --git a/scripts/Arch/Software/n/main.fish b/scripts/Arch/Software/n/main.fish index 5a3fb696..cf5f938c 100755 --- a/scripts/Arch/Software/n/main.fish +++ b/scripts/Arch/Software/n/main.fish @@ -3,8 +3,11 @@ begin set -l dir (status dirname) source "$dir/../../Scripts/software.fish" - function installSW -V dir + function installSW yayinst nodejs-n + end + + function configureSW -V dir sudo --preserve-env --set-home fish "$dir/../../../Common/Software/n/main.fish" configure end diff --git a/scripts/Arch/Software/openssh/main.fish b/scripts/Arch/Software/openssh/main.fish index d95bfc0b..493225a1 100755 --- a/scripts/Arch/Software/openssh/main.fish +++ b/scripts/Arch/Software/openssh/main.fish @@ -7,8 +7,6 @@ begin yayinst \ openssh \ libfido2 - - source (status filename) configure end function configureSW diff --git a/scripts/Arch/Software/pyenv/main.fish b/scripts/Arch/Software/pyenv/main.fish index 0eb2d7d1..a1646e40 100755 --- a/scripts/Arch/Software/pyenv/main.fish +++ b/scripts/Arch/Software/pyenv/main.fish @@ -3,8 +3,11 @@ begin set -l dir (status dirname) source "$dir/../../Scripts/software.fish" - function installSW -V dir + function installSW yayinst pyenv + end + + function configureSW -V dir fish "$dir/../../../Common/Software/pyenv/main.fish" configure end diff --git a/scripts/Arch/Software/rclone/main.fish b/scripts/Arch/Software/rclone/main.fish index 5a09b4e7..2eec2d34 100755 --- a/scripts/Arch/Software/rclone/main.fish +++ b/scripts/Arch/Software/rclone/main.fish @@ -4,10 +4,12 @@ begin source "$dir/../../Scripts/software.fish" source "$dir/../../../Common/Software/rclone/main.fish" - function installSW -V dir + function installSW yayinst \ rclone + end + function configureSW -V dir fish "$dir/../../../Common/Software/rclone/main.fish" configure end diff --git a/scripts/Arch/Software/sddm/main.fish b/scripts/Arch/Software/sddm/main.fish index 269133eb..525953e6 100755 --- a/scripts/Arch/Software/sddm/main.fish +++ b/scripts/Arch/Software/sddm/main.fish @@ -8,7 +8,6 @@ begin # yes | yayinst sddm-git # stable version yayinst sddm - configureSW end function configureSW -V dir diff --git a/scripts/Arch/Software/vim/main.fish b/scripts/Arch/Software/vim/main.fish index 0006bf97..09718828 100755 --- a/scripts/Arch/Software/vim/main.fish +++ b/scripts/Arch/Software/vim/main.fish @@ -4,7 +4,7 @@ begin source "$dir/../../Scripts/software.fish" source "$dir/../../../Common/Software/vim/main.fish" - function installSW -V dir + function installSW yayinst ( # Necessary for accessing clipboard in terminal: https://wiki.archlinux.org/title/Vim ) gvim \ @@ -12,8 +12,11 @@ begin # Add clipboard support for wayland: https://www.reddit.com/r/Fedora/comments/ax9p9t/comment/jjb4p7b/ ) vim-wayland-clipboard-git \ wl-clipboard + end - and fish "$dir/../../../Common/Software/vim/main.fish" configure + + function configureSW -V dir + fish "$dir/../../../Common/Software/vim/main.fish" configure end runInstaller $argv diff --git a/scripts/Arch/Software/vscode/main.fish b/scripts/Arch/Software/vscode/main.fish index c60573c7..0a101701 100755 --- a/scripts/Arch/Software/vscode/main.fish +++ b/scripts/Arch/Software/vscode/main.fish @@ -9,8 +9,6 @@ begin visual-studio-code-bin ( # Trash functionality ) gvfs - - configureSW end function configureSW -V dir diff --git a/scripts/Arch/Software/zoxide/main.fish b/scripts/Arch/Software/zoxide/main.fish index 700c05b5..84f3f60e 100755 --- a/scripts/Arch/Software/zoxide/main.fish +++ b/scripts/Arch/Software/zoxide/main.fish @@ -3,10 +3,12 @@ begin set -l dir (status dirname) source "$dir/../../Scripts/software.fish" - function installSW -V dir + function installSW yayinst \ zoxide + end + function configureSW -V dir fish "$dir/../../../Common/Software/zoxide/main.fish" configure end diff --git a/scripts/Common/Scripts/software.fish b/scripts/Common/Scripts/software.fish index 6edb1383..d038640c 100755 --- a/scripts/Common/Scripts/software.fish +++ b/scripts/Common/Scripts/software.fish @@ -12,23 +12,17 @@ begin end function runInstaller -V dir -a action + source "$dir/config.fish" + if [ -z "$action" ] || [ "$action" = "install" ] installSW $argv[2..] - else if [ "$action" = "configure" ] - configureSW $argv[2..] - - source "$dir/config.fish" - set -l users (getUsers) + runInstaller "configure" if not isConfigured || [ "$USER" != (getConfig "valhalla.setupUser.name") ] runInstaller userConfig end - - for name in (echo "$users" | jq '.[]' --raw-output0 | string split0) - if [ "$name" != "$USER" ] - runInstaller userConfig "$name" - end - end + else if [ "$action" = "configure" ] + configureSW $argv[2..] else if [ "$action" = "userConfig" ] set -l name $argv[2] diff --git a/scripts/Common/Software/Virtual Machine Manager/main.fish b/scripts/Common/Software/Virtual Machine Manager/main.fish index 79dcd727..f3e01bff 100755 --- a/scripts/Common/Software/Virtual Machine Manager/main.fish +++ b/scripts/Common/Software/Virtual Machine Manager/main.fish @@ -3,9 +3,6 @@ begin set -l dir (status dirname) source "$dir/../../Scripts/software.fish" - function installSW - end - function configureSW sudo virsh net-autostart default diff --git a/scripts/Common/Software/aliae/main.fish b/scripts/Common/Software/aliae/main.fish index 3ce13c2b..0afe73f6 100755 --- a/scripts/Common/Software/aliae/main.fish +++ b/scripts/Common/Software/aliae/main.fish @@ -3,10 +3,6 @@ begin set -l dir (status dirname) source "$dir/../../Scripts/software.fish" - function installSW - configureSW - end - function configureSW -V dir source "$dir/../bash/profile.fish" source "$dir/../fish/profile.fish" diff --git a/scripts/Common/Software/bash/main.fish b/scripts/Common/Software/bash/main.fish index 07f4356b..cfc4eca1 100755 --- a/scripts/Common/Software/bash/main.fish +++ b/scripts/Common/Software/bash/main.fish @@ -3,10 +3,6 @@ begin set -l dir (status dirname) source "$dir/../../Scripts/software.fish" - function installSW - configureSW - end - function configureSW -V dir begin printf %s\n \ diff --git a/scripts/Common/Software/n/main.fish b/scripts/Common/Software/n/main.fish index 0bbc01f4..79ba523e 100755 --- a/scripts/Common/Software/n/main.fish +++ b/scripts/Common/Software/n/main.fish @@ -5,7 +5,6 @@ begin function installSW npm install --global n - configureSW end function configureSW diff --git a/scripts/Common/Software/vim/main.fish b/scripts/Common/Software/vim/main.fish index 8b803fee..a6c27d88 100755 --- a/scripts/Common/Software/vim/main.fish +++ b/scripts/Common/Software/vim/main.fish @@ -3,10 +3,6 @@ begin set -l dir (status dirname) source "$dir/../../Scripts/software.fish" - function installSW - configureSW - end - function configureSW set -l configFile /etc/vimrc set -l indicator "set clipboard" diff --git a/scripts/Common/Software/zoxide/main.fish b/scripts/Common/Software/zoxide/main.fish index fa47d3f4..5d0c64be 100755 --- a/scripts/Common/Software/zoxide/main.fish +++ b/scripts/Common/Software/zoxide/main.fish @@ -3,10 +3,6 @@ begin set -l dir (status dirname) source "$dir/../../Scripts/software.fish" - function installSW - configureSW - end - function configureSW -V dir source "$dir/../bash/profile.fish" source "$dir/../fish/profile.fish"