Skip to content

Commit 0640f93

Browse files
committed
Add backup dotfiles on installation
1 parent 7980765 commit 0640f93

File tree

2 files changed

+82
-12
lines changed

2 files changed

+82
-12
lines changed

.functions.sh

Lines changed: 75 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ function banner() {
3131
┃ ┃
3232
${COLOR_BASED}🚀 Version : ${VERSION} ${COLOR_SKY}
3333
${COLOR_BASED}📅 Build Date : ${BUILD_DATE} ${COLOR_SKY}
34-
${COLOR_BASED}⚙️ Author : ${AUTHOR} ${COLOR_SKY}
34+
${COLOR_BASED}⚙️ Author : ${AUTHOR} ${COLOR_SKY}
3535
┃ ┃
3636
╰────────────────────────────────────────────────────────────────╯${COLOR_BASED}"
3737
}
@@ -77,7 +77,7 @@ function informationPackages() {
7777
;;
7878

7979
* )
80-
logDate {${COLOR_DANGER}ERROR ANSWER${COLOR_BASED}}
80+
logDate [${COLOR_DANGER}ERROR ANSWER${COLOR_BASED}]
8181
exit 1
8282
;;
8383

@@ -88,6 +88,7 @@ function informationPackages() {
8888
function installDependencyPackages() {
8989

9090
echo -e "\n‏‏‎‏‏‎ ‎ ‎‏‏‎ ‎📦 Downloading Package\n"
91+
echo -e "Downloading Package:" >> $(pwd)/.log
9192

9293
for DEPENDENCY_PACKAGE in "${DEPENDENCY_PACKAGES[@]}"; do
9394

@@ -99,17 +100,21 @@ function installDependencyPackages() {
99100
if [[ $CHECK_PACKAGE == $DEPENDENCY_PACKAGE ]]; then
100101

101102
logDate Status $DEPENDENCY_PACKAGE [${COLOR_SUCCESS}SUCCESS${COLOR_BASED}]
103+
# echo -e "$(date +'%A, %d %B %Y %r') Status $DEPENDENCY_PACKAGE [${COLOR_SUCCESS}SUCCESS${COLOR_BASED}])" >> $(pwd)/.log
104+
echo -e "$(date +'%A, %d %B %Y %r') Status $DEPENDENCY_PACKAGE [SUCCESS]" >> $(pwd)/.log
102105

103106
else
104107

105108
logDate Status $DEPENDENCY_PACKAGE [${COLOR_DANGER}FAILED${COLOR_BASED}]
106-
109+
echo -e "$(date +'%A, %d %B %Y %r') Status $DEPENDENCY_PACKAGE [FAILED]" >> $(pwd)/.log
107110
fi
108111

109112
echo -e ""
110113

111114
done
112115

116+
echo -e "" >> $(pwd)/.log
117+
113118
}
114119

115120
function changeSHELL() {
@@ -201,6 +206,7 @@ function informationRepository() {
201206
function cloneRepository() {
202207

203208
echo -e "\n‏‏‎‏‏‎ ‎ ‎‏‏‎ ‎📦 Cloning or Downloading Repository\n"
209+
echo -e "Cloning or Downloading Repository:" >> $(pwd)/.log
204210
sleep 2s
205211

206212
for ((i=0; i<${#REPOSITORY_LINKS[@]}; i++)); do
@@ -211,19 +217,23 @@ function cloneRepository() {
211217
if [ -d ${REPOSITORY_PATH[i]} ]; then
212218

213219
logDate Status ${REPOSITORY_LINKS[i]} [${COLOR_SUCCESS}SUCCESS${COLOR_BASED}]
220+
echo -e "$(date +'%A, %d %B %Y %r') Status ${REPOSITORY_LINKS[i]} [SUCCESS]" >> $(pwd)/.log
214221
sleep 2s
215222
# logDate Repository PATH ${REPOSITORY_PATH[i]}
216223

217224
else
218225

219226
logDate Status ${REPOSITORY_LINKS[i]} [${COLOR_DANGER}FAILED${COLOR_BASED}]
227+
echo -e "$(date +'%A, %d %B %Y %r') Status ${REPOSITORY_LINKS[i]} [FAILED]" >> $(pwd)/.log
220228

221229
fi
222230

223231
echo -e ""
224232

225233
done
226234

235+
echo -e "" >> $(pwd)/.log
236+
227237
}
228238

229239
function dotFiles() {
@@ -249,35 +259,77 @@ function dotFiles() {
249259

250260
}
251261

262+
function backupDotFiles() {
263+
264+
function backupExec() {
265+
266+
echo -e "\n‏‏‎‏‏‎ ‎ ‎‏‏‎ ‎📦 Backup dotfiles"
267+
echo -e "Backup dotfile:" >> $(pwd)/.log
268+
sleep 2s
269+
270+
for BACKUP_DOTFILE in "${BACKUP_DOTFILES[@]}"; do
271+
echo -e ""
272+
logDate Backup $BACKUP_DOTFILE ...
273+
if [[ -d "$HOME/$BACKUP_DOTFILE" || -f "$HOME/$BACKUP_DOTFILE" ]]; then
274+
mv ${HOME}/${BACKUP_DOTFILE} ${HOME}/${BACKUP_DOTFILE}.$(date +%Y.%m.%d-%H.%M.%S);
275+
if [[ -d ${HOME}/${BACKUP_DOTFILE}.$(date +%Y.%m.%d-%H.%M.%S) || -f ${HOME}/${BACKUP_DOTFILE}.$(date +%Y.%m.%d-%H.%M.%S) ]]; then
276+
logDate Status $BACKUP_DOTFILE to ${BACKUP_DOTFILE}.$(date +%Y.%m.%d-%H.%M.%S) [${COLOR_SUCCESS}SUCCESS${COLOR_BASED}]
277+
echo -e "$(date +'%A, %d %B %Y %r') Status $BACKUP_DOTFILE to ${BACKUP_DOTFILE}.$(date +%Y.%m.%d-%H.%M.%S) [SUCCESS]" >> $(pwd)/.log
278+
echo -e ""
279+
else
280+
logDate Status $BACKUP_DOTFILE to ${BACKUP_DOTFILE}.$(date +%Y.%m.%d-%H.%M.%S) [${COLOR_DANGER}FAILED${COLOR_BASED}]
281+
echo -e "$(date +'%A, %d %B %Y %r') Status $BACKUP_DOTFILE to ${BACKUP_DOTFILE}.$(date +%Y.%m.%d-%H.%M.%S) [FAILED]" >> $(pwd)/.log
282+
echo -e ""
283+
fi
284+
else
285+
logDate Status $BACKUP_DOTFILE [${COLOR_WARNING}NOT FOUND${COLOR_BASED}]
286+
echo -e "$(date +'%A, %d %B %Y %r') Status $BACKUP_DOTFILE [NOT FOUND]" >> $(pwd)/.log
287+
echo -e ""
288+
fi
289+
done
290+
echo -e "" >> $(pwd)/.log
291+
}
292+
293+
echo -e ""
294+
backupExec
295+
installDotFiles
296+
}
297+
252298
function installDotFiles() {
253299

254300
echo -e "\n‏‏‎‏‏‎ ‎ ‎‏‏‎ ‎📦 Installing Dotfiles\n"
301+
echo -e "Installing dotfile:" >> $(pwd)/.log
255302

256303
for DOTFILE in "${DOTFILES[@]}"; do
257304

258305
logDate Installing $DOTFILE ...
259306
cp -R $DOTFILE $HOME
260307

261-
if [ -d $HOME/$DOTFILE ]; then
308+
if [[ -d $HOME/$DOTFILE || -f $HOME/$DOTFILE ]]; then
262309

263310
logDate Status $DOTFILE [${COLOR_SUCCESS}SUCCESS${COLOR_BASED}]
311+
echo -e "$(date +'%A, %d %B %Y %r') Status $DOTFILE [SUCCESS]" >> $(pwd)/.log
264312

265313
else
266314

267315
logDate Status $DOTFILE [${COLOR_DANGER}FAILED${COLOR_BASED}]
316+
echo -e "$(date +'%A, %d %B %Y %r') Status $DOTFILE [FAILED]" >> $(pwd)/.log
268317

269318
fi
270319

271320
sleep 1s
272321
echo -e ""
273322

274323
done
324+
325+
echo -e "" >> $(pwd)/.log
275326

276327
}
277328

278329
function neovimPlugins() {
279330

280331
echo -e "\n‏‏‎‏‏‎ ‎ ‎‏‏‎ ‎📦 Installing Neovim Plugins with Packer\n"
332+
echo -e "Installing Neovim Plugins:" >> $(pwd)/.log
281333

282334
if [ -f $HOME/NvChad/install.sh ]; then
283335

@@ -287,17 +339,24 @@ function neovimPlugins() {
287339
sed -i 's/"mappings"/"mappings",/g' ~/.config/nvim/init.lua
288340
sed -i '4i\ "xshin"' ~/.config/nvim/init.lua
289341
sed -i 's/g.nvim_tree_hide_dotfiles = 1/g.nvim_tree_hide_dotfiles = 0/g' ~/.config/nvim/lua/plugins/nvimtree.lua
342+
echo -e "$(date +'%A, %d %B %Y %r') Status Neovim Plugins [SUCCESS]" >> $(pwd)/.log
343+
290344
else
291345

292346
logDate Status [${COLOR_DANGER}ERROR INSTALLER NOT FOUND${COLOR_BASED}]
347+
echo -e "$(date +'%A, %d %B %Y %r') Status Neovim Plugins [ERROR INSTALLER NOT FOUND]" >> $(pwd)/.log
348+
293349

294350
fi
295351

352+
echo -e "" >> $(pwd)/.log
353+
296354
}
297355

298356
function zshThemes() {
299357

300358
echo -e "\n‏‏‎‏‏‎ ‎ ‎‏‏‎ ‎📦 Installing ZSH Custom Themes\n"
359+
echo -e "Installing ZSH Custom Themes:" >> $(pwd)/.log
301360

302361
PATHDIR=".oh-my-zsh/custom/themes"
303362

@@ -309,16 +368,20 @@ function zshThemes() {
309368
if [ -f $HOME/$PATHDIR/$ZSH_CUSTOM_THEME ]; then
310369

311370
logDate Status $ZSH_CUSTOM_THEME [${COLOR_SUCCESS}SUCCESS${COLOR_BASED}]
371+
echo -e "$(date +'%A, %d %B %Y %r') Status $ZSH_CUSTOM_THEME [SUCCESS]" >> $(pwd)/.log
312372

313373
else
314374

315375
logDate Status $ZSH_CUSTOM_THEME [${COLOR_DANGER}FAILED${COLOR_BASED}]
376+
echo -e "$(date +'%A, %d %B %Y %r') Status $ZSH_CUSTOM_THEME [FAILED]" >> $(pwd)/.log
316377

317378
fi
318379

319380
echo -e ""
320381

321382
done
383+
384+
echo -e "" >> $(pwd)/.log
322385
}
323386

324387
function reloadSettings() {
@@ -332,9 +395,6 @@ function finishing() {
332395
cp $FINISHING $HOME
333396

334397
done
335-
336-
welcomeTermux
337-
alert
338398

339399
}
340400

@@ -351,22 +411,25 @@ function welcomeTermux() {
351411

352412
function alert() {
353413

414+
echo -e "‏‏‎‏‏‎ ‎‏‏‎ ⚠️ Log saved on $(pwd)/.log\n"
354415
echo -e "‏‏‎‏‏‎ ‎‏‏‎ ⚠️ Installation Finish, but you need restart Termux to clear setup\n"
355416

356417
}
357418

358419
function main() {
359-
dotTermux
420+
# dotTermux
360421
clear
361422
banner
362423
informationPackages
424+
dotFiles
425+
backupDotFiles
426+
reloadSettings
363427
informationRepository
364428
cloneRepository
365-
dotFiles
366-
installDotFiles
367429
neovimPlugins
368430
zshThemes
369431
changeSHELL
370-
# reloadSettings
371-
finishing
432+
welcomeTermux
433+
alert
434+
# finishing
372435
}

.variables.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ DEPENDENCY_PACKAGES=(
1919

2020
DOTFILES=(
2121
.local .config .termux .color-toys .scripts
22+
.zshrc .tmux.conf .lfvar
23+
)
24+
25+
BACKUP_DOTFILES=(
26+
.local .config .termux
27+
.color-toys .scripts .zshrc
28+
.lfvar .tmux.conf .oh-my-zsh
2229
)
2330

2431
REPOSITORY_LINKS=(

0 commit comments

Comments
 (0)