Version 0.1.0 #3

Merged
FernandoJVideira merged 12 commits from dev into main 2026-08-25 20:42:49 +00:00
9 changed files with 134 additions and 18 deletions
Showing only changes of commit 9d745785ed - Show all commits

No files matched your search

+7 -7
View File
@@ -1,7 +1,7 @@
PKG_NAME="gitea.fernandovideira.com/FernandoJVideira/keystone"
PKG_NAME="gitea.fernandovideira.com/fernandojvideira/keystone"
version:
@go run -ldflags "-X ${PKG_NAME}/cmd.version=v1.0.0" cmd/basalt/main.go version
@go run -ldflags "-X ${PKG_NAME}/cmd.version=v1.0.0" ./main.go version
generate-templates:
@echo "Initializing submodules..."
@@ -11,19 +11,19 @@ generate-templates:
build: prepare-embed
@echo "Building for $(GOOS)/$(GOARCH)..."
@GOOS=$(GOOS) GOARCH=$(GOARCH) go build -ldflags "-X ${PKG_NAME}/cmd.version=v0.0.1" -o $(OUTPUT) ./cmd/basalt/main.go
@GOOS=$(GOOS) GOARCH=$(GOARCH) go build -ldflags "-X ${PKG_NAME}/cmd.version=v0.0.1" -o $(OUTPUT) ./main.go
windows:
@$(MAKE) build GOOS=windows GOARCH=amd64 OUTPUT=basalt.exe
@$(MAKE) build GOOS=windows GOARCH=amd64 OUTPUT=keystone.exe
win-arm:
@$(MAKE) build GOOS=windows GOARCH=arm64 OUTPUT=basalt.exe
@$(MAKE) build GOOS=windows GOARCH=arm64 OUTPUT=keystone.exe
linux:
@$(MAKE) build GOOS=linux GOARCH=amd64 OUTPUT=basalt
@$(MAKE) build GOOS=linux GOARCH=amd64 OUTPUT=keystone
mac:
@$(MAKE) build GOOS=darwin GOARCH=arm64 OUTPUT=basalt
@$(MAKE) build GOOS=darwin GOARCH=arm64 OUTPUT=keystone
prepare-embed:
@git submodule update --init --recursive
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"path/filepath"
"strings"
"gitea.fernandovideira.com/FernandoJVideira/keystone/assets"
"gitea.fernandovideira.com/fernandojvideira/keystone/assets"
"github.com/manifoldco/promptui"
"github.com/spf13/cobra"
)
-7
View File
@@ -1,7 +0,0 @@
package main
import "gitea.fernandovideira.com/FernandoJVideira/keystone/cmd"
func main() {
cmd.Execute()
}
+1 -1
View File
@@ -11,7 +11,7 @@ import (
"strings"
"text/template"
"gitea.fernandovideira.com/FernandoJVideira/keystone/assets"
"gitea.fernandovideira.com/fernandojvideira/keystone/assets"
)
const (
-1
View File
@@ -6,7 +6,6 @@ import (
"github.com/spf13/cobra"
)
// Default version (we will change this dynamically later!)
var version = "dev"
func init() {
+1 -1
View File
@@ -1,4 +1,4 @@
module gitea.fernandovideira.com/FernandoJVideira/keystone
module gitea.fernandovideira.com/fernandojvideira/keystone
go 1.25.5
+7
View File
@@ -0,0 +1,7 @@
package main
import "gitea.fernandovideira.com/fernandojvideira/keystone/cmd"
func main() {
cmd.Execute()
}
+68
View File
@@ -0,0 +1,68 @@
package main
import (
"archive/zip"
"fmt"
"os"
"path/filepath"
"strings"
)
func main() {
if len(os.Args) != 3 {
fmt.Println("usage: create_zip <source_dir> <output_zip>")
os.Exit(1)
}
sourceDir := os.Args[1]
outputZip := os.Args[2]
outFile, err := os.Create(outputZip)
if err != nil {
panic(err)
}
defer outFile.Close()
w := zip.NewWriter(outFile)
defer w.Close()
err = filepath.Walk(sourceDir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() {
return nil // Skip directory entries entirely
}
// Skip hidden files/directories (like .DS_Store)
if strings.HasPrefix(filepath.Base(path), ".") {
return nil
}
// Get path relative to the source directory
relPath, err := filepath.Rel(sourceDir, path)
if err != nil {
return err
}
// Ensure forward slashes for zip spec compliance
relPath = filepath.ToSlash(relPath)
// Create file in zip
f, err := w.Create(relPath)
if err != nil {
return err
}
// Write content
fileContent, err := os.ReadFile(path)
if err != nil {
return err
}
_, err = f.Write(fileContent)
return err
})
if err != nil {
panic(err)
}
}
+49
View File
@@ -0,0 +1,49 @@
#!/bin/bash
set -e
# Usage: ./tools/publish-package.sh <version> <gitea-token>
VERSION=$1
TOKEN=$2
MODULE="gitea.fernandovideira.com/fernandojvideira/keystone"
# Note: The zip must contain the full domain path as the root directory
ZIP_ROOT="${MODULE}@${VERSION}"
API_URL="https://gitea.fernandovideira.com/api/packages/FernandoJVideira/go/upload"
if [ -z "$VERSION" ] || [ -z "$TOKEN" ]; then
echo "Usage: $0 <version> <gitea-token>"
exit 1
fi
echo "🚀 preparing release $VERSION..."
# 1. Generate the assets locally
make prepare-embed
# 2. Create a temporary staging area
TMP_DIR=$(mktemp -d)
TARGET_DIR="$TMP_DIR/$ZIP_ROOT"
mkdir -p "$TARGET_DIR"
# 3. Export clean git source to staging
git archive --format=tar HEAD | tar -x -C "$TARGET_DIR"
# 4. Copy the generated (and git-ignored) assets into the staging area
# We assume assets/embedded exists after 'make prepare-embed'
mkdir -p "$TARGET_DIR/assets/embedded"
cp -r assets/embedded/* "$TARGET_DIR/assets/embedded/"
# 5. Zip it up (using a custom Go tool to avoid directory entries)
ZIP_FILE="keystone-$VERSION.zip"
# We run the tool from the current directory, pointing it to the temp dir
go run tools/create_zip.go "$TMP_DIR" "$ZIP_FILE"
# 6. Upload to Gitea
echo "📦 Uploading to Gitea Package Registry..."
curl --fail --silent --show-error \
--user "FernandoJVideira:$TOKEN" \
--upload-file "$ZIP_FILE" \
"$API_URL"
# Cleanup
rm -rf "$TMP_DIR" "$ZIP_FILE"
echo "✅ Published $VERSION successfully!"