Skip to content

Commit 39f1c9e

Browse files
committed
test test
1 parent 7901f06 commit 39f1c9e

File tree

5 files changed

+56
-52
lines changed

5 files changed

+56
-52
lines changed

.github/workflows/release.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -82,22 +82,22 @@ jobs:
8282
- name: Copy script
8383
run: |
8484
echo "#!/bin/bash
85-
sudo() {
85+
sudonot() {
8686
if command -v sudo >/dev/null; then
87-
command sudo "${@:-:}" || ${@:-:}
87+
sudo ${@:-:} || ${@:-:}
8888
else
8989
${@:-:}
9090
fi
9191
}
92-
sudo apt-get update
93-
sudo DEBIAN_FRONTEND=noninteractive apt-get -o APT::Get::AllowUnauthenticated=true install -qq gpg wget
94-
sudo mkdir -m 0755 -p /etc/apt/keyrings/
95-
wget -qO- https://ipitio.github.io/closure/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/closure.gpg > /dev/null
96-
sudo chmod 644 /etc/apt/keyrings/closure.gpg
97-
echo "deb [signed-by=/etc/apt/keyrings/closure.gpg] https://ipitio.github.io/closure master main" | sudo tee /etc/apt/sources.list.d/closure.list &>/dev/null
98-
sudo chmod 644 /etc/apt/sources.list.d/closure.list
99-
sudo apt-get update
100-
sudo DEBIAN_FRONTEND=noninteractive apt-get -o APT::Get::AllowUnauthenticated=true install --no-install-recommends -qq closure
92+
sudonot apt-get update
93+
sudonot DEBIAN_FRONTEND=noninteractive apt-get -o APT::Get::AllowUnauthenticated=true install -qq gpg wget
94+
sudonot mkdir -m 0755 -p /etc/apt/keyrings/
95+
wget -qO- https://ipitio.github.io/closure/gpg.key | gpg --dearmor | sudonot tee /etc/apt/keyrings/closure.gpg > /dev/null
96+
echo "deb [signed-by=/etc/apt/keyrings/closure.gpg] https://ipitio.github.io/closure master main" | sudonot tee /etc/apt/sources.list.d/closure.list &>/dev/null
97+
sudonot chmod 644 /etc/apt/keyrings/closure.gpg
98+
sudonot chmod 644 /etc/apt/sources.list.d/closure.list
99+
sudonot apt-get update
100+
sudonot DEBIAN_FRONTEND=noninteractive apt-get -o APT::Get::AllowUnauthenticated=true install --no-install-recommends -qq closure
101101
" | tee ${{ steps.create-apt-repo.outputs.dir }}/i
102102
103103
- name: Upload artifact

README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,22 +58,24 @@ Keep in mind that:
5858

5959
Create or update a node in two or three steps:
6060

61-
1. Either install the [package](https://github.com/ipitio/closure/releases) directly (by piping `https://ipitio.github.io/closure/i` to bash, which runs the following)...
61+
1. Install the package by either
62+
- piping `https://ipitio.github.io/closure/i` to bash,
63+
- downloading it from [Releases](https://github.com/ipitio/closure/releases),
64+
- running the following commands, or
65+
- copying this repo to `/opt/closure` and ensuring `rc.local` is executable and moved to `/etc`.
6266

6367
```{bash}
6468
sudo apt-get update
6569
sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq gpg wget
6670
sudo mkdir -m 0755 -p /etc/apt/keyrings/
6771
wget -qO- https://ipitio.github.io/closure/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/closure.gpg > /dev/null
68-
sudo chmod 644 /etc/apt/keyrings/closure.gpg
6972
echo "deb [signed-by=/etc/apt/keyrings/closure.gpg] https://ipitio.github.io/closure master main" | sudo tee /etc/apt/sources.list.d/closure.list &>/dev/null
73+
sudo chmod 644 /etc/apt/keyrings/closure.gpg
7074
sudo chmod 644 /etc/apt/sources.list.d/closure.list
7175
sudo apt-get update
7276
sudo DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -qq closure
7377
```
7478

75-
...Or copy this repo to `/opt/closure` on the target, ensuring `rc.local` is executable and moved to `/etc`. The package will be installed after the next step.
76-
7779
2. Edit the files above and reboot. This boot, as well as those after upgrading, may take a while as everything is set up, but the subsequent ones will be much faster.
7880
3. On a Hub or HaaS, add a Spoke or SaaH peer by running `add.sh` (as described below). Then, for a SaaH, add an `SERVER_ALLOWEDIPS_PEER_[SaaH]=` environment variable -- using the peer's name sans the brackets -- for the wireguard service with the difference of `0.0.0.0/1,128.0.0.0/1,::/1,8000::/1` and the peer's IP, and run `sudo bash restart.sh`. This [AllowedIPs Calculator](https://www.procustodibus.com/blog/2021/03/wireguard-allowedips-calculator) is pretty nifty. Follow a similar process for a Spoke, if needed.
7981

debian/control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Homepage: https://github.com/ipitio/closure
44
Standards-Version: 3.9.2
55

66
Package: closure
7-
Version: 1.6.7
7+
Version: 1.6.8
88
Maintainer: ipitio <[email protected]>
99
Depends: curl, flatpak, gpg, hostapd, isc-dhcp-server, iw, macchanger, netplan.io, network-manager, net-tools, qrencode, rfkill, wireguard, wireless-tools, wget
1010
Recommends: containerd.io, docker-ce, docker-ce-cli, docker-buildx-plugin, docker-compose-plugin

init.sh

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
#!/bin/bash
22
# shellcheck disable=SC1091,SC2009,SC2015
33

4-
sudo() {
4+
sudonot() {
5+
# shellcheck disable=SC2068
56
if command -v sudo >/dev/null; then
6-
command sudo "$@" || "$@"
7+
sudo ${@:-:} || ${@:-:}
78
else
8-
"$@"
9+
${@:-:}
910
fi
1011
}
1112

1213
apt_install() {
1314
if ! dpkg -l "$@" >/dev/null 2>&1; then
14-
sudo apt-get update
15-
sudo DEBIAN_FRONTEND=noninteractive apt-get install -yqq "$@"
15+
sudonot apt-get update
16+
sudonot DEBIAN_FRONTEND=noninteractive apt-get install -yqq "$@"
1617
fi
1718
}
1819

@@ -22,67 +23,68 @@ source "env.sh"
2223

2324
if [ -f /boot/firmware/cmdline.txt ]; then
2425
if [ -n "$CLS_OTG_g_" ] && ! grep -q "dtoverlay=dwc2,dr_mode=peripheral" /boot/firmware/config.txt; then
25-
grep -q "dtoverlay=dwc2" /boot/firmware/config.txt || echo "dtoverlay=dwc2" | sudo tee -a /boot/firmware/config.txt
26+
grep -q "dtoverlay=dwc2" /boot/firmware/config.txt || echo "dtoverlay=dwc2" | sudonot tee -a /boot/firmware/config.txt
2627
sed -i "s/dtoverlay=dwc2.*/dtoverlay=dwc2,dr_mode=peripheral/g" /boot/firmware/config.txt
27-
grep -q "dwc_otg.lpm_enable=0" /boot/firmware/cmdline.txt || echo "dwc_otg.lpm_enable=0" | sudo tee -a /boot/firmware/cmdline.txt >/dev/null
28-
grep -q "modules-load=" /boot/firmware/cmdline.txt || echo "modules-load=" | sudo tee -a /boot/firmware/cmdline.txt >/dev/null
29-
grep -qP "modules-load=.*dwc2" /boot/firmware/cmdline.txt || sudo sed -i "s/\(modules-load=[^ ]*\)/\1,dwc2/g" /boot/firmware/cmdline.txt
30-
grep -qP "modules-load=.*g_$CLS_OTG_g_" /boot/firmware/cmdline.txt || sudo sed -i "s/\(modules-load=[^ ]*\)/\1,g_$CLS_OTG_g_/g" /boot/firmware/cmdline.txt
31-
! grep -qP ",\s" /boot/firmware/cmdline.txt || sudo sed -i "s/,\s+/ /g" /boot/firmware/cmdline.txt
32-
sudo reboot
28+
grep -q "dwc_otg.lpm_enable=0" /boot/firmware/cmdline.txt || echo "dwc_otg.lpm_enable=0" | sudonot tee -a /boot/firmware/cmdline.txt >/dev/null
29+
grep -q "modules-load=" /boot/firmware/cmdline.txt || echo "modules-load=" | sudonot tee -a /boot/firmware/cmdline.txt >/dev/null
30+
grep -qP "modules-load=.*dwc2" /boot/firmware/cmdline.txt || sudonot sed -i "s/\(modules-load=[^ ]*\)/\1,dwc2/g" /boot/firmware/cmdline.txt
31+
grep -qP "modules-load=.*g_$CLS_OTG_g_" /boot/firmware/cmdline.txt || sudonot sed -i "s/\(modules-load=[^ ]*\)/\1,g_$CLS_OTG_g_/g" /boot/firmware/cmdline.txt
32+
! grep -qP ",\s" /boot/firmware/cmdline.txt || sudonot sed -i "s/,\s+/ /g" /boot/firmware/cmdline.txt
33+
sudonot reboot
3334
elif [ -z "$CLS_OTG_g_" ] && grep -q "dtoverlay=dwc2,dr_mode=peripheral" /boot/firmware/config.txt; then
3435
sed -i "s/dtoverlay=dwc2.*/dtoverlay=dwc2,dr_mode=host/g" /boot/firmware/config.txt
35-
sudo reboot
36+
sudonot reboot
3637
fi
3738
fi
3839

3940
pids=$(ps -o ppid=$$)
40-
ps -aux | grep -P "^[^-]+$this_dir/init.sh" | awk '{print $2}' | while read -r pid; do grep -q "$pid" <<<"$pids" || sudo kill -9 "$pid" &>/dev/null; done
41+
ps -aux | grep -P "^[^-]+$this_dir/init.sh" | awk '{print $2}' | while read -r pid; do grep -q "$pid" <<<"$pids" || sudonot kill -9 "$pid" &>/dev/null; done
4142
mv -n examples/* . 2>/dev/null
4243
rmdir examples 2>/dev/null
4344

4445
if ! dpkg -l apt-fast >/dev/null 2>&1; then
45-
sudo add-apt-repository -y ppa:apt-fast/stable
46-
sudo apt-get update
47-
sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq apt-fast
46+
sudonot add-apt-repository -y ppa:apt-fast/stable
47+
sudonot apt-get update
48+
sudonot DEBIAN_FRONTEND=noninteractive apt-get install -yq apt-fast
4849
fi
4950

5051
if ! dpkg -l docker-ce >/dev/null 2>&1; then
5152
apt_install ca-certificates curl
52-
sudo install -m 0755 -d /etc/apt/keyrings
53-
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
54-
sudo chmod a+r /etc/apt/keyrings/docker.asc
55-
echo "deb [trusted=yes arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
53+
sudonot install -m 0755 -d /etc/apt/keyrings
54+
sudonot curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
55+
sudonot chmod a+r /etc/apt/keyrings/docker.asc
56+
echo "deb [trusted=yes arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | sudonot tee /etc/apt/sources.list.d/docker.list >/dev/null
5657
fi
5758

5859
if ! dpkg -l closure >/dev/null 2>&1; then
59-
sudo mkdir -m 0755 -p /etc/apt/keyrings/
60-
wget -qO- https://ipitio.github.io/closure/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/closure.gpg > /dev/null
61-
echo "deb [signed-by=/etc/apt/keyrings/closure.gpg] https://ipitio.github.io/closure master main" | sudo tee /etc/apt/sources.list.d/closure.list &>/dev/null
62-
sudo chmod 644 /etc/apt/keyrings/closure.gpg
63-
sudo chmod 644 /etc/apt/sources.list.d/closure.list
60+
sudonot mkdir -m 0755 -p /etc/apt/keyrings/
61+
wget -qO- https://ipitio.github.io/closure/gpg.key | gpg --dearmor | sudonot tee /etc/apt/keyrings/closure.gpg > /dev/null
62+
echo "deb [signed-by=/etc/apt/keyrings/closure.gpg] https://ipitio.github.io/closure master main" | sudonot tee /etc/apt/sources.list.d/closure.list &>/dev/null
63+
sudonot chmod 644 /etc/apt/keyrings/closure.gpg
64+
sudonot chmod 644 /etc/apt/sources.list.d/closure.list
6465
fi
6566

66-
[ ! -f /etc/apt/preferences.d/nosnap.pref ] || sudo mv /etc/apt/preferences.d/nosnap.pref /etc/apt/preferences.d/nosnap.pref.bak
67-
sudo systemctl disable --now whoopsie.path &>/dev/null
68-
sudo systemctl mask whoopsie.path &>/dev/null
69-
sudo apt-get purge -y ubuntu-report popularity-contest apport whoopsie
67+
[ ! -f /etc/apt/preferences.d/nosnap.pref ] || sudonot mv /etc/apt/preferences.d/nosnap.pref /etc/apt/preferences.d/nosnap.pref.bak
68+
sudonot systemctl disable --now whoopsie.path &>/dev/null
69+
sudonot systemctl mask whoopsie.path &>/dev/null
70+
sudonot apt-get purge -y ubuntu-report popularity-contest apport whoopsie
7071
# shellcheck disable=SC2046
7172
apt_install closure $(grep -oP '((?<=^Depends: )|(?<=^Recommends: )|(?<=^Suggests: )).*' debian/control | tr -d ',' | tr '\n' ' ')
72-
sudo apt autoremove -y
73+
sudonot apt autoremove -y
7374
yq -V | grep -q mikefarah &>/dev/null || {
74-
[ ! -f /usr/bin/yq ] || sudo mv -f /usr/bin/yq /usr/bin/yq.bak
75+
[ ! -f /usr/bin/yq ] || sudonot mv -f /usr/bin/yq /usr/bin/yq.bak
7576
arch=$(uname -m)
7677
[ "$arch" = "x86_64" ] && arch="amd64" || :
7778
[ "$arch" = "aarch64" ] && arch="arm64" || :
7879
[ "$arch" = "armv7l" ] && arch="armhf" || :
7980
[ "$arch" = "armhf" ] && arch="arm" || :
8081
[[ "$arch" == "i686" || "$arch" == "i386" ]] && arch="386" || :
81-
sudo curl -LNZo /usr/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_"$arch"
82-
sudo chmod +x /usr/bin/yq
82+
sudonot curl -LNZo /usr/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_"$arch"
83+
sudonot chmod +x /usr/bin/yq
8384
}
8485
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
8586
flatpak install --noninteractive flathub tv.kodi.Kodi
87+
[ ! -f /.dockerenv ] || exit 0
8688
source "lib.sh"
8789

8890
# Free port 53 on Ubuntu for Pi-hole

lib.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ user_exists() { id "$1" &>/dev/null; }
4040

4141
sudo() {
4242
if command -v sudo >/dev/null; then
43-
command sudo "$@"
43+
command sudo ${@:-:} || ${@:-:}
4444
else
45-
"$@"
45+
${@:-:}
4646
fi
4747
}
4848

0 commit comments

Comments
 (0)