Skip to content

Commit f22ca06

Browse files
committed
generally overworked
1 parent c12c7ee commit f22ca06

7 files changed

Lines changed: 213 additions & 256 deletions

File tree

src/borg/core.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ if ! source "$borg_conf_file"; then
1010
echo "failed to load configuration *$borg_conf_file*; abort"
1111
exit 1
1212
fi
13-
13+
# server preparation & testing
1414
source "$BORG_WORKING_DIR/server.sh" # borg server

src/borg/server.sh

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ else
3636
exit 1
3737
fi
3838

39-
# === pre func ===
39+
# === func ===
4040
# checks if connection works
4141
validate_borg_conn() {
4242
borg info 1> /dev/null && return 0
@@ -94,3 +94,11 @@ else
9494
echo "$prefix unsuccessful"
9595
exit 1
9696
fi
97+
# checking home dir within archive
98+
prefix="validating directory '$BORG_HOME' ..."
99+
if [[ -d "$BORG_HOME" ]]; then
100+
echo "$prefix successful"
101+
else
102+
echo "$prefix unsuccessful"
103+
exit 1
104+
fi

src/borgserver.sh

Lines changed: 0 additions & 103 deletions
This file was deleted.

src/inst.sh

Lines changed: 0 additions & 146 deletions
This file was deleted.

src/main.sh

Lines changed: 52 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
#!/bin/bash
22

3-
# env variables
4-
export ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
3+
# === vars ===
4+
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
55

6+
# === func ===
67
# sudo temp for unattended install
78
keep_alive_sudo() {
89
if sudo -v; then
@@ -20,14 +21,60 @@ keep_alive_sudo() {
2021
return 1
2122
fi
2223
}
24+
# installing required software
25+
install_requirements() {
26+
sudo pacman -Syu openssh borg rsync && return 0
27+
return 1
28+
}
29+
# rsync recovery
30+
make_recovery() {
31+
# recovery locations
32+
declare -A sync_dirs=(
33+
["$BORG_HOME/"]="$HOME"
34+
)
35+
# make recovery with borg archive to local OS
36+
for source in "${!sync_dirs[@]}"; do
37+
dest="${sync_dirs[$source]}" # key(source) -> value(dest)
38+
if [[ -e "$source" && -e "$dest" ]]; then
39+
rsync -avP --exclude-from="$ROOT_DIR/exclude.txt" "$source" "$dest" && echo "successfully synchronized from *$source* to *$dest*"
40+
else
41+
echo "*$source* or *$dest* doesn't exists; skipping *$source* -> *$dest*"
42+
fi
43+
done
44+
}
2345

46+
# === pre act ===
2447
# keep alive sudo permission
2548
keep_alive_sudo || exit 1
49+
# pre install required software
50+
prefix="installing software requirements ..."
51+
if install_requirements; then
52+
echo "$prefix successful"
53+
else
54+
echo "$prefix unsuccessful"
55+
exit 1
56+
fi
57+
58+
# === main ===
59+
# loading scripts
60+
source "$ROOT_DIR/packages/core.sh" # install packages & enable services
61+
source "$ROOT_DIR/borg/core.sh" # borg backup connection & mounting
62+
63+
# installing software setup
64+
install_pkgs # installing packages
65+
setup_services # enabling & setting up services
2666

27-
# execute installation & recovery
28-
source "$ROOT_DIR/inst.sh" # setup package requirements
29-
source "$ROOT_DIR/borgserver.sh" # borg backup & rsync as recovery method
67+
# copying backup to local OS using rsync
68+
make_recovery
3069

70+
# === post act ===
71+
# unmount used archive
72+
prefix="unmounting 'latest::$latest' at '$MOUNT_DIR' ..."
73+
if do_unmount; then
74+
echo "$prefix successful"
75+
else
76+
echo "$prefix unsuccessful"
77+
fi
3178
# undo keep alive sudo permission
3279
if [[ -n "$keep_alive" ]] && kill -0 "$keep_alive" 2>/dev/null; then
3380
kill "$keep_alive" && echo "removed keep-alive (sudo) process"

src/packages/core.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,22 @@
11
#!/bin/bash
22

3+
# === vars ===
4+
PKGS_WORKING_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # location env
5+
6+
# === func ===
7+
# installing packages with pacman, yay & flatpak
8+
install_pkgs(
9+
inst_pacman_pkgs $nvidia_pkgs $pacman_pkgs
10+
inst_yay_pkgs $yay_pkgs
11+
inst_flatpak_pkgs $flatpak_pkgs
12+
)
13+
# setup services
14+
setup_services() {
15+
psql_service
16+
otd_service
17+
bt_service
18+
}
19+
20+
# === main ===
21+
# installation preparation
22+
source "$PKGS_WORKING_DIR/install.sh"

0 commit comments

Comments
 (0)