-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup-unattended.sh
executable file
Β·159 lines (134 loc) Β· 3.55 KB
/
setup-unattended.sh
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#####
## dotfiles setup script - unattended
#####
# ######################################
# ### USE THIS SCRIPT WITH CAUTION
# ### PERFORMS A LOT OF ACTIONS UNATTENDED
# #####################################
# ########################################################################
# Copyright (C) 2022 Sujaykumar. Hublikar <hello@sujaykumarh.com> #
# Licensed under the MIT License. #
# ########################################################################
### Global variables
DOTFILES_DIR="$1"
CURRENT_DIR="$(pwd)"
echo "Setting up dotfiles in $DOTFILES_DIR"
echo "This script will perform a lot of actions without any confirmation"
echo ""
read -p "Do you wish to continue? " yn
case $yn in
[Yy]* ) break;;
[Nn]* ) echo "Aborting.." && exit 1;;
* ) echo "Please answer y or n" && exit 1;;
esac
echo ""
echo "####### Performing actions #######"
echo ""
### Install packages
installPkg(){
# Ubuntu / Debian
if [ -x "$(command -v apt)" ]; then
apt install $@ -y
elif [ -x "$(command -v apt-get)" ]; then
apt-get install $@ -y
# Arch based Distro
elif [ -x "$(command -v pacman)" ]; then
pacman -S $@
elif [ -x "$(command -v yay)" ]; then
yay -S $@
# Alpine Linux
elif [ -x "$(command -v apk)" ]; then
apk add --no-cache $@
# Homebrew
elif [ -x "$(command -v brew)" ]; then
brew install $@
# FreeBSD
elif [ -x "$(command -v pkg)" ]; then
pkg install $@
# unknown
else
echo "Not sure what your package manager is! Exiting.."
exit 1
fi
}
packgeMgr(){
# Ubuntu / Debian
if [ -x "$(command -v apt)" ]; then
echo "apt"
elif [ -x "$(command -v apt-get)" ]; then
echo "apt"
# Arch based Distro
elif [ -x "$(command -v pacman)" ]; then
echo "arch"
elif [ -x "$(command -v yay)" ]; then
echo "arch"
# Alpine Linux
elif [ -x "$(command -v apk)" ]; then
echo "alpine"
# Homebrew
elif [ -x "$(command -v brew)" ]; then
echo "brew"
# FreeBSD
elif [ -x "$(command -v pkg)" ]; then
echo "freebsd"
# unknown
else
echo "UNKNOWN"
fi
}
echo "Checking package manager"
case $(packgeMgr) in
"arch")
echo ""
echo "** Arch Linux Found **"
echo ""
echo "Installing Arch packages"
installPkg zsh fzf jq
;;
"alpine")
echo ""
echo "** Alpine Linux Found **"
echo ""
echo "Installing Alpine packages"
installPkg zsh fzf jq
;;
"apt")
echo ""
echo "** Debian Based Linux Found **"
echo ""
echo "Installing apt packages"
installPkg zsh fzf jq
;;
"brew")
echo ""
echo "** Homebrew Found **"
echo ""
echo "Installing Homebrew packages"
installPkg zsh fzf jq
;;
"freebsd")
echo ""
echo "** FreeBSD Found **"
echo ""
echo "Installing FreeBSD packages"
installPkg zsh fzf jq
;;
*)
echo ""
echo "####### UNKOWN PACKGE MANAGER #######"
echo ""
echo "Not sure what your package manager is! Exiting.."
exit 1
;;
esac
### get submodules zshrc
cd $DOTFILES_DIR
git submodule update --init --recursive
### Install zshrc
ZSHRC_FILE="${HOME}/.zshrc"
cp $DOTFILES_DIR/.zshrc $ZSHRC_FILE
sed -i "s,PATH_TO_DOTFILES,${DOTFILES_DIR},g" $ZSHRC_FILE
cd $CURRENT_DIR
echo ""
echo "####### dotfiles setup complete #######"
echo ""