diff options
Diffstat (limited to 'install/util.fish')
| -rw-r--r-- | install/util.fish | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/install/util.fish b/install/util.fish deleted file mode 100644 index 9b258e0..0000000 --- a/install/util.fish +++ /dev/null @@ -1,148 +0,0 @@ -. (dirname (status filename))/../util.fish - -function confirm-overwrite -a path - if test -e $path -o -L $path - read -l -p "input '$(realpath $path 2> /dev/null || echo $path) already exists. Overwrite? [y/N] ' -n" confirm - if test "$confirm" = 'y' -o "$confirm" = 'Y' - log 'Continuing.' - test -z "$argv[2]" && rm -rf $path # If a second arg is provided, don't delete - else - log 'Exiting.' - exit - end - end -end - -function install-deps - # All dependencies already installed - pacman -Q $argv &> /dev/null && return - - for dep in $argv - # Skip if already installed - if ! pacman -Q $dep &> /dev/null - # If pacman can install it, use it, otherwise use an AUR helper - if pacman -Si $dep &> /dev/null - log "Installing dependency '$dep'" - sudo pacman -S --noconfirm $dep - else - # Get AUR helper or install if none - which yay &> /dev/null && set -l helper yay || set -l helper paru - if ! which $helper &> /dev/null - warn 'No AUR helper found' - read -l -p "input 'Install yay? [Y/n] ' -n" confirm - if test "$confirm" = 'n' -o "$confirm" = 'N' - warn "Manually install yay or paru and try again." - warn "Alternatively, install the dependencies '$argv' manually and try again." - exit - else - sudo pacman -S --needed git base-devel - git clone https://aur.archlinux.org/yay.git - cd yay - makepkg -si - cd .. - rm -rf yay - - # First use, see https://github.com/Jguer/yay?tab=readme-ov-file#first-use - yay -Y --gendb - yay -Y --devel --save - end - end - - log "Installing dependency '$dep'" - $helper -S --noconfirm $dep - end - end - end -end - -function install-optional-deps - for dep in $argv - set -l dep_name (string split -f 1 ' ' $dep) - if ! pacman -Q $dep_name &> /dev/null - read -l -p "input 'Install $dep? [Y/n] ' -n" confirm - test "$confirm" != 'n' -a "$confirm" != 'N' && install-deps $dep_name - end - end -end - -function update-repo -a module dir - set -l remote https://github.com/caelestia-dots/$module.git - if test -d $dir - cd $dir || exit - - # Delete and clone if it's a different git repo - if test "$(git config --get remote.origin.url)" != $remote - cd .. || exit - confirm-overwrite $dir - git clone $remote $dir - else - # Check for uncommitted changes - if test -n "$(git status --porcelain)" - read -l -p "input 'You have uncommitted changes in $dir. Stash, reset or exit? [S/r/e] ' -n" confirm - - if test "$confirm" = 'e' -o "$confirm" = 'E' - log 'Exiting...' - exit - end - - if test "$confirm" = 'r' -o "$confirm" = 'R' - log 'Resetting to HEAD...' - git reset --hard - else - log 'Stashing changes...' - git stash - end - end - - git pull - end - else - git clone $remote $dir - end -end - -function setup-systemd-monitor -a module dir - set -l systemd $CONFIG/systemd/user - if which systemctl &> /dev/null - log 'Installing systemd service...' - - mkdir -p $systemd - echo "[Unit] -Description=Sync $module and caelestia schemes - -[Service] -Type=oneshot -ExecStart=$dir/monitor/update.fish" > $systemd/$module-monitor-scheme.service - echo "[Unit] -Description=Sync $module and caelestia schemes (monitor) - -[Path] -PathModified=%S/caelestia/scheme/current.txt -Unit=$module-monitor-scheme.service - -[Install] -WantedBy=default.target" > $systemd/$module-monitor-scheme.path - - systemctl --user daemon-reload - systemctl --user enable --now $module-monitor-scheme.path - systemctl --user start $module-monitor-scheme.service - end -end - -function install-link -a from to - if ! test -L $to -a "$(realpath $to 2> /dev/null)" = $from - mkdir -p (dirname $to) - confirm-overwrite $to - ln -s $from $to - end -end - -function confirm-copy -a from to - test -L $to -a "$(realpath $to 2> /dev/null)" = (realpath $from) && return # Return if symlink - cmp $from $to &> /dev/null && return # Return if files are the same - if test -e $to - read -l -p "input '$(realpath $to) already exists. Overwrite? [y/N] ' -n" confirm - test "$confirm" = 'y' -o "$confirm" = 'Y' && log 'Continuing.' || return - end - cp $from $to -end |