summaryrefslogtreecommitdiffstats
path: root/apps/plugins/puzzles/resync.sh
blob: 76679971a4e012eec1660e6dd230cedbab036428 (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
#!/bin/sh
# Usage: resync.sh PUZZLES_PATH
#
# Automatic resync tool. Removes the current source snapshot in src/
# and copies just the source files we need from the puzzles source
# tree. Handles help generation as well. Stages changes in git.
#
# Expects a modified Halibut (https://www.fwei.tk/git/halibut) to be
# installed in $PATH. Also requires host CC and lz4 library to be
# available


if [ $# -ne 1 ]
then
    echo -e "Usage: $0 PUZZLES_PATH\n"
    echo "Automatically resync with upstream."
    echo "PUZZLES_PATH is the path to a puzzles source tree."
    exit
fi

echo "=== POTENTIALLY DANGEROUS OPERATION ==="
echo "Are you sure you want to remove all files in src/?"
echo -n "If so, type \"yes\" in all caps: "
read ans
if [ "YES" == $ans ]
then
    pushd "$(dirname "$0")" > /dev/null

    echo "[1/5] Removing current src/ directory"
    rm -rf src
    echo "[2/5] Copying new sources"
    mkdir src
    cp -r "$1"/{*.c,*.h,*.R,*.but,LICENCE,README} src
    echo "[3/5] Regenerating help"
    ./genhelp.sh

    echo "[4/5] Staging for commit"
    git add src help
    echo "[5/5] Successfully resynced with upstream"

    popd > /dev/null
else
    echo "Did nothing."
fi