summaryrefslogtreecommitdiff
path: root/.local/bin/dotfiles-config
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