aboutsummaryrefslogtreecommitdiff
path: root/install.sh
diff options
context:
space:
mode:
Diffstat (limited to 'install.sh')
-rwxr-xr-xinstall.sh101
1 files changed, 87 insertions, 14 deletions
diff --git a/install.sh b/install.sh
index 57aa04c..942a744 100755
--- a/install.sh
+++ b/install.sh
@@ -1,9 +1,21 @@
#!/bin/bash
-
-set -e
-
dirArchIsoFiles=~/archisofiles
dotfiles=~/.dotfiles
+counterAbortedPkg=0
+
+setStatusE () {
+ if [ "$1" = true ]; then
+ set +e
+ else
+ set -e
+ fi
+}
+
+setStatusE false
+
+pacmanSetupPkg () {
+ sudo pacman -S --needed - < "$archisofiles"/pkglist.txt
+}
cloneDotfiles () {
keepassxc-cli show "$dirArchIsoFiles"/Passwords.kdbx github | grep "Notes:" | awk '{ print $2 }' | wl-copy
@@ -12,47 +24,108 @@ cloneDotfiles () {
}
readArrays () {
- readarray -t stowPackages < <(ls -l "$dotfiles" | grep '^d' | awk '{ print $9 }')
+ readarray -t stowPkgs < <(ls -l "$dotfiles" | grep '^d' | awk '{ print $9 }')
+}
+
+checkPkg () {
+ counterAbortedPkg=$((counterAbortedPkg+1))
+
+ echo "Название: $package" >> "$dotfiles"/abortedPkg.txt
+
+ stow -d "$dotfiles" -nvt ~ "$package" 2>&1 | awk '{ print $11 }' >> "$dotfiles"/abortedPkg.txt
}
-stowPackageExtract () {
- for package in ${stowPackages[@]}
+stowNoFolding () {
+ setStatusE true
+
+ stow -d "$dotfiles" --no-folding -nvt ~ "$package"
+
+ if [ $? -eq 1 ]; then
+ setStatusE false
+
+ checkPkg
+ else
+ setStatusE false
+
+ stow -d "$dotfiles" --no-folding --adopt -vt ~ "$package"
+ fi
+}
+
+stowDir () {
+ setStatusE true
+
+ stow -d "$dotfiles" --adopt -nvt ~ "$package"
+
+ if [ $? -eq 1 ]; then
+ setStatusE false
+
+ checkPkg
+ else
+ setStatusE false
+
+ stow -d "$dotfiles" --adopt -vt ~ "$package"
+ fi
+}
+
+stowPkgExtract () {
+ for package in ${stowPkgs[@]}
do
packageFirstSymbol=${package:0:1}
if [ "$packageFirstSymbol" = "_" ]; then
- stow --no-folding -vt ~ "$package"
+ stowNoFolding
else
- stow -nvt ~ "$package"
+ stowDir
+ fi
+ done
+}
+
+stowUpdateNoFoldingPkg () {
+ for package in ${stowPkgs[@]}
+ do
+ packageFirstSymbol=${package:0:1}
+
+ if [ "$packageFirstSymbol" = "_" ]; then
+ stowNoFolding
fi
done
}
startSetup () {
- select event in Pacman Stow; do
+ select event in Pacman Stow StowUpdate; do
case $event in
Pacman)
- pacman -S --needed - < "$archisofiles"/pkglist.txt
-
- break
+ pacmanSetupPkg
+ break
;;
Stow)
+ pacmanSetupPkg
cloneDotfiles
readArrays
- stowPackageExtract
+ stowPkgExtract
break
;;
+ StowUpdate)
+ stowUpdateNoFoldingPkg
+
+ break
+ ;;
+
*)
echo "Invalid option... Выход"
exit
;;
esac
done
+
+ if [ "$counterAbortedPkg" -gt 0 ]; then
+ echo "Количество нераспакованных пакетов: $counterAbortedPkg"
+ echo "Список находится в ~/.dotfiles/abortedPkg.txt"
+ fi
}
# Установка
startSetup
-