Public Access
Version 0.1.0 #3
No files matched your search
@@ -1,7 +1,7 @@
|
|||||||
PKG_NAME="gitea.fernandovideira.com/FernandoJVideira/keystone"
|
PKG_NAME="gitea.fernandovideira.com/fernandojvideira/keystone"
|
||||||
|
|
||||||
version:
|
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:
|
generate-templates:
|
||||||
@echo "Initializing submodules..."
|
@echo "Initializing submodules..."
|
||||||
@@ -11,19 +11,19 @@ generate-templates:
|
|||||||
|
|
||||||
build: prepare-embed
|
build: prepare-embed
|
||||||
@echo "Building for $(GOOS)/$(GOARCH)..."
|
@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:
|
windows:
|
||||||
@$(MAKE) build GOOS=windows GOARCH=amd64 OUTPUT=basalt.exe
|
@$(MAKE) build GOOS=windows GOARCH=amd64 OUTPUT=keystone.exe
|
||||||
|
|
||||||
win-arm:
|
win-arm:
|
||||||
@$(MAKE) build GOOS=windows GOARCH=arm64 OUTPUT=basalt.exe
|
@$(MAKE) build GOOS=windows GOARCH=arm64 OUTPUT=keystone.exe
|
||||||
|
|
||||||
linux:
|
linux:
|
||||||
@$(MAKE) build GOOS=linux GOARCH=amd64 OUTPUT=basalt
|
@$(MAKE) build GOOS=linux GOARCH=amd64 OUTPUT=keystone
|
||||||
|
|
||||||
mac:
|
mac:
|
||||||
@$(MAKE) build GOOS=darwin GOARCH=arm64 OUTPUT=basalt
|
@$(MAKE) build GOOS=darwin GOARCH=arm64 OUTPUT=keystone
|
||||||
|
|
||||||
prepare-embed:
|
prepare-embed:
|
||||||
@git submodule update --init --recursive
|
@git submodule update --init --recursive
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"gitea.fernandovideira.com/FernandoJVideira/keystone/assets"
|
"gitea.fernandovideira.com/fernandojvideira/keystone/assets"
|
||||||
"github.com/manifoldco/promptui"
|
"github.com/manifoldco/promptui"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import "gitea.fernandovideira.com/FernandoJVideira/keystone/cmd"
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
cmd.Execute()
|
|
||||||
}
|
|
||||||
+1
-1
@@ -11,7 +11,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
"gitea.fernandovideira.com/FernandoJVideira/keystone/assets"
|
"gitea.fernandovideira.com/fernandojvideira/keystone/assets"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Default version (we will change this dynamically later!)
|
|
||||||
var version = "dev"
|
var version = "dev"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
module gitea.fernandovideira.com/FernandoJVideira/keystone
|
module gitea.fernandovideira.com/fernandojvideira/keystone
|
||||||
|
|
||||||
go 1.25.5
|
go 1.25.5
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import "gitea.fernandovideira.com/fernandojvideira/keystone/cmd"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
cmd.Execute()
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
Executable
+49
@@ -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!"
|
||||||
Reference in new issue
Block a user