mirror of
https://github.com/apricote/releaser-pleaser.git
synced 2026-01-13 21:21:03 +00:00
chore: working releasable commits
This commit is contained in:
parent
97c407f939
commit
74ea8fba17
11 changed files with 1416 additions and 0 deletions
59
cmd/rp/cmd/root.go
Normal file
59
cmd/rp/cmd/root.go
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
/*
|
||||
Copyright © 2024 Julian Tölle <oss@apricote.de>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
// rootCmd represents the base command when called without any subcommands
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "releaser-pleaser",
|
||||
Short: "A brief description of your application",
|
||||
Long: `A longer description that spans multiple lines and likely contains
|
||||
examples and usage of using your application. For example:
|
||||
|
||||
Cobra is a CLI library for Go that empowers applications.
|
||||
This application is a tool to generate the needed files
|
||||
to quickly create a Cobra application.`,
|
||||
// Uncomment the following line if your bare application
|
||||
// has an action associated with it:
|
||||
// Run: func(cmd *cobra.Command, args []string) { },
|
||||
}
|
||||
|
||||
// Execute adds all child commands to the root command and sets flags appropriately.
|
||||
// This is called by main.main(). It only needs to happen once to the rootCmd.
|
||||
func Execute() {
|
||||
err := rootCmd.Execute()
|
||||
if err != nil {
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
func init() {
|
||||
// Here you will define your flags and configuration settings.
|
||||
// Cobra supports persistent flags, which, if defined here,
|
||||
// will be global for your application.
|
||||
|
||||
// rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.releaser-pleaser.yaml)")
|
||||
|
||||
// Cobra also supports local flags, which will only run
|
||||
// when this action is called directly.
|
||||
rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle")
|
||||
}
|
||||
75
cmd/rp/cmd/run.go
Normal file
75
cmd/rp/cmd/run.go
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
/*
|
||||
Copyright © 2024 Julian Tölle
|
||||
*/
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
|
||||
"github.com/go-git/go-git/v5"
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
rp "github.com/apricote/releaser-pleaser"
|
||||
)
|
||||
|
||||
// runCmd represents the run command
|
||||
var runCmd = &cobra.Command{
|
||||
Use: "run",
|
||||
RunE: run,
|
||||
}
|
||||
|
||||
var (
|
||||
flagForge string
|
||||
flagRepo string
|
||||
)
|
||||
|
||||
func init() {
|
||||
rootCmd.AddCommand(runCmd)
|
||||
|
||||
// Here you will define your flags and configuration settings.
|
||||
|
||||
runCmd.PersistentFlags().StringVar(&flagForge, "forge", "", "")
|
||||
runCmd.PersistentFlags().StringVar(&flagRepo, "repo", "", "")
|
||||
}
|
||||
|
||||
func run(cmd *cobra.Command, args []string) error {
|
||||
var f rp.Forge
|
||||
|
||||
forgeOptions := rp.ForgeOptions{
|
||||
Repository: flagRepo,
|
||||
}
|
||||
|
||||
switch flagForge {
|
||||
case "gitlab":
|
||||
f = rp.NewGitLab(forgeOptions)
|
||||
case "github":
|
||||
f = rp.NewGitHub(forgeOptions)
|
||||
}
|
||||
|
||||
log.Println("Repo URL: " + f.RepoURL())
|
||||
|
||||
//repo, err := git.Clone(memory.NewStorage(), nil, &git.CloneOptions{
|
||||
// URL: .RepoURL(),
|
||||
// SingleBranch: true,
|
||||
// Depth: CommitSearchDepth,
|
||||
//})
|
||||
repo, err := git.PlainOpen("~/git/listory")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
commits, previousTag, err := rp.ReleasableCommits(repo)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, commit := range commits {
|
||||
title, _, _ := strings.Cut(commit.Message, "\n")
|
||||
fmt.Printf("%s %s\n", commit.Hash, title)
|
||||
}
|
||||
fmt.Printf("Previous Tag: %s\n", previousTag.Name)
|
||||
|
||||
return nil
|
||||
}
|
||||
25
cmd/rp/main.go
Normal file
25
cmd/rp/main.go
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
/*
|
||||
Copyright © 2024 Julian Tölle <oss@apricote.de>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/apricote/releaser-pleaser/cmd/rp/cmd"
|
||||
)
|
||||
|
||||
func main() {
|
||||
cmd.Execute()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue