Merge pull request #382 from franciscocpg/feat/info
diff --git a/action/project_info.go b/action/project_info.go new file mode 100644 index 0000000..5e0995e --- /dev/null +++ b/action/project_info.go
@@ -0,0 +1,39 @@ +package action + +import ( + "bytes" + + "github.com/Masterminds/glide/msg" +) + +func Info(format string) { + conf := EnsureConfig() + var buffer bytes.Buffer + varInit := false + for _, var_format := range format { + if varInit { + switch var_format { + case 'n': + buffer.WriteString(conf.Name) + case 'd': + buffer.WriteString(conf.Description) + case 'h': + buffer.WriteString(conf.Home) + case 'l': + buffer.WriteString(conf.License) + default: + msg.Die("Invalid format %s", string(var_format)) + } + } else { + switch var_format { + case '%': + varInit = true + continue + default: + buffer.WriteString(string(var_format)) + } + } + varInit = false + } + msg.Puts(buffer.String()) +}
diff --git a/glide.go b/glide.go index c69952b..2981837 100644 --- a/glide.go +++ b/glide.go
@@ -596,6 +596,48 @@ }, }, { + Name: "info", + Usage: "Info prints information about this project", + Flags: []cli.Flag{ + cli.StringFlag{ + Name: "format, f", + Usage: `Format of the information wanted (required).`, + }, + }, + Description: `A format containing the text with replacement variables + has to be passed in. Those variables are: + + %n - name + %d - description + %h - homepage + %l - license + + For example, given a project with the following glide.yaml: + + package: foo + homepage: https://example.com + license: MIT + description: Some example description + + Then running the following commands: + + glide info -f %n + prints 'foo' + + glide info -f "License: %l" + prints 'License: MIT' + + glide info -f "%n - %d - %h - %l" + prints 'foo - Some example description - https://example.com - MIT'`, + Action: func(c *cli.Context) { + if c.IsSet("format") { + action.Info(c.String("format")) + } else { + cli.ShowCommandHelp(c, c.Command.Name) + } + }, + }, + { Name: "about", Usage: "Learn about Glide", Action: func(c *cli.Context) {