Skip to content

Commit 0aebb2e

Browse files
authored
Merge pull request #13 from stuartleeks/sl/template-config-hint
Show message if not template paths configured
2 parents 3672601 + 5f0ffd1 commit 0aebb2e

6 files changed

Lines changed: 43 additions & 12 deletions

File tree

.vscode/launch.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"name": "Launch",
9+
"type": "go",
10+
"request": "launch",
11+
"mode": "auto",
12+
"program": "${workspaceFolder}/cmd/devcontainer",
13+
"env": {},
14+
"args": ["template", "list"]
15+
},
16+
{
17+
"name": "Connect to server",
18+
"type": "go",
19+
"request": "attach",
20+
"mode": "remote",
21+
"remotePath": "${workspaceFolder}",
22+
"port": 2345,
23+
"host": "127.0.0.1",
24+
},
25+
]
26+
}

cmd/devcontainer/devcontainer.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,6 @@ func createExecCommand() *cobra.Command {
117117
}
118118
devcontainers, err := devcontainers.ListDevcontainers()
119119
if err != nil {
120-
fmt.Printf("Error: %v", err)
121120
os.Exit(1)
122121
}
123122
names := []string{}

cmd/devcontainer/main.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package main
22

33
import (
4-
"fmt"
5-
"os"
6-
74
"github.com/spf13/cobra"
85
"github.com/stuartleeks/devcontainer-cli/internal/pkg/update"
96
)
@@ -33,9 +30,5 @@ func main() {
3330
rootCmd.AddCommand(createUpdateCommand())
3431
rootCmd.AddCommand(createVersionCommand())
3532

36-
err := rootCmd.Execute()
37-
if err != nil {
38-
fmt.Printf("Error running command:\n\t%s\n", err)
39-
os.Exit(1)
40-
}
33+
_ = rootCmd.Execute()
4134
}

cmd/devcontainer/template.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ func createTemplateAddCommand() *cobra.Command {
8686
}
8787
templates, err := devcontainers.GetTemplates()
8888
if err != nil {
89-
fmt.Printf("Error: %v", err)
9089
os.Exit(1)
9190
}
9291
names := []string{}
@@ -146,7 +145,6 @@ func createTemplateAddLinkCommand() *cobra.Command {
146145
}
147146
templates, err := devcontainers.GetTemplates()
148147
if err != nil {
149-
fmt.Printf("Error: %v", err)
150148
os.Exit(1)
151149
}
152150
names := []string{}

internal/pkg/devcontainers/template.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ package devcontainers
22

33
import (
44
"fmt"
5-
"github.com/stuartleeks/devcontainer-cli/internal/pkg/config"
65
"io/ioutil"
76
"os"
87
"path/filepath"
8+
9+
"github.com/stuartleeks/devcontainer-cli/internal/pkg/config"
10+
"github.com/stuartleeks/devcontainer-cli/internal/pkg/errors"
911
)
1012

1113
// DevcontainerTemplate holds info on templates for list/add etc
@@ -34,6 +36,9 @@ func GetTemplateByName(name string) (*DevcontainerTemplate, error) {
3436
func GetTemplates() ([]DevcontainerTemplate, error) {
3537
templates := []DevcontainerTemplate{}
3638
folders := config.GetTemplateFolders()
39+
if len(folders) == 0 {
40+
return []DevcontainerTemplate{}, &errors.StatusError{Message: "No template folders configured - see https://github.com/stuartleeks/devcontainer-cli/#working-with-devcontainer-templates"}
41+
}
3742
for _, folder := range folders {
3843
folder := os.ExpandEnv(folder)
3944
newTemplates, err := getTemplatesFromFolder(folder)

internal/pkg/errors/errors.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package errors
2+
3+
var _ error = &StatusError{}
4+
5+
// StatusError is used to return informational errors
6+
type StatusError struct {
7+
Message string
8+
}
9+
10+
func (e *StatusError) Error() string { return e.Message }

0 commit comments

Comments
 (0)