Files
rph/cmd/templatefetch.go
Squibid 12cefa9092 feat: inital commit
- added template subcmd which generates frc project templates
2025-10-14 23:48:14 -04:00

61 lines
1.7 KiB
Go

package cmd
import (
"fmt"
"rph/cmd/template"
"github.com/spf13/cobra"
)
// templatefetchCmd represents the template fetch command
var templatefetchCmd = &cobra.Command{
Use: "fetch",
Short: "Fetch the template archive which is used for generating templates.",
Long: `Fetch the template archive which is used for generating templates.
Examples:
rph template fetch -v latest # Install the latest version
rph template fetch -v v2025.1.1 # Switch to a specific version`,
RunE: func(cmd *cobra.Command, args []string) error {
force, err := cmd.Flags().GetBool("force")
if err != nil { return err }
version, err := cmd.Flags().GetString("version")
if err != nil { return err }
list, err := cmd.Flags().GetUint8("list")
if err != nil { return err }
getversion, err := cmd.Flags().GetBool("get-version")
if err != nil { return err }
if getversion {
v, err := template.LoadArchiveVersion()
if err != nil {
return err
}
fmt.Println(v)
return nil
}
if list > 0 {
versions := template.ListTemplateArchiveVersions(list)
for _, v := range versions {
fmt.Println(v)
}
return nil
}
template.Fetch(force, version)
return nil
},
}
func init() {
templateCmd.AddCommand(templatefetchCmd)
templatefetchCmd.Flags().Uint8P("list", "l", 0, "List all available template versions.")
templatefetchCmd.Flags().Lookup("list").NoOptDefVal = "10"
templatefetchCmd.Flags().BoolP("force", "f", false, "Force refetch the template archive.")
templatefetchCmd.Flags().StringP("version", "v", "keep", "Change the version of the template archive.")
templatefetchCmd.Flags().BoolP("get-version", "g", false, "Get the currently installed version of the template archive.")
}