DevPlace CI / test (push) Failing after 44m45s
Continuous Delivery could never be turned off once a crop was planted. Add a one-shot per-plot "stop after harvest" flag (POST /game/plot/stop, Devii tool game_plot_stop, game_plots.stop_after_harvest), cleared by the next plant, autoreplant claim or Refactor. Autoreplant now also respects crop locks through the shared _crop_lock predicate. Plan and measurements in happyplanting.md. Also includes the pending community sync, node network and related work in the tree; the full suite passed (4999) with all of it. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
42 lines
938 B
Bash
Executable File
42 lines
938 B
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
if [ "$#" -ne 1 ]; then
|
|
echo "usage: build.sh <outdir>" >&2
|
|
exit 2
|
|
fi
|
|
|
|
here=$(cd "$(dirname "$0")" && pwd)
|
|
mkdir -p "$1"
|
|
out=$(cd "$1" && pwd)
|
|
name=devplace-node-extension.zip
|
|
archive="$out/$name"
|
|
rm -f "$archive"
|
|
|
|
cd "$here"
|
|
if command -v zip >/dev/null 2>&1; then
|
|
zip -q -X -r "$archive" manifest.json src ui icons README.md
|
|
else
|
|
python3 - "$archive" <<'PY'
|
|
import sys
|
|
import zipfile
|
|
from pathlib import Path
|
|
|
|
archive = sys.argv[1]
|
|
paths = [Path("manifest.json"), Path("README.md")]
|
|
for folder in ("src", "ui", "icons"):
|
|
paths.extend(sorted(item for item in Path(folder).rglob("*") if item.is_file()))
|
|
with zipfile.ZipFile(archive, "w", zipfile.ZIP_DEFLATED) as bundle:
|
|
for path in paths:
|
|
bundle.write(path, path.as_posix())
|
|
PY
|
|
fi
|
|
|
|
cd "$out"
|
|
if command -v sha256sum >/dev/null 2>&1; then
|
|
sha256sum "$name" > "$name.sha256"
|
|
else
|
|
shasum -a 256 "$name" > "$name.sha256"
|
|
fi
|
|
cat "$name.sha256"
|