blob: e2a42964854690d6e9e8522d67bb0b67c009fe03 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
#!/bin/sh
DOTFILESDIR=$HOME/Documents/projects/gitlab/dotfiles
add(){
cd $HOME
declare -i count=1
declare -i countForDia=1
while [ "$count" -le "$(ls -A $HOME | wc -w)" ]
do
name[$countForDia]="$(ls -A $HOME | sed "${count}q;d")"
forDialog[$countForDia]="${countForDia} $(ls -A $HOME | sed "${count}q;d") off "
count=$((count+1))
countForDia=$((countForDia+1))
done
count=1
while [ "$count" -le "$(ls -A $HOME/.config/ | wc -w)" ]
do
name[$countForDia]=".config/$(ls -A $HOME/.config/ | sed "${count}q;d")"
forDialog[$countForDia]="${countForDia} .config/$(ls -A $HOME/.config/ | sed "${count}q;d") off "
countForDia=$((countForDia+1))
count=$((count+1))
done
count=1
while [ "$count" -le "$(ls -A $HOME/.local/share/ | wc -w)" ]
do
name[$countForDia]=".local/share/$(ls -A $HOME/.local/share/ | sed "${count}q;d")"
forDialog[$countForDia]="${countForDia} .local/share/$(ls -A $HOME/.local/share/ | sed "s/Paradox Interactive/ParadoxInteractive/g" | sed "${count}q;d") off "
countForDia=$((countForDia+1))
count=$((count+1))
done
name[$countForDia]=".local/bin/"
forDialog[$countForDia]="${countForDia} .local/bin/ off"
set -A files $(dialog --title "Dotfiles in the Home directory" --checklist "Select dotfiles:" 0 0 0 ${forDialog[*]} 3>&1 1>&2 2>&3 3>&-)
cd $DOTFILESDIR
count=0
while [ "$count" -le "${#files[@]}" ]
do
[ -f ${name[${files[$count]}]} ] && cp $HOME/${name[${files[$count]}]} ${name[${files[$count]}]}
[ -d ${name[${files[$count]}]} ] && cp -TR $HOME/${name[${files[$count]}]} ${name[${files[$count]}]}
git add ${name[${files[$count]}]}
count=$((count+1))
done
COMMITMSG=$(dialog --title "Commit Message" --inputbox "Message" 0 0 3>&1 1>&2 2>&3 3>&-)
git commit -m "$COMMITMSG"
git push
}
del(){
cd $DOTFILESDIR
declare -i count=1
declare -i countForDia=1
while [ "$count" -le "$(ls -A $DOTFILESDIR | wc -w)" ]
do
name[$countForDia]="$(ls -A $DOTFILESDIR | sed "${count}q;d")"
forDialog[$countForDia]="${countForDia} $(ls -A $DOTFILESDIR | sed "${count}q;d") off "
count=$((count+1))
countForDia=$((countForDia+1))
done
count=1
while [ "$count" -le "$(ls -A $DOTFILESDIR/.config/ | wc -w)" ]
do
name[$countForDia]=".config/$(ls -A $DOTFILESDIR/.config/ | sed "${count}q;d")"
forDialog[$countForDia]="${countForDia} .config/$(ls -A $DOTFILESDIR/.config/ | sed "${count}q;d") off "
countForDia=$((countForDia+1))
count=$((count+1))
done
count=1
while [ "$count" -le "$(ls -A $DOTFILESDIR/.local/share/ | wc -w)" ]
do
name[$countForDia]=".local/share/$(ls -A $DOTFILESDIR/.local/share/ | sed "${count}q;d")"
forDialog[$countForDia]="${countForDia} .local/share/$(ls -A $DOTFILESDIR/.local/share/ | sed "${count}q;d") off "
countForDia=$((countForDia+1))
count=$((count+1))
done
count=1
while [ "$count" -le "$(ls -A $DOTFILESDIR/.local/bin/ | wc -w)" ]
do
name[$countForDia]=".local/bin/$(ls -A $DOTFILESDIR/.local/bin/ | sed "${count}q;d")"
forDialog[$countForDia]="${countForDia} .local/bin/$(ls -A $DOTFILESDIR/.local/bin/ | sed "${count}q;d") off "
countForDia=$((countForDia+1))
count=$((count+1))
done
set -A files $(dialog --title "Dotfiles in the Dotfiles directory" --checklist "Select dotfiles:" 0 0 0 ${forDialog[*]} 3>&1 1>&2 2>&3 3>&-)
count=0
while [ "$count" -le "${#files[@]}" ]
do
git rm -r ${name[${files[$count]}]}
echo ${name[${files[$count]}]}
count=$((count+1))
done
COMMITMSG=$(dialog --title "Commit Message" --inputbox "Message" 0 0 3>&1 1>&2 2>&3 3>&-)
git commit -m "$COMMITMSG"
git push
}
mainMenu(){
select=$(dialog --title "Dotfiles Script" --menu "Select an option:" 0 0 0 1 Add 2 Delete 3>&1 1>&2 2>&3 3>&-)
( [ $select = 1 ] && add ) || ( [ $select = 2 ] && del )
}
mainMenu
|