源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)

This commit is contained in:
agent-radar
2026-09-02 01:05:41 +08:00
commit 04bac1f6e2
2200 changed files with 489415 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)
TAG="${1:-${RELEASE_TAG:-}}"
if [ -z "$TAG" ]; then
echo "Missing release tag (arg or RELEASE_TAG)." >&2
exit 1
fi
if [[ "$TAG" != v* ]]; then
TAG="v${TAG}"
fi
VERSION="${TAG#v}"
"${ROOT_DIR}/scripts/aur/update-aur.sh" "$TAG"
cd "$ROOT_DIR"
if ! git status --porcelain -- packaging/aur/PKGBUILD packaging/aur/.SRCINFO | grep -q .; then
echo "AUR packaging already up to date."
exit 0
fi
BRANCH="chore/aur-${VERSION}"
git switch -c "$BRANCH" 2>/dev/null || git switch "$BRANCH"
git add packaging/aur/PKGBUILD packaging/aur/.SRCINFO
git -c user.name="OpenWork Release Bot" \
-c user.email="release-bot@users.noreply.github.com" \
commit -m "chore(aur): update PKGBUILD for ${VERSION}"
git push --set-upstream origin "$BRANCH"
if gh pr list --head "$BRANCH" --state open --json number --jq 'length > 0' | grep -q true; then
echo "PR already open for ${BRANCH}."
exit 0
fi
gh pr create --title "chore(aur): update PKGBUILD for ${VERSION}" --base dev --body "$(cat <<'EOF'
## Summary
- Update AUR PKGBUILD and .SRCINFO for the ${VERSION} release
- Refresh sha256 for the Linux .deb release asset
EOF
)"
+69
View File
@@ -0,0 +1,69 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)
TAG="${1:-${RELEASE_TAG:-}}"
if [ -z "$TAG" ]; then
echo "Missing release tag (arg or RELEASE_TAG)." >&2
exit 1
fi
if [[ "$TAG" != v* ]]; then
TAG="v${TAG}"
fi
VERSION="${TAG#v}"
if [ -z "${AUR_SSH_PRIVATE_KEY:-}" ]; then
echo "AUR_SSH_PRIVATE_KEY is required to push to AUR." >&2
exit 1
fi
# AUR package repo name (AUR repo = ssh://aur@aur.archlinux.org/<name>.git)
AUR_REPO="${AUR_REPO:-openwork}"
AUR_REMOTE="ssh://aur@aur.archlinux.org/${AUR_REPO}.git"
if [ "${AUR_SKIP_UPDATE:-}" != "1" ]; then
"${ROOT_DIR}/scripts/aur/update-aur.sh" "$TAG"
fi
TMP_DIR=$(mktemp -d)
trap 'rm -rf "$TMP_DIR"' EXIT
KEY_PATH="${TMP_DIR}/aur.key"
printf '%s\n' "$AUR_SSH_PRIVATE_KEY" > "$KEY_PATH"
chmod 600 "$KEY_PATH"
mkdir -p "$HOME/.ssh"
touch "$HOME/.ssh/known_hosts"
if ! ssh-keygen -F aur.archlinux.org >/dev/null 2>&1; then
ssh-keyscan -t rsa,ecdsa,ed25519 aur.archlinux.org >> "$HOME/.ssh/known_hosts" 2>/dev/null
fi
export GIT_SSH_COMMAND="ssh -i $KEY_PATH -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes"
git clone "$AUR_REMOTE" "$TMP_DIR/aur"
cp "$ROOT_DIR/packaging/aur/PKGBUILD" "$TMP_DIR/aur/PKGBUILD"
cp "$ROOT_DIR/packaging/aur/.SRCINFO" "$TMP_DIR/aur/.SRCINFO"
cd "$TMP_DIR/aur"
if git diff --quiet -- PKGBUILD .SRCINFO; then
echo "AUR already up to date for ${AUR_REPO} (${VERSION})."
exit 0
fi
git add PKGBUILD .SRCINFO
git -c user.name="OpenWork Release Bot" \
-c user.email="release-bot@users.noreply.github.com" \
commit -m "chore(aur): update PKGBUILD for ${VERSION}"
current_branch=$(git symbolic-ref --short HEAD 2>/dev/null || true)
if [ -z "$current_branch" ]; then
current_branch="master"
fi
git push origin "HEAD:${current_branch}"
+106
View File
@@ -0,0 +1,106 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)
PKG_DIR="${ROOT_DIR}/packaging/aur"
PKGBUILD="${PKG_DIR}/PKGBUILD"
SRCINFO="${PKG_DIR}/.SRCINFO"
PYTHON_BIN="${PYTHON_BIN:-}"
if [ -z "$PYTHON_BIN" ]; then
if command -v python3 >/dev/null 2>&1; then
PYTHON_BIN="python3"
elif command -v python >/dev/null 2>&1; then
PYTHON_BIN="python"
else
echo "Python is required (python3 preferred)." >&2
exit 1
fi
fi
TAG="${1:-${RELEASE_TAG:-}}"
if [ -z "$TAG" ]; then
echo "Missing release tag (arg or RELEASE_TAG)." >&2
exit 1
fi
if [[ "$TAG" != v* ]]; then
TAG="v${TAG}"
fi
VERSION="${TAG#v}"
ASSET_NAME_AMD64="${AUR_ASSET_NAME:-openwork-linux-x64-${VERSION}.tar.gz}"
ASSET_NAME_ARM64="openwork-linux-arm64-${VERSION}.tar.gz"
ASSET_URL_AMD64="https://github.com/different-ai/openwork/releases/download/${TAG}/${ASSET_NAME_AMD64}"
ASSET_URL_ARM64="https://github.com/different-ai/openwork/releases/download/${TAG}/${ASSET_NAME_ARM64}"
TMP_DIR=$(mktemp -d)
trap 'rm -rf "$TMP_DIR"' EXIT
curl -fsSL -o "${TMP_DIR}/${ASSET_NAME_AMD64}" "$ASSET_URL_AMD64"
curl -fsSL -o "${TMP_DIR}/${ASSET_NAME_ARM64}" "$ASSET_URL_ARM64"
# Calculate SHA256 checksums
SHA256_AMD64=$(sha256sum "${TMP_DIR}/${ASSET_NAME_AMD64}" | awk '{print $1}')
SHA256_ARM64=$(sha256sum "${TMP_DIR}/${ASSET_NAME_ARM64}" | awk '{print $1}')
$PYTHON_BIN - "$PKGBUILD" "$VERSION" "$SHA256_AMD64" "$SHA256_ARM64" <<'PY'
import pathlib
import re
import sys
path = pathlib.Path(sys.argv[1])
version = sys.argv[2]
sha_amd64 = sys.argv[3]
sha_arm64 = sys.argv[4]
text = path.read_text()
text = re.sub(r"^pkgver=.*$", f"pkgver={version}", text, flags=re.M)
text = re.sub(r"^(pkgrel=)\d+", r"\g<1>1", text, flags=re.M)
text = re.sub(r"^sha256sums_x86_64=.*$", f"sha256sums_x86_64=('{sha_amd64}')", text, flags=re.M)
text = re.sub(r"^sha256sums_aarch64=.*$", f"sha256sums_aarch64=('{sha_arm64}')", text, flags=re.M)
path.write_text(text)
PY
$PYTHON_BIN - "$SRCINFO" "$PKGBUILD" "$VERSION" "$SHA256_AMD64" "$SHA256_ARM64" "$ASSET_URL_AMD64" "$ASSET_URL_ARM64" <<'PY'
import pathlib
import re
import sys
srcinfo_path = pathlib.Path(sys.argv[1])
pkgbuild_path = pathlib.Path(sys.argv[2])
version = sys.argv[3]
sha_amd64 = sys.argv[4]
sha_arm64 = sys.argv[5]
url_amd64 = sys.argv[6]
url_arm64 = sys.argv[7]
pkgbuild = pkgbuild_path.read_text()
match = re.search(r"^pkgname=(.+)$", pkgbuild, flags=re.M)
if not match:
raise SystemExit("Could not determine pkgname from PKGBUILD")
pkgname = match.group(1).strip()
renamed_amd64 = f"{pkgname}-{version}-x64.tar.gz"
renamed_arm64 = f"{pkgname}-{version}-arm64.tar.gz"
text = srcinfo_path.read_text()
text = re.sub(r"^\s*pkgver = .*", f"\tpkgver = {version}", text, flags=re.M)
text = re.sub(r"^\s*pkgrel = .*", "\tpkgrel = 1", text, flags=re.M)
text = re.sub(r"^\s*noextract = .*\n?", "", text, flags=re.M)
text = re.sub(
r"^\s*source_x86_64 = .*",
f"\tsource_x86_64 = {renamed_amd64}::{url_amd64}",
text,
flags=re.M,
)
text = re.sub(r"^\s*sha256sums_x86_64 = .*", f"\tsha256sums_x86_64 = {sha_amd64}", text, flags=re.M)
text = re.sub(
r"^\s*source_aarch64 = .*",
f"\tsource_aarch64 = {renamed_arm64}::{url_arm64}",
text,
flags=re.M,
)
text = re.sub(r"^\s*sha256sums_aarch64 = .*", f"\tsha256sums_aarch64 = {sha_arm64}", text, flags=re.M)
srcinfo_path.write_text(text)
PY