same treatment for the site script

This commit is contained in:
2025-03-26 00:25:18 -04:00
parent 96c2445a84
commit f5ec746098
2 changed files with 20 additions and 85 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
.DS_Store
/build/
/package/

103
site
View File

@ -11,10 +11,16 @@ RESET='\033[0m'
# Configuration
BUILD_DIRECTORY="build"
WEB_DIRECTORY="web"
GITEA_API_URL="https://gitea.thoughtpatterns.ai/api"
# Source the release script
GITEA_ORGANIZATION="agreego"
GITEA_REPO="site"
GITEA_REPOSITORY="site"
RELEASE_SCRIPT="../../thoughtpatterns/workspace/release.sh"
if [ ! -f "$RELEASE_SCRIPT" ]; then
echo -e "❌ ${RED}Release script not found at $RELEASE_SCRIPT${RESET}" >&2
exit 1
fi
source "$RELEASE_SCRIPT"
env() {
# Check if GITEA_TOKEN is set
@ -31,100 +37,29 @@ env() {
echo -e "💰 ${GREEN}Environment variables set${RESET}"
}
get-version() {
grep -E '^[0-9]+\.[0-9]+\.[0-9]+' version
}
site-version() {
local current_version=$(get-version)
local new_version="$1"
local increment_type="$2"
if [ -z "$new_version" ] && [ -z "$increment_type" ]; then
# Just show current version
echo -e "📊 ${CYAN}Current version: ${GREEN}v$current_version${RESET}"
return 0
fi
if [ "$new_version" = "increment" ]; then
# Auto-increment based on type
local major minor patch
IFS='.' read -r major minor patch <<< "$current_version"
case "${increment_type:-patch}" in
major)
major=$((major + 1))
minor=0
patch=0
;;
minor)
minor=$((minor + 1))
patch=0
;;
patch|*)
patch=$((patch + 1))
;;
esac
new_version="$major.$minor.$patch"
echo -e "📈 ${CYAN}Auto-incrementing ${increment_type:-patch} version: ${GREEN}v$current_version${RESET} → ${GREEN}v$new_version${RESET}"
else
echo -e "📝 ${CYAN}Setting manual version: ${GREEN}v$current_version${RESET} → ${GREEN}v$new_version${RESET}"
fi
# Update version in version file
echo "$new_version" > version
}
site-build() {
# Auto-increment patch version
site-version increment patch
# Get current version
build() {
# Create build directory if it doesn't exist
mkdir -p "$PACKAGE_DIRECTORY"
# Get version
local version=$(get-version)
# Create build directory
mkdir -p "$BUILD_DIRECTORY"
echo -e "📦 ${CYAN}Building site version ${GREEN}v$version${RESET}..."
# Create the tarball
tar -czf "$BUILD_DIRECTORY/site.tar.gz" -C "$WEB_DIRECTORY" .
tar -czf "$PACKAGE_DIRECTORY/$GITEA_REPOSITORY.tar.gz" -C "$BUILD_DIRECTORY" .
echo -e "✨ ${GREEN}Build complete${RESET}"
}
site-package() {
# Ensure we have a build
if [ ! -f "$BUILD_DIRECTORY/site.tar.gz" ]; then
echo -e "❌ ${RED}No build found. Run 'site build' first${RESET}" >&2
return 1
fi
# Get current version
local version=$(get-version)
echo -e "📊 ${CYAN}Packaging version: ${GREEN}v$version${RESET}"
# Upload the site
echo -e "📦 ${CYAN}Uploading site.tar.gz...${RESET}"
if curl -X PUT \
-H "Authorization: token $GITEA_TOKEN" \
"$GITEA_API_URL/packages/$GITEA_ORGANIZATION/generic/$GITEA_REPO/$version/site.tar.gz" \
-H "Content-Type: application/octet-stream" \
-T "$BUILD_DIRECTORY/site.tar.gz" \
-f > /dev/null; then
echo -e "✨ ${GREEN}Successfully uploaded site.tar.gz${RESET}"
else
echo -e "❌ ${RED}Failed to upload site.tar.gz${RESET}" >&2
return 1
fi
echo -e "🚀 ${GREEN}Site published to v$version${RESET}"
}
case "$1" in
env) env;;
build) env; site-build;;
package) env; site-package;;
build) env; build;;
tag) env; tag;;
package) env; package;;
release) env; release;;
*)
echo "Usage: $0 {env|build|package}"
echo "Usage: $0 {env|build|tag|package|release}"
exit 1;;
esac