[Shell] Personal dotfiles and scripts to deploy them.
Admin scripts.
scripts.org
@@ -0,0 +1,89 @@
1
Added:
#+TITLE: Scripts for admin
2
Added:
#+AUTHOR: Marius Peter
3
Added:
#+DATE: <2022-01-23 Sun>
4
Added:
5
Added:
#+begin_abstract
6
Added:
The code blocks contained in this ~Smart Document~ are Bash and Python
7
Added:
scripts that automate certain sysadmin tasks on my local box.
8
Added:
#+end_abstract
9
Added:
10
Added:
11
Added:
* Helper functions
12
Added:
13
Added:
These helper functions were adapted from the Guix project.
14
Added:
15
Added:
#+NAME: helper-functions
16
Added:
#+BEGIN_SRC sh :results verbatim
17
Added:
timestamp() { date --rfc-3339=s; }
18
Added:
19
Added:
_err()
20
Added:
{ # All errors go to stderr.
21
Added:
printf "[%s]: %s\n" "$(date +%s.%3N)" "$1"
22
Added:
}
23
Added:
24
Added:
_msg()
25
Added:
{ # Default message to stdout.
26
Added:
printf "[%s]: %s\n" "$(date --rfc-3339=s)" "$1"
27
Added:
}
28
Added:
29
Added:
_debug()
30
Added:
{
31
Added:
if [ "${DEBUG}" = '1' ]; then
32
Added:
printf "[%s]: %s\n" "$(date +%s.%3N)" "$1"
33
Added:
fi
34
Added:
}
35
Added:
36
Added:
# Return true if user answered yes, false otherwise.
37
Added:
# $1: The prompt question.
38
Added:
prompt_yes_no() {
39
Added:
while true; do
40
Added:
read -rp "$1 " yn
41
Added:
case $yn in
42
Added:
[Yy]*) return 0;;
43
Added:
[Nn]*) return 1;;
44
Added:
,*) _msg "Please answer yes or no."
45
Added:
esac
46
Added:
done
47
Added:
}
48
Added:
#+END_SRC
49
Added:
50
Added:
* Backup
51
Added:
52
Added:
This scripts
53
Added:
#+BEGIN_SRC bash :noweb yes :results verbatim
54
Added:
<<helper-functions>>
55
Added:
bkp_dirs=("~/Desktop" \
56
Added:
"~/Documents" \
57
Added:
"~/git" \
58
Added:
"~/Music/" \
59
Added:
"~/org/" \
60
Added:
"~/.emacs.d")
61
Added:
_msg "Preparing backup..."
62
Added:
_msg "List of directories to backup:"
63
Added:
# printf "%s\n" ${bkp_dirs[*]}
64
Added:
65
Added:
for file in $(ls)
66
Added:
do
67
Added:
rsync -a $file bkp/
68
Added:
printf "Successfully sent file %s\n" $file
69
Added:
done
70
Added:
71
Added:
rsync -a ./ ./bkp
72
Added:
_msg "Backup was completed successfully!"
73
Added:
#+END_SRC
74
Added:
75
Added:
#+RESULTS:
76
Added:
#+begin_example
77
Added:
[2022-01-23 16:30:36+01:00]: Preparing backup...
78
Added:
[2022-01-23 16:30:36+01:00]: List of directories to backup:
79
Added:
Successfully sent file Makefile
80
Added:
Successfully sent file README.org
81
Added:
Successfully sent file bashrc.org
82
Added:
Successfully sent file bkp
83
Added:
Successfully sent file herbstluftwm-autostart.org
84
Added:
Successfully sent file panel.sh
85
Added:
Successfully sent file scripts.org
86
Added:
Successfully sent file test.ml
87
Added:
Successfully sent file xinitrc.org
88
Added:
[2022-01-23 16:30:36+01:00]: Backup was completed successfully!
89
Added:
#+end_example