api,fn: entrypoint to return daemon version (#367)

This commit is contained in:
C Cirello
2016-12-01 16:50:49 +01:00
committed by Seif Lotfy سيف لطفي
parent 8cddfdb125
commit 688ffcf39f
4 changed files with 72 additions and 4 deletions

View File

@@ -79,6 +79,10 @@ $ fn routes create otherapp /hello iron/hello # create route
$ fn routes delete otherapp hello # delete route
/hello deleted
$ fn version # shows version both of client and server
Client version: 0.1.0
Server version: 0.1.21
```
## Application level configuration

View File

@@ -9,10 +9,12 @@ import (
"github.com/urfave/cli"
)
const fnversion = "0.1.39"
func main() {
app := cli.NewApp()
app.Name = "fn"
app.Version = "0.1.0"
app.Version = fnversion
app.Authors = []cli.Author{{Name: "iron.io"}}
app.Usage = "IronFunctions command line tools"
app.UsageText = `Check the manual at https://github.com/iron-io/functions/blob/master/fn/README.md
@@ -25,12 +27,13 @@ ENVIRONMENT VARIABLES:
build(),
bump(),
call(),
initFn(),
lambda(),
publish(),
push(),
routes(),
run(),
initFn(),
version(),
}
app.Run(os.Args)
}
@@ -38,7 +41,7 @@ ENVIRONMENT VARIABLES:
func resetBasePath(c *functions.Configuration) error {
apiURL := os.Getenv("API_URL")
if apiURL == "" {
apiURL = "http://localhost:8080/"
apiURL = "http://localhost:8080"
}
u, err := url.Parse(apiURL)

44
fn/version.go Normal file
View File

@@ -0,0 +1,44 @@
package main
import (
"fmt"
"net/url"
"os"
functions "github.com/iron-io/functions_go"
"github.com/urfave/cli"
)
func version() cli.Command {
r := versionCmd{VersionApi: functions.NewVersionApi()}
return cli.Command{
Name: "version",
Usage: "displays fn and functions daemon versions",
Action: r.version,
}
}
type versionCmd struct {
*functions.VersionApi
}
func (r *versionCmd) version(c *cli.Context) error {
apiURL := os.Getenv("API_URL")
if apiURL == "" {
apiURL = "http://localhost:8080"
}
u, err := url.Parse(apiURL)
if err != nil {
return err
}
r.Configuration.BasePath = u.String()
fmt.Println("Client version:", fnversion)
v, _, err := r.VersionGet()
if err != nil {
return err
}
fmt.Println("Server version", v.Version)
return nil
}