fix: small fixes
This commit is contained in:
parent
01023c212b
commit
2c09577d0d
@ -6,6 +6,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
"git.front.kjuulh.io/kjuulh/scaffold/internal/fetcher"
|
||||||
"git.front.kjuulh.io/kjuulh/scaffold/internal/templates"
|
"git.front.kjuulh.io/kjuulh/scaffold/internal/templates"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
@ -14,11 +15,16 @@ func getScaffoldCommands(registryPath *string) ([]*cobra.Command, error) {
|
|||||||
var (
|
var (
|
||||||
ctx = context.Background()
|
ctx = context.Background()
|
||||||
ui = slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{}))
|
ui = slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{}))
|
||||||
|
fetcher = fetcher.NewFetcher()
|
||||||
templateIndexer = templates.NewTemplateIndexer()
|
templateIndexer = templates.NewTemplateIndexer()
|
||||||
templateLoader = templates.NewTemplateLoader()
|
templateLoader = templates.NewTemplateLoader()
|
||||||
fileWriter = templates.NewFileWriter().WithPromptOverride(promptOverrideFile)
|
fileWriter = templates.NewFileWriter().WithPromptOverride(promptOverrideFile)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if !fetcher.Available(registryPath) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
templateFiles, err := templateIndexer.Index(ctx, *registryPath, ui)
|
templateFiles, err := templateIndexer.Index(ctx, *registryPath, ui)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to index templates: %w", err)
|
return nil, fmt.Errorf("failed to index templates: %w", err)
|
||||||
|
@ -19,25 +19,41 @@ func NewFetcher() *Fetcher {
|
|||||||
return &Fetcher{}
|
return &Fetcher{}
|
||||||
}
|
}
|
||||||
|
|
||||||
const readWriteExec = 0o644
|
const readWriteExec = 0o744
|
||||||
|
|
||||||
const githubProject = "kjuulh/scaffold"
|
const githubProject = "kjuulh/scaffold"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
scaffoldFolder = os.ExpandEnv("$HOME/.scaffold")
|
scaffoldFolder = os.ExpandEnv("$HOME/.scaffold")
|
||||||
scaffoldClone = path.Join(scaffoldFolder, "upstream")
|
scaffoldClone = path.Join(scaffoldFolder, "upstream")
|
||||||
|
scaffoldRegistry = path.Join(scaffoldClone, "registry")
|
||||||
scaffoldCache = path.Join(scaffoldFolder, "scaffold.updates.json")
|
scaffoldCache = path.Join(scaffoldFolder, "scaffold.updates.json")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func (f *Fetcher) Available(registryPath *string) bool {
|
||||||
|
if *registryPath == "" {
|
||||||
|
if _, err := os.Stat(scaffoldClone); err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func (f *Fetcher) CloneRepository(ctx context.Context, registryPath *string, ui *slog.Logger) error {
|
func (f *Fetcher) CloneRepository(ctx context.Context, registryPath *string, ui *slog.Logger) error {
|
||||||
if err := os.MkdirAll(scaffoldFolder, readWriteExec); err != nil {
|
if err := os.MkdirAll(scaffoldFolder, readWriteExec); err != nil {
|
||||||
return fmt.Errorf("failed to create scaffold folder: %w", err)
|
return fmt.Errorf("failed to create scaffold folder: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if *registryPath == "" {
|
if *registryPath == "" {
|
||||||
|
// update the registry path as it is shared
|
||||||
|
*registryPath = scaffoldRegistry
|
||||||
if _, err := os.Stat(scaffoldClone); err != nil {
|
if _, err := os.Stat(scaffoldClone); err != nil {
|
||||||
if !errors.Is(err, os.ErrNotExist) {
|
if !errors.Is(err, os.ErrNotExist) {
|
||||||
return fmt.Errorf("failed to find the upstream folder: %w", err)
|
return fmt.Errorf("failed to find the upstream folder: %s, %w", scaffoldClone, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ui.Info("cloning upstream templates")
|
ui.Info("cloning upstream templates")
|
||||||
|
@ -53,7 +53,7 @@ func (t *TemplateIndexer) Index(ctx context.Context, scaffoldRegistryFolder stri
|
|||||||
|
|
||||||
templateDirEntries, err := os.ReadDir(scaffoldRegistryFolder)
|
templateDirEntries, err := os.ReadDir(scaffoldRegistryFolder)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to read templates dir: %w", err)
|
return nil, fmt.Errorf("failed to read templates dir: %s, %w", scaffoldRegistryFolder, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
Loading…
x
Reference in New Issue
Block a user