Files
LazyPM/internal/app/initializer.go
Robin Olsen 3e9a903506 works now
2026-03-18 11:58:31 +01:00

46 lines
757 B
Go

package app
import (
"fmt"
"os"
"charm.land/huh/v2"
"github.com/LazyBachelor/LazyPM/internal/style"
)
type Initializer interface {
Init(path string) error
}
type InteractiveInitializer struct{}
func (i InteractiveInitializer) Init(path string) error {
_, err := os.Stat(path)
if err == nil {
return nil
}
if !os.IsNotExist(err) {
return err
}
var initialize bool
err = huh.NewForm(
huh.NewGroup(
huh.NewConfirm().
Title("PM is not initialized in this directory!").
Description("Do you want to initialize it here?").
Value(&initialize),
)).WithTheme(style.Base16Theme{}).WithAccessible(true).Run()
if err != nil {
return err
}
if !initialize {
return fmt.Errorf("project not initialized")
}
return nil
}