Skip to content

Commit 79d7024

Browse files
committed
refactor: functionize, fix ci
1 parent 3ca2c1c commit 79d7024

1 file changed

Lines changed: 49 additions & 35 deletions

File tree

build.sh

Lines changed: 49 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,53 @@
11
#!/bin/bash
22
set -euo pipefail
3+
IFS=$'\n\t'
34
# shellcheck disable=SC2035
45

5-
# download
6-
echo "Downloading wsldl..."
7-
VER=$(curl https://api.github.com/repos/yuk7/wsldl/releases/latest -s | jq .name -r)
8-
curl --silent --location "https://github.com/yuk7/wsldl/releases/download/${VER}/icons.zip"
9-
echo "Downloading tarball..."
10-
curl --silent --localtion "https://jenkins.linuxcontainers.org/view/Images/job/image-devuan/architecture=amd64,release=excalibur,variant=default/lastSuccessfulBuild/artifact/rootfs.tar.xz"
11-
12-
# build
13-
echo "Extracting..."
14-
unzip -u icons.zip Devuan.exe
15-
16-
mkdir -p ziproot/usr/lib/wsl # mkdir ziproot
17-
cp rootfs.tar.xz ziproot/
18-
19-
tar -C ziproot -xf rootfs.tar.xz
20-
sudo install -pm644 fs/etc/wsl-distribution.conf ziproot/etc/wsl-distribution.conf
21-
sudo install -pm755 fs/usr/lib/wsl/oobe ziproot/usr/lib/wsl/oobe
22-
sudo install -pm644 fs/usr/lib/wsl/devuan.ico ziproot/usr/lib/wsl/devuan.ico
23-
sudo install -pm644 fs/usr/lib/wsl/terminal-profile.json ziproot/usr/lib/wsl/terminal-profile.json
24-
# use `sudo` here as partitions mounted via WSL are owned by current user
25-
# (e.g. UID 1000) but rootfs requires root aka. UID 0
26-
sudo tar -C ziproot --numeric-owner --absolute-names --create . | pigz > Devuan.wsl
27-
# sudo tar -C ziproot --numeric-owner --absolute-names --create . | gzip --best Devuan.wsl
28-
shopt -s extglob
29-
sudo rm -r -- ziproot/!(rootfs.tar.xz)
30-
sha512sum Devuan.wsl > Devuan.wsl.sha512
31-
32-
cp Devuan.exe ziproot/Devuan.exe
33-
sudo zip -j Devuan.zip ziproot/*
34-
sudo chown "$(whoami):$(whoami)" Devuan.zip
35-
sha512sum Devuan.zip > Devuan.zip.sha512
36-
37-
# clean
38-
rm -rf ziproot Devuan.exe
39-
# rm -r icons.zip rootfs.tar.xz
6+
download(){
7+
echo "Downloading wsldl..."
8+
local VER
9+
VER=$(curl https://api.github.com/repos/yuk7/wsldl/releases/latest -s | jq .name -r)
10+
curl --silent --location "https://github.com/yuk7/wsldl/releases/download/${VER}/icons.zip"
11+
echo "Downloading tarball..."
12+
curl --silent --localtion "https://jenkins.linuxcontainers.org/view/Images/job/image-devuan/architecture=amd64,release=excalibur,variant=default/lastSuccessfulBuild/artifact/rootfs.tar.xz"
13+
}
14+
15+
build(){
16+
echo "Extracting..."
17+
unzip -u icons.zip Devuan.exe
18+
19+
echo "Building ziproot..."
20+
mkdir -p ziproot/usr/lib/wsl # mkdir ziproot
21+
cp rootfs.tar.xz ziproot/
22+
23+
echo "Packing wsl..."
24+
tar -C ziproot -xf rootfs.tar.xz
25+
sudo install -pm644 fs/etc/wsl-distribution.conf ziproot/etc/wsl-distribution.conf
26+
sudo install -pm755 fs/usr/lib/wsl/oobe ziproot/usr/lib/wsl/oobe
27+
sudo install -pm644 fs/usr/lib/wsl/devuan.ico ziproot/usr/lib/wsl/devuan.ico
28+
sudo install -pm644 fs/usr/lib/wsl/terminal-profile.json ziproot/usr/lib/wsl/terminal-profile.json
29+
# use `sudo` here as partitions mounted via WSL are owned by current user
30+
# (e.g. UID 1000) but rootfs requires root aka. UID 0
31+
sudo tar -C ziproot --numeric-owner --absolute-names --create . | pigz > Devuan.wsl
32+
# sudo tar -C ziproot --numeric-owner --absolute-names --create . | gzip --best Devuan.wsl
33+
34+
# make extglob recognized by root shell
35+
sudo bash -c 'shopt -s extglob; rm -r -- ziproot/!(rootfs.tar.xz)'
36+
sha512sum Devuan.wsl > Devuan.wsl.sha512
37+
38+
echo "Packing zip..."
39+
cp Devuan.exe ziproot/Devuan.exe
40+
sudo zip -j Devuan.zip ziproot/*
41+
sudo chown "$(whoami):$(whoami)" Devuan.zip
42+
sha512sum Devuan.zip > Devuan.zip.sha512
43+
}
44+
45+
clean(){
46+
echo "Cleaning..."
47+
rm -rf ziproot Devuan.exe
48+
# rm -r icons.zip rootfs.tar.xz
49+
}
50+
51+
download
52+
build
53+
clean

0 commit comments

Comments
 (0)