From 633a5c2aa1cbb4ba73c2a255a59989a08281540b Mon Sep 17 00:00:00 2001 From: Terrence Ezrol Date: Sat, 2 Aug 2025 16:48:33 -0400 Subject: [PATCH] basic packaging --- .gitignore | 3 +- LICENSE.MD => LICENSE.md | 0 build.sh | 127 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 129 insertions(+), 1 deletion(-) rename LICENSE.MD => LICENSE.md (100%) create mode 100755 build.sh diff --git a/.gitignore b/.gitignore index 3a08573..c846c91 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .vscode x11proxy dist -.localenv.sh \ No newline at end of file +.localenv.sh +X11Proxy-*.tar.gz \ No newline at end of file diff --git a/LICENSE.MD b/LICENSE.md similarity index 100% rename from LICENSE.MD rename to LICENSE.md diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..470f1c7 --- /dev/null +++ b/build.sh @@ -0,0 +1,127 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ๐Ÿงช Load local environment overrides +if [[ -f .localenv.sh ]]; then + # If a custom path or other environment variables are needed, include them in .localenv.sh + source .localenv.sh +fi + +# ๐Ÿงญ Config +VERSION=$(grep "^const.*version\ *=\ *" main.go | sed -E 's/.*"([^"]+)".*/\1/') +TAG="v${VERSION}" +BIN_NAME="x11proxy" +DIST_DIR="dist/X11Proxy" +ARCHIVE_NAME="X11Proxy-${VERSION}-linux-x86_64.tar.gz" +REPO="ezterry/X11Proxy" +GITEA_URL="https://git-hojo.devnull.name" + +echo "$BIN_NAME build script (version: $VERSION)" + +# ๐Ÿงน Clean build artifacts +clean() { + rm -f "$BIN_NAME" + rm -rf dist "$ARCHIVE_NAME" +} + +# ๐Ÿ› ๏ธ Build binary +build_binary() { + echo "๐Ÿ”จ Building $BIN_NAME..." + go build -ldflags "-X main.version=${VERSION}" -o "$BIN_NAME" . +} + +# ๐Ÿ“ฆ Build distribution package +build_dist() { + clean + build_binary + + echo "๐Ÿ“ฆ Creating distribution package..." + mkdir -p "$DIST_DIR" + cp "$BIN_NAME" hello_xclock.sh README.md LICENSE.md "$DIST_DIR" + tar -czvf "$ARCHIVE_NAME" -C dist X11Proxy + echo "โœ… Built: $ARCHIVE_NAME" +} + +# ๐Ÿš€ Publish release to Gitea +publish_release() { + build_dist + + echo "๐Ÿ” Enter Gitea token (will not be saved):" + read -r -s GITEA_TOKEN + echo + + echo "๐Ÿท๏ธ Tagging release: $TAG" + if git rev-parse "$TAG" >/dev/null 2>&1; then + echo "โŒ Tag $TAG already exists" + exit 1 + fi + git tag -a "$TAG" -m "Release $TAG" + + echo "๐Ÿ“ค Creating release on Gitea..." + curl -s -X POST "${GITEA_URL}/api/v1/repos/${REPO}/releases" \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/json" \ + -d @- <