feature: provide a version sub-command
A version sub-command is implemented. A local install target is added to Makefile, to set version from git at build. Fixes #840.
This commit is contained in:
5
Makefile
5
Makefile
@@ -16,6 +16,9 @@ internal/cmd/extract/extract:
|
|||||||
generate: gen_all_syscall
|
generate: gen_all_syscall
|
||||||
go generate
|
go generate
|
||||||
|
|
||||||
|
install:
|
||||||
|
GOFLAGS=-ldflags=-X=main.version=$$(git describe --tags) go install ./...
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
go test -v ./...
|
go test -v ./...
|
||||||
go test -race ./interp
|
go test -race ./interp
|
||||||
@@ -24,4 +27,4 @@ tests:
|
|||||||
install.sh: .goreleaser.yml
|
install.sh: .goreleaser.yml
|
||||||
godownloader --repo=traefik/yaegi -o install.sh .goreleaser.yml
|
godownloader --repo=traefik/yaegi -o install.sh .goreleaser.yml
|
||||||
|
|
||||||
.PHONY: check gen_all_syscall gen_tests generate_downloader internal/cmd/extract/extract
|
.PHONY: check gen_all_syscall gen_tests generate_downloader internal/cmd/extract/extract install
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ The commands are:
|
|||||||
help print usage information
|
help print usage information
|
||||||
run execute a Go program from source
|
run execute a Go program from source
|
||||||
test execute test functions in a Go package
|
test execute test functions in a Go package
|
||||||
|
version print version
|
||||||
|
|
||||||
Use "yaegi help <command>" for more information about a command.
|
Use "yaegi help <command>" for more information about a command.
|
||||||
|
|
||||||
@@ -37,6 +38,9 @@ func help(arg []string) error {
|
|||||||
return run([]string{"-h"})
|
return run([]string{"-h"})
|
||||||
case Test:
|
case Test:
|
||||||
return test([]string{"-h"})
|
return test([]string{"-h"})
|
||||||
|
case Version:
|
||||||
|
fmt.Println("Usage: yaegi version")
|
||||||
|
return nil
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("help: invalid yaegi command: %v", cmd)
|
return fmt.Errorf("help: invalid yaegi command: %v", cmd)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,8 +106,11 @@ const (
|
|||||||
Help = "help"
|
Help = "help"
|
||||||
Run = "run"
|
Run = "run"
|
||||||
Test = "test"
|
Test = "test"
|
||||||
|
Version = "version"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var version = "devel" // This may be overwritten at build time.
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var cmd string
|
var cmd string
|
||||||
var err error
|
var err error
|
||||||
@@ -128,6 +131,8 @@ func main() {
|
|||||||
err = run(os.Args[2:])
|
err = run(os.Args[2:])
|
||||||
case Test:
|
case Test:
|
||||||
err = test(os.Args[2:])
|
err = test(os.Args[2:])
|
||||||
|
case Version:
|
||||||
|
fmt.Println(version)
|
||||||
default:
|
default:
|
||||||
// If no command is given, fallback to default "run" command.
|
// If no command is given, fallback to default "run" command.
|
||||||
// This allows scripts starting with "#!/usr/bin/env yaegi",
|
// This allows scripts starting with "#!/usr/bin/env yaegi",
|
||||||
|
|||||||
Reference in New Issue
Block a user