<<\EOF # This is also a bootstrapping script! Check out the bootstrap program and the shell script for more information.

We Are Syvlorg.

About Me About This Website About Syvlorg Résumé Index

Table of Contents

index.html

(if (file-exists-p "./README.html") (with-temp-buffer (insert-file-contents "./README.html") (buffer-string)) "")

This was adapted from ellipsis.sh, raw file here:

<<\EOF # This is also a bootstrapping script! Check out <a href="https://bootstrap.syvl.org">the <code>bootstrap</code> program</a> and <a href="https://index.syvl.org">the shell script</a> for more information.
nil<!-- This is where the site html goes.
EOF
# This is where the site html ends.

index.sh

For information on how to prompt when piping to sh, see Graeme's answer here, and ferhtgoldaraz's answer here.

set -eo pipefail
mkdir -p "$HOME/.local/share/syvl"
bootstrap="$HOME/.local/share/syvl/bootstrap"
flake="$HOME/.local/share/syvl/flake.nix"
default="$HOME/.local/share/syvl/default.nix"
lockfile="$HOME/.local/share/syvl/flake.lock"

Adapted from Graeme's answer here, and ferhtgoldaraz's answer here:

if [ -f "$bootstrap" ]; then
    read -p $'Curl hylang bootstrap script: ' curlIndexScript < /dev/tty
else
    curlIndexScript="yes"
fi
if [ "$curlIndexScript" == "y" ] || [ "$curlIndexScript" == "yes" ]; then
    curl -fsSLo $bootstrap https://raw.githubusercontent.com/sylvorg/sylvorg.github.io/main/index.hy
fi
if [ -f "$flake" ]; then
    read -p $'Curl nix flake: ' curlNixFlake < /dev/tty
else
    curlNixFlake="yes"
fi
if [ "$curlNixFlake" == "y" ] || [ "$curlNixFlake" == "yes" ]; then
    curl -fsSLo $flake https://raw.githubusercontent.com/sylvorg/sylvorg.github.io/main/flake.nix
fi
if [ -f "$lockfile" ]; then
    read -p $'Curl nix flake lockfile: ' curlNixLockfile < /dev/tty
else
    curlNixLockfile="yes"
fi
if [ "$curlNixLockfile" == "y" ] || [ "$curlNixLockfile" == "yes" ]; then
    curl -fsSLo $lockfile https://raw.githubusercontent.com/sylvorg/sylvorg.github.io/main/flake.lock
fi
if [ -f "$default" ]; then
    read -p $'Curl flake-compat default.nix: ' curlNixDefault < /dev/tty
else
    curlNixDefault="yes"
fi
if [ "$curlNixDefault" == "y" ] || [ "$curlNixDefault" == "yes" ]; then
    curl -fsSLo $default https://raw.githubusercontent.com/sylvorg/sylvorg.github.io/main/default.nix
fi
chmod +x $bootstrap
if hash nix 2> /dev/null; then
    $bootstrap $@
else
    read -p $'Install nix: ' installNix < /dev/tty
    if [ "$installNix" == "y" ] || [ "$installNix" == "yes" ]; then
        read -p $'Install nix as multi-user: ' installMulti < /dev/tty
        if [ "$installMulti" == "y" ] || [ "$installMulti" == "yes" ]; then
            sh <(curl -fsSL https://nixos.org/nix/install) --daemon
        else
            sh <(curl -fsSL https://nixos.org/nix/install) --no-daemon
        fi
    fi
    set +eo pipefail
    if ! $bootstrap $@; then
        set -eo pipefail
        if [ "$(uname -o)" == "Android" ]; then
            termux-setup-storage
        fi
        read -p $'Nix-shell bootstrap failed; try again after installing dependencies: ' installDeps < /dev/tty
        if [ "$installDeps" == "y" ] || [ "$installDeps" == "yes" ]; then
            pacapt="$HOME/.local/share/syvl/pacapt"
            if [ -f "$pacapt" ]; then
                read -p $'Curl pacapt: ' curlPacapt < /dev/tty
            else
                curlPacapt="yes"
            fi
            if [ "$curlPacapt" == "y" ] || [ "$curlPacapt" == "yes" ]; then
                if [ "$(uname -o)" == "Android" ]; then
                    pkg install curl
                    ln -s /data/data/com.termux/files/usr/lib/libssl.so /data/data/com.termux/files/usr/lib/libssl.so.1.1 || :
                    ln -s /data/data/com.termux/files/usr/lib/libcrypto.so /data/data/com.termux/files/usr/lib/libcrypto.so.1.1 || :
                    apt update
                    apt upgrade
                fi
                curl -fsSLo $pacapt https://raw.githubusercontent.com/icy/pacapt/ng/pacapt
            fi
            read -p $'Install dependencies: ' setupDependencies < /dev/tty
            if [ "$setupDependencies" == "y" ] || [ "$setupDependencies" == "yes" ]; then
                chmod +x $pacapt
                $pacapt -Syyu yadm git fd emacs gnupg git-crypt pass python assh
                pip install --force-reinstall --upgrade https://github.com/syvlorg/bakery/archive/main.tar.gz \
                                                        https://github.com/syvlorg/tailapi/archive/main.tar.gz \
                                                        requests
                if [ "$(uname -o)" == "Android" ]; then
                    ln -sf $(which sh) $(dirname $(which sh))/nix-shell
                else
                    $pacapt -Syyu tailscale
                fi
            fi
            hy $bootstrap $@
        fi
    fi
fi

Author: Jeet Ray

Created: 2022-09-24 Sat 18:08

Validate