feat(releaseprep): migrate standalone tool into vociferate
This commit is contained in:
53
cmd/releaseprep/main.go
Normal file
53
cmd/releaseprep/main.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"git.hrafn.xyz/aether/vociferate/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")
|
||||
versionFile := flag.String("version-file", "", "path to the version file, relative to --root")
|
||||
versionPattern := flag.String("version-pattern", "", "regexp with one capture group for the version value")
|
||||
changelog := flag.String("changelog", "", "path to changelog file, relative to --root")
|
||||
flag.Parse()
|
||||
|
||||
absRoot, err := filepath.Abs(*root)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "resolve root: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
opts := releaseprep.Options{
|
||||
VersionFile: *versionFile,
|
||||
VersionPattern: *versionPattern,
|
||||
Changelog: *changelog,
|
||||
}
|
||||
|
||||
if *recommend {
|
||||
tag, err := releaseprep.RecommendedTag(absRoot, opts)
|
||||
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>] [--version-file <path>] [--version-pattern <regexp>] [--changelog <path>] | --recommend [--root <dir>] [--version-file <path>] [--version-pattern <regexp>] [--changelog <path>]")
|
||||
os.Exit(2)
|
||||
}
|
||||
|
||||
if err := releaseprep.Prepare(absRoot, *version, *date, opts); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "prepare release: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user