diff --git a/README.md b/README.md index 8e3630b..1f5c2d1 100644 --- a/README.md +++ b/README.md @@ -44,18 +44,6 @@ makeshift list # list files store in the template directory with a specified host makeshift list --host http://localhost:5050 --path templates - -# list all available plugins -makeshift list plugins - -# list specific plugin (for plugin info, use 'makeshift plugin info` instead) -makeshift list plugins jinja2 - -# list all available profiles -makeshift list profiles - -# list specific profile information -makeshift list profiles default ``` Then, we can start downloading some files or directories (as archives). @@ -76,12 +64,6 @@ makeshift download -p templates --plugins smd,jinja2 --profile compute # do everything in the above example but extract and remove archive makeshift download -p templates --plugins smd,jinja2 --profile compute -xr - -# download a raw plugin -makeshift download plugin jinja2 - -# download a profile -makeshift download profile default ``` > [!NOTE] diff --git a/cmd/list.go b/cmd/list.go index 0de2797..9f0a2f9 100644 --- a/cmd/list.go +++ b/cmd/list.go @@ -114,6 +114,7 @@ var listPluginsCmd = &cobra.Command{ Msg("response returned bad status") os.Exit(1) } + fmt.Println(string(body)) err = json.Unmarshal(body, &plugins) if err != nil { log.Error().Err(err). @@ -124,7 +125,7 @@ var listPluginsCmd = &cobra.Command{ for _, pluginName := range args { // make request to /list endpoint res, body, err = c.MakeRequest(client.HTTPEnvelope{ - Path: fmt.Sprintf("/plugins/%s/info", pluginName), + Path: fmt.Sprintf("/plugins/%s", pluginName), Method: http.MethodGet, }) if err != nil { diff --git a/internal/format/format.go b/internal/format/format.go index b753268..d38aa3e 100644 --- a/internal/format/format.go +++ b/internal/format/format.go @@ -11,9 +11,9 @@ import ( type DataFormat string const ( - List DataFormat = "list" - JSON DataFormat = "json" - YAML DataFormat = "yaml" + List DataFormat = "list" + JSON DataFormat = "json" + FORMAT_YAML DataFormat = "yaml" ) func (df DataFormat) String() string { @@ -22,12 +22,12 @@ func (df DataFormat) String() string { func (df *DataFormat) Set(v string) error { switch DataFormat(v) { - case List, JSON, YAML: + case List, JSON, FORMAT_YAML: *df = DataFormat(v) return nil default: return fmt.Errorf("must be one of %v", []DataFormat{ - List, JSON, YAML, + List, JSON, FORMAT_YAML, }) } } @@ -48,7 +48,7 @@ func Marshal(data interface{}, outFormat DataFormat) ([]byte, error) { } else { return bytes, nil } - case YAML: + case FORMAT_YAML: if bytes, err := yaml.Marshal(data); err != nil { return nil, fmt.Errorf("failed to marshal data into YAML: %w", err) } else { @@ -72,7 +72,7 @@ func Unmarshal(data []byte, v interface{}, inFormat DataFormat) error { if err := json.Unmarshal(data, v); err != nil { return fmt.Errorf("failed to unmarshal data into JSON: %w", err) } - case YAML: + case FORMAT_YAML: if err := yaml.Unmarshal(data, v); err != nil { return fmt.Errorf("failed to unmarshal data into YAML: %w", err) } @@ -98,7 +98,7 @@ func DataFormatFromFileExt(path string, defaultFmt DataFormat) DataFormat { return JSON case ".yaml", ".yml", ".YAML", ".YML": // The file is a YAML file - return YAML + return FORMAT_YAML } return defaultFmt } diff --git a/pkg/service/plugins.go b/pkg/service/plugins.go index 0dd516e..a8b0b6e 100644 --- a/pkg/service/plugins.go +++ b/pkg/service/plugins.go @@ -2,6 +2,7 @@ package service import ( "encoding/json" + "fmt" "io" "net/http" "os" @@ -34,6 +35,7 @@ func (s *Service) ListPlugins() http.HandlerFunc { http.Error(w, err.Error(), http.StatusInternalServerError) return } + fmt.Printf("%v", plugins) w.Write(body) } diff --git a/pkg/service/profiles.go b/pkg/service/profiles.go index edef023..ee7a0d3 100644 --- a/pkg/service/profiles.go +++ b/pkg/service/profiles.go @@ -64,6 +64,16 @@ func (s *Service) ListProfiles() http.HandlerFunc { } } +// func (s *Service) CreateProfiles() http.HandlerFunc { +// return func(w http.ResponseWriter, r *http.Request) { +// var ( +// path = chi.URLParam(r, "path") +// err error +// ) + +// } +// } + func (s *Service) GetProfile() http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { var ( diff --git a/pkg/service/service.go b/pkg/service/service.go index b75bd57..56e4cae 100644 --- a/pkg/service/service.go +++ b/pkg/service/service.go @@ -184,14 +184,15 @@ func LoadPluginsFromDir(dirpath string) (map[string]makeshift.Plugin, error) { // helper to check for valid extensions var hasValidExt = func(path string) bool { - return slices.Contains([]string{".so", ".dylib", ".dll"}, filepath.Ext(path)) + var validExts = []string{".so", ".dylib", ".dll"} + return slices.Contains(validExts, filepath.Ext(path)) } // walk all files in directory only loading *valid* plugins err = filepath.Walk(dirpath, func(path string, info fs.FileInfo, err error) error { // skip trying to load generator plugin if directory or error // only try loading if file has .so extension - if info.IsDir() || err != nil || !hasValidExt(path) { + if info.IsDir() || err != nil || hasValidExt(path) { return nil }