Files
gosick/cmd/releaseprep/main.go
2026-03-20 14:59:46 +00:00

45 lines
1.1 KiB
Go

package main
import (
"flag"
"fmt"
"os"
"path/filepath"
"git.hrafn.xyz/aether/gosick/internal/releaseprep"
)
func main() {
version := flag.String("version", "", "semantic version to release, with or without leading v")
date := flag.String("date", "", "release date in YYYY-MM-DD format")
recommend := flag.Bool("recommend", false, "print the recommended next release tag based on the changelog")
root := flag.String("root", ".", "repository root to update")
flag.Parse()
absRoot, err := filepath.Abs(*root)
if err != nil {
fmt.Fprintf(os.Stderr, "resolve root: %v\n", err)
os.Exit(1)
}
if *recommend {
tag, err := releaseprep.RecommendedTag(absRoot)
if err != nil {
fmt.Fprintf(os.Stderr, "recommend release: %v\n", err)
os.Exit(1)
}
fmt.Println(tag)
return
}
if *version == "" || *date == "" {
fmt.Fprintln(os.Stderr, "usage: releaseprep --version <version> --date <YYYY-MM-DD> [--root <dir>] | --recommend [--root <dir>]")
os.Exit(2)
}
if err := releaseprep.Prepare(absRoot, *version, *date); err != nil {
fmt.Fprintf(os.Stderr, "prepare release: %v\n", err)
os.Exit(1)
}
}