summaryrefslogtreecommitdiff
path: root/build.sh
blob: 17340ba6b04250d92187294fa9941418be47322b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/sh
# to build this site, you must have: git, pnpm, go and hugo

echo "_______  _______  _______  ______   _______  _______  _______  _______  _______ "
echo "(  ____ \(  ____ \(  ____ \(  __  \ (  ____ \(  ___  )(  ____ )(  ____ )(  ___  )"
echo "| (    \/| (    \/| (    \/| (  \  )| (    \/| (   ) || (    )|| (    )|| (   ) |"
echo "| |      | (__    | (__    | |   ) || (__    | (___) || (____)|| (____)|| |   | |"
echo "| | ____ |  __)   |  __)   | |   | ||  __)   |  ___  ||  _____)|     __)| |   | |"
echo "| | \_  )| (      | (      | |   ) || (      | (   ) || (      | (\ (   | |   | |"
echo "| (___) || (____/\| (____/\| (__/  )| (____/\| )   ( || )      | ) \ \__| (___) |"
echo "(_______)(_______/(_______/(______/ (_______/|/     \||/       |/   \__/(_______)"

# ========= Pull =========== #
echo "\n\n1️⃣ Pulling changes from remote.\n"
git pull

# ======= pre-build ========= #
echo "\n\n2️⃣ Pre-Build\n"
pnpm build:uno:prod # build UnoCSS

# check and build Go binaries if needed
mkdir -p bin

# List of Go programs to build and execute
go_programs="extract_highlights get_external_link_rank get_internal_link_graph"

for program in $go_programs; do
    if [ ! -f "bin/$program" ]; then
        echo "Building $program..."
        cd scripts && go build -o "../bin/$program" "$program.go" && cd ..
    else
        echo "$program binary already exists in bin/"
    fi

    # Execute the binary
    echo "Running $program..."
    "./bin/$program"
done

# build hugo site
echo "\n\n3️⃣ Hugo!\n"
hugo --gc --minify

# post-build
echo "\n\n4️⃣ Post-Build\n"
pnpm pagefind --site public                 # indexing pagefind
pnpm wm public/index.xml --limit 1 --send   # send webmention