aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xinstall.sh248
-rwxr-xr-xlibrary/cloneDotfiles.sh4
-rw-r--r--library/createDefaultDirs.sh8
-rw-r--r--library/stow/stow.sh64
-rw-r--r--library/stow/stowAddPkg.sh122
-rw-r--r--library/stow/stowPkgExtract.sh (renamed from library/stow.sh)25
-rw-r--r--library/stow/stowRewriteAbortedPkg.sh63
-rw-r--r--library/stow/stowUpdateNoFoldingPkg.sh18
-rwxr-xr-xlibrary/yaySetupPkg.sh2
-rw-r--r--pkglist.txt1
10 files changed, 287 insertions, 268 deletions
diff --git a/install.sh b/install.sh
index b186e49..255efe8 100755
--- a/install.sh
+++ b/install.sh
@@ -1,9 +1,9 @@
#!/bin/bash
-dirArchIsoFiles=~/archisofiles
-dotfiles=~/.dotfiles
-abortedPkgFile=~/.dotfiles/abortedPkg.txt
-patternsHomeDir=~/archisofiles/patternsHomeDir.txt
+dirArchIsoFiles=$HOME/archisofiles
+dotfiles=$HOME/.dotfiles
+abortedPkgFile=$HOME/.dotfiles/abortedPkg.txt
+patternsHomeDir=$HOME/archisofiles/patternsHomeDir.txt
counterAbortedPkg=0
setStatusE () {
@@ -16,211 +16,8 @@ setStatusE () {
}
-setStatusE false
-
-abortedPkg () {
-
- if [ "$counterAbortedPkg" -gt 0 ]; then
- echo "Количество нераспакованных пакетов: $counterAbortedPkg"
- echo "Список находится в ~/.dotfiles/abortedPkg.txt"
- elif [ "$1" = "delete" ] && [ -e "$abortedPkgFile" ]; then
- rm -i "$abortedPkgFile"
- fi
-
-}
-
-createStowPkgDir () {
-
- if [ "$typePackageDir" = "full" ]; then
-
- mkdir "$dotfiles"/"$namePackage"
- packageDir="$dotfiles"/"$namePackage"
-
- elif [ "$typePackageDir" = "noFolding" ]; then
-
- mkdir "$dotfiles"/"_$namePackage"
- packageDir="$dotfiles"/"_$namePackage"
-
- fi
-}
-
-selectFile () {
-
- echo "Выбери оригинальный файл или директорию для копирования:"
-
- select file in ${files[@]}; do
- createStowPkgDir
-
- if [ -d "$file" ]; then
-
- packageFirstSymbol=${packageDir:30:1}
-
- if [ "$packageFirstSymbol" = "_" ]; then
- vifm --select "$file" --on-choose "cp -r %f $packageDir"
- else
- cp -r "$file" "$packageDir"
- fi
-
- elif [ -f "$file" ]; then
-
- cp -r "$file" "$packageDir"
-
- fi
-
- return
- done
-}
-
-selectDir () {
-
- if [ "$choiseDir" = "home" ]; then
-
- choiseDir="$HOME"
- readarray files -t < <(ls -lA -d $choiseDir/* | grep -v -f "$patternsHomeDir" | awk '{ print $9 }' | sed '/^[[:space:]]*$/d')
-
- if [ "$files" = "" ]; then
- echo "Массив files пустой! Выход..."
- exit
- fi
-
- elif [ "$choiseDir" = "config" ]; then
-
- choiseDir="$XDG_CONFIG_HOME"
- readarray files -t < <(ls -lA -d $choiseDir/* | awk '{ print $9 }' | sed '/^[[:space:]]*$/d')
-
- if [ "$files" = "" ]; then
- echo "Массив files пустой! Выход..."
- exit
- fi
- fi
-
-}
-
-selectType () {
-
- echo "Выбери тип нового пакета:"
- echo -e " - full - это полная копия оригинального пакета;\n - noFolding - частичная копия"
- select choiseType in full noFolding; do
-
- if [ "$choiseType" = "full" ]; then
-
- typePackageDir="full"
-
- elif [ "$choiseType" = "noFolding" ]; then
-
- typePackageDir="noFolding"
-
- fi
-
- return
- done
-
-}
-
-
-addPackage () {
-
- while :
- do
- read -r -p "Введи название нового пакета в ~/.dotfiles: " namePackage
-
- if [ -d "$dotfiles"/"$namePackage" ]; then
- echo "Пакет уже существует! Выбери другое название."
-
- continue
- fi
-
- break
- done
-
- echo "Оригинальный файл для копии находится в home или .config директории?"
- select choiseDir in home config; do
- case "$choiseDir" in
- home)
- selectDir "$choiseDir"
- selectType
- selectFile
-
- break
- ;;
-
- config)
- selectDir "$choiseDir"
- selectType
- selectFile
-
- break
- ;;
-
- *)
- echo "Invalid option... Выход"
- exit
- ;;
- esac
- done
-
- echo "Готово!"
-}
-
-createDefaultDirs () {
- mkdir $HOME/{downloads,images,projects,torrents,video,shotcut,music}
-
- mkdir $HOME/video/{all-videos,translated-videos}
-}
-
-rewriteAbortedPackage () {
- select package in ${stowPkgs[@]}; do
-
- setStatusE true
-
- packageFirstSymbol=${package:0:1}
-
- if [ "$packageFirstSymbol" = "_" ]; then
-
- stow -d "$dotfiles" --no-folding -nvt ~ "$package" | awk '{ print $11 }' | sed '/^[[:space:]]*$/d'
-
- if [ $? -eq 1 ]; then
-
- setStatusE false
- read -r -p "Перезаписать оригинальный пакет?" answer
-
- fi
-
- else
-
- stow -d "$dotfiles" -nvt ~ "$package" | awk '{ print $11 }' | sed '/^[[:space:]]*$/d'
-
- if [ $? -eq 1 ]; then
-
- setStatusE false
- read -r -p "Перезаписать оригинальный пакет?" answer
-
- select answer in Yes No; do
-
- if [ "$answer" = "Yes" ]; then
-
- stow -d "$dotfiles" --adopt -vt ~ "$package"
-
- elif [ "$answer" = "No" ]; then
-
- echo "Выход..."
- exit
-
- fi
-
- done
- fi
- fi
-
-
- echo "Файл успешно перезаписан!"
- done
-}
-
startSetup () {
- abortedPkg "delete"
-
- select event in "Yay setup packages" "Stow" StowUpdate AddPackage CreateDefaultDirs; do
+ select event in "Yay setup packages" "Stow" "Create default home dirs"; do
case $event in
"Yay setup packages")
source "$dirArchIsoFiles"/library/yaySetupPkg.sh
@@ -228,47 +25,24 @@ startSetup () {
break
;;
- Stow)
- source "$dirArchIsoFiles"/library/cloneDotfiles.sh
- stowPkgExtract
-
- break
+ "Stow")
+ source "$dirArchIsoFiles"/library/stow/stow.sh
+ echo "Returned. Нажми <Enter> для отображения меню или <ctrl+c> для выхода."
;;
- StowUpdate)
- stowUpdateNoFoldingPkg
-
- break
- ;;
-
- AddPackage)
- addPackage
-
- break
- ;;
-
- CreateDefaultDirs)
- createDefaultDirs
+ "Create default home dirs")
+ source "$dirArchIsoFiles"/library/CreateDefaultDirs.sh
break
;;
- AdoptPackage)
- readArrays
- rewriteAbortedPackage
-
- break
- ;;
-
*)
echo "Invalid option... Выход"
exit
;;
esac
done
-
- abortedPkg
}
-# Установка
+setStatusE false
startSetup
diff --git a/library/cloneDotfiles.sh b/library/cloneDotfiles.sh
index c18712c..7924372 100755
--- a/library/cloneDotfiles.sh
+++ b/library/cloneDotfiles.sh
@@ -1,17 +1,14 @@
#!/bin/bash
openKeepass () {
-
wget https://yadi.sk/d/o4TMFnHFobxTsw -O "$dirArchIsoFiles"/Passwords.kdbx
setStatusE true
keepassxc-cli clip "$dirArchIsoFiles"/Passwords.kdbx github 0 -a token-cli
-
}
cloneDotfiles () {
-
while :
do openKeepass
@@ -26,7 +23,6 @@ cloneDotfiles () {
cd
git clone https://blueingreen68@github.com/blueingreen68/.dotfiles
wl-copy -c
-
}
cloneDotfiles
diff --git a/library/createDefaultDirs.sh b/library/createDefaultDirs.sh
new file mode 100644
index 0000000..2665db6
--- /dev/null
+++ b/library/createDefaultDirs.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+createDefaultDirs () {
+ mkdir $HOME/{downloads,images,projects,torrents,video,shotcut,music}
+ mkdir $HOME/video/{all-videos,translated-videos}
+}
+
+createDefaultDirs
diff --git a/library/stow/stow.sh b/library/stow/stow.sh
new file mode 100644
index 0000000..9913831
--- /dev/null
+++ b/library/stow/stow.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+stowReadArrays () {
+ readarray -t stowPkgs < <(ls -l "$dotfiles" | grep '^d' | awk '{ print $9 }')
+}
+
+abortedPkg () {
+ if [ "$counterAbortedPkg" -gt 0 ]; then
+
+ echo "Количество нераспакованных пакетов: $counterAbortedPkg"
+ echo "Список находится в ~/.dotfiles/abortedPkg.txt"
+
+ elif [ "$1" = "delete" ] && [ -e "$abortedPkgFile" ]; then
+
+ rm -i "$abortedPkgFile"
+
+ fi
+}
+
+startStow () {
+ abortedPkg "delete"
+ stowReadArrays
+
+ if [ -d "$dotfiles" ]; then
+ echo "✅ Папка .dotfiles есть"
+ else
+ source $HOME/"$dirArchIsoFiles"/library/cloneDotfiles.sh
+ fi
+
+ select event in "Stow extract" "Stow update" "Stow add" "Stow adopt" "Back"; do
+ case "$event" in
+ "Stow extract")
+ source $HOME/"$dirArchIsoFiles"/library/stow/stowPkgExtract.sh
+ break 2
+ ;;
+
+ "Stow update")
+ source $HOME/"$dirArchIsoFiles"/library/stow/stowUpdateNoFoldingPkg.sh
+ break 2
+ ;;
+
+ "Stow add")
+ source $HOME/"$dirArchIsoFiles"/library/stow/stowAddPkg.sh
+ break 2
+ ;;
+
+ "Stow adopt")
+ source $HOME/"$dirArchIsoFiles"/library/stow/stowRewriteAbortedPkg.sh
+ break 2
+ ;;
+
+ "Back")
+ break
+ ;;
+
+ *)
+ echo "Invalid option. Выбери один из предложенных вариантов!"
+ esac
+ done
+
+ abortedPkg
+}
+
+startStow
diff --git a/library/stow/stowAddPkg.sh b/library/stow/stowAddPkg.sh
new file mode 100644
index 0000000..8df4cde
--- /dev/null
+++ b/library/stow/stowAddPkg.sh
@@ -0,0 +1,122 @@
+#!/bin/bash
+
+selectDir () {
+
+ if [ "$choiseDir" = "home" ]; then
+
+ choiseDir="$HOME"
+ readarray files -t < <(ls -lA -d $choiseDir/* | grep -v -f "$patternsHomeDir" | awk '{ print $9 }' | sed '/^[[:space:]]*$/d')
+
+ if [ "$files" = "" ]; then
+ echo "Массив files пустой! Выход..."
+ exit
+ fi
+
+ elif [ "$choiseDir" = "config" ]; then
+
+ choiseDir="$XDG_CONFIG_HOME"
+ readarray files -t < <(ls -lA -d $choiseDir/* | awk '{ print $9 }' | sed '/^[[:space:]]*$/d')
+
+ if [ "$files" = "" ]; then
+ echo "Массив files пустой! Выход..."
+ exit
+ fi
+ fi
+
+}
+
+selectType () {
+
+ echo "Выбери тип нового пакета:"
+ echo -e " - full - это полная копия оригинального пакета;\n - noFolding - частичная копия"
+ select choiseType in full noFolding; do
+
+ if [ "$choiseType" = "full" ]; then
+
+ typePackageDir="full"
+
+ elif [ "$choiseType" = "noFolding" ]; then
+
+ typePackageDir="noFolding"
+
+ fi
+
+ return
+ done
+
+}
+
+stowCreatePkgDir () {
+
+ if [ "$typePackageDir" = "full" ]; then
+
+ mkdir "$dotfiles"/"$namePackage"
+ packageDir="$dotfiles"/"$namePackage"
+
+ elif [ "$typePackageDir" = "noFolding" ]; then
+
+ mkdir "$dotfiles"/"_$namePackage"
+ packageDir="$dotfiles"/"_$namePackage"
+
+ fi
+}
+
+selectFile () {
+
+ echo "Выбери оригинальный файл или директорию для копирования:"
+
+ select file in ${files[@]}; do
+ createStowPkgDir
+
+ if [ -d "$file" ]; then
+
+ packageFirstSymbol=${packageDir:30:1}
+
+ if [ "$packageFirstSymbol" = "_" ]; then
+ vifm --select "$file" --on-choose "cp -r %f $packageDir"
+ else
+ cp -r "$file" "$packageDir"
+ fi
+
+ elif [ -f "$file" ]; then
+
+ cp -r "$file" "$packageDir"
+
+ fi
+
+ return
+ done
+}
+
+stowAddPkg () {
+ while :
+ do
+ read -r -p "Введи название нового пакета в ~/.dotfiles: " namePackage
+
+ if [ -d "$dotfiles"/"$namePackage" ]; then
+ echo "Пакет уже существует! Выбери другое название."
+
+ continue
+ fi
+
+ break
+ done
+
+ echo "Оригинальный файл для копии находится в home или .config директории?"
+
+ select choiseDir in home config; do
+
+ if [ "$choiseDir" = "home" ] || [ "$choiseDir" = "config" ]; then
+ selectDir "$choiseDir"
+ selectType
+ selectFile
+ else
+ echo "Invalid option. Выбери один из предложенных вариантов!"
+ fi
+
+ done
+
+ echo "Пакет добавлен!"
+}
+
+stowAddPkg
diff --git a/library/stow.sh b/library/stow/stowPkgExtract.sh
index cd6a0da..ce4794d 100644
--- a/library/stow.sh
+++ b/library/stow/stowPkgExtract.sh
@@ -1,11 +1,6 @@
#!/bin/bash
-readArrays () {
- readarray -t stowPkgs < <(ls -l "$dotfiles" | grep '^d' | awk '{ print $9 }')
-}
-
checkPkg () {
-
counterAbortedPkg=$((counterAbortedPkg+1))
if [ "$counterAbortedPkg" -eq 1 ]; then echo -e "$(date +%d-%m-%Y::%T) \n" >> "$dotfiles"/abortedPkg.txt
@@ -13,7 +8,6 @@ checkPkg () {
echo "Название пакета: $package" >> "$dotfiles"/abortedPkg.txt
stow -d "$dotfiles" -nvt ~ "$package" 2>&1 | awk '{ print $11 }' | sed '/^[[:space:]]*$/d' >> "$dotfiles"/abortedPkg.txt
-
}
stowNoFolding () {
@@ -28,11 +22,9 @@ stowNoFolding () {
setStatusE false
stow -d "$dotfiles" --no-folding -vt ~ "$package"
fi
-
}
stowDir () {
-
setStatusE true
stow -d "$dotfiles" -nvt ~ "$package"
@@ -44,11 +36,9 @@ stowDir () {
setStatusE false
stow -d "$dotfiles" -vt ~ "$package"
fi
-
}
stowPkgExtract () {
-
for package in ${stowPkgs[@]}
do
packageFirstSymbol=${package:0:1}
@@ -59,21 +49,6 @@ stowPkgExtract () {
stowDir
fi
done
-
-}
-
-stowUpdateNoFoldingPkg () {
-
- for package in ${stowPkgs[@]}
- do
- packageFirstSymbol=${package:0:1}
-
- if [ "$packageFirstSymbol" = "_" ]; then
- stowNoFolding
- fi
- done
-
}
-readArrays
stowPkgExtract
diff --git a/library/stow/stowRewriteAbortedPkg.sh b/library/stow/stowRewriteAbortedPkg.sh
new file mode 100644
index 0000000..40ff9d9
--- /dev/null
+++ b/library/stow/stowRewriteAbortedPkg.sh
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+selectAnswer () {
+ select answer in Yes No; do
+ case "$answer" in
+ "Yes")
+ if [ "$1" = "no-folding" ]
+ stow -d "$dotfiles" --adopt --no-folding -vt ~ "$package"
+ else
+ stow -d "$dotfiles" --adopt -vt ~ "$package"
+ fi
+
+ break
+ ;;
+
+ "No")
+ echo "Выход..."
+ exit
+
+ *)
+ echo "Invalid option. Выбери один из предложенных вариантов!"
+ esac
+ done
+}
+
+stowRewriteAbortedPkg () {
+ select package in ${stowPkgs[@]}; do
+
+ setStatusE true
+
+ packageFirstSymbol=${package:0:1}
+
+ if [ "$packageFirstSymbol" = "_" ]; then
+
+ stow -d "$dotfiles" --no-folding -nvt ~ "$package" | awk '{ print $11 }' | sed '/^[[:space:]]*$/d'
+
+ if [ $? -eq 1 ]; then
+
+ setStatusE false
+ read -r -p "Перезаписать оригинальный пакет?" answer
+ selectAnswer "no-folding"
+
+ fi
+
+ else
+
+ stow -d "$dotfiles" -nvt ~ "$package" | awk '{ print $11 }' | sed '/^[[:space:]]*$/d'
+
+ if [ $? -eq 1 ]; then
+
+ setStatusE false
+ read -r -p "Перезаписать оригинальный пакет?" answer
+ selectAnswer
+
+ fi
+ fi
+
+ echo "Файл успешно перезаписан!"
+
+ done
+}
+
+stowRewriteAbortedPkg
diff --git a/library/stow/stowUpdateNoFoldingPkg.sh b/library/stow/stowUpdateNoFoldingPkg.sh
new file mode 100644
index 0000000..e5d3bbc
--- /dev/null
+++ b/library/stow/stowUpdateNoFoldingPkg.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+source $HOME/"$dirArchIsoFiles"/stowPkgExtract.sh
+
+stowUpdateNoFoldingPkg () {
+
+ for package in ${stowPkgs[@]}
+ do
+ packageFirstSymbol=${package:0:1}
+
+ if [ "$packageFirstSymbol" = "_" ]; then
+ stowNoFolding
+ fi
+ done
+
+}
+
+stowUpdateNoFoldingPkg
diff --git a/library/yaySetupPkg.sh b/library/yaySetupPkg.sh
index b9d72c2..30a4055 100755
--- a/library/yaySetupPkg.sh
+++ b/library/yaySetupPkg.sh
@@ -1,5 +1,4 @@
yaySetupPkg () {
-
cd
git clone https://aur.archlinux.org/yay
@@ -10,7 +9,6 @@ yaySetupPkg () {
rm -rf $HOME/yay
yay -S --needed - < "$dirArchIsoFiles"/pkglist.txt
-
}
yaySetupPkg
diff --git a/pkglist.txt b/pkglist.txt
index f484fe4..d63a512 100644
--- a/pkglist.txt
+++ b/pkglist.txt
@@ -11,6 +11,7 @@ code
deepl-electron-bin
deluge
efibootmgr
+expect
firefox
font-manager
foot