track: "base" modules: - name: exec run: | for cmd in "$@"; do bash -s <<< "$cmd" done - name: pacman-install run: | pacman -Syqu --noconfirm "$@" || pacman -Syqu --noconfirm "$@" - name: pacman-remove run: | pacman -Rcns --noconfirm "$@" stages: - module: pacman-install inputs: - "git" - "sudo" - "grub" - "nano" - "linux" - "linux-firmware" - "dracut" - "pacman-contrib" - "python" - "python-yaml" - "python-click" - "python-requests" - "python-fasteners" - module: exec inputs: - | git clone --revision eb7a52e5d690bab70063b9dc705d9546e77509ad --depth 1 https://git.ruds.io/rs2009/akshara /akshara cd /akshara cp -a usr/lib/akshara /usr/lib/akshara cp -a usr/lib/dracut/modules.d/10akshara /usr/lib/dracut/modules.d/10akshara cp usr/bin/akshara /usr/bin/akshara - rm -rf /akshara override: - path: /var/lib/pacman/ keep: new - path: /etc/pacman.conf keep: new - path: /var/cache/blendOS/ keep: old auto-update: enabled: true interval: 3600 distro-config: before-stages: | set -e mkdir -p /var/cache/blendOS/pacman/pkg mkdir -m 0755 -p ./var/{cache/blendOS,lib/pacman,log} ./{dev,run,etc/pacman.d} mkdir -m 1777 -p ./tmp mkdir -m 0555 -p ./{sys,proc} cat <<'EOF' >./etc/pacman.conf [options] HoldPkg = pacman glibc Architecture = auto CheckSpace ParallelDownloads = 5 CacheDir = /var/cache/blendOS/pacman/pkg/ SigLevel = Never LocalFileSigLevel = Never RemoteFileSigLevel = Never [core] Server = https://fastly.mirror.pkgbuild.com/$repo/os/$arch Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch Server = https://ftpmirror.infania.net/mirror/archlinux/$repo/os/$arch Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch [extra] Server = https://fastly.mirror.pkgbuild.com/$repo/os/$arch Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch Server = https://ftpmirror.infania.net/mirror/archlinux/$repo/os/$arch Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch [multilib] Server = https://fastly.mirror.pkgbuild.com/$repo/os/$arch Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch Server = https://ftpmirror.infania.net/mirror/archlinux/$repo/os/$arch Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch EOF mount --bind /var/cache/blendOS ./var/cache/blendOS pacman -Sy --config ./etc/pacman.conf --cachedir ./var/cache/blendOS/pacman/pkg -r . --needed --noconfirm base ln -sfn usr/lib64 ./lib64 ln -sfn usr/sbin ./sbin cp /etc/locale.gen ./etc cp /etc/locale.conf ./etc after-stages: | umount -l ./var/cache/blendOS systemd-nspawn -D . locale-gen rm -f ./boot/* &>/dev/null pushd ./usr/lib/modules kernels=(*) popd cp ./usr/lib/modules/"${kernels[0]}"/vmlinuz ./boot/vmlinuz-"${kernels[0]}" systemd-nspawn -D . dracut --force --regenerate-all should-update: | [ "$(checkupdates | wc -l)" -gt 0 ]