From 38e864eaf1130db5daed4f2a5f5ce15dd39f82cc Mon Sep 17 00:00:00 2001 From: ehlxr Date: Wed, 20 Feb 2019 14:12:42 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=99=E7=82=B9=E6=9B=B4=E6=96=B0=EF=BC=9A20?= =?UTF-8?q?19-02-20=2014:12:42?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 11 ++++++--- cmd/binary.go | 56 ++++++++++++++++++++++++++++++++++++++++++++++ cmd/decimal.go | 56 ++++++++++++++++++++++++++++++++++++++++++++++ cmd/hexadecimal.go | 56 ++++++++++++++++++++++++++++++++++++++++++++++ cmd/octal.go | 56 ++++++++++++++++++++++++++++++++++++++++++++++ test/demo.json | 3 ++- test/key/test.key | 1 + 7 files changed, 235 insertions(+), 4 deletions(-) create mode 100644 cmd/binary.go create mode 100644 cmd/decimal.go create mode 100644 cmd/hexadecimal.go create mode 100644 cmd/octal.go create mode 100644 test/key/test.key diff --git a/Makefile b/Makefile index 6539afb..3e4030f 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: default init build install release dep get_deps clean build_amd64 build_386 upx +.PHONY: default init common-build install release dep get_deps common-clean build_amd64 build_386 upx # https://golang.org/doc/install/source#environment GOOS := $(shell go env | awk -F= '$$1=="GOOS" {print $$2}' | awk -F '"' '{print $$2}') # 此处 awk 需使用两个 $ @@ -9,6 +9,11 @@ PKG = # GOARCH := $(strip $(GOARCH)).exe # endif +# This rule is used to forward a target like "build" to "common-build". This +# allows a new "build" target to be defined in a Makefile which includes this +# one and override "common-build" without override warnings. +%: common-% ; + default: @echo "JWT info: please choose a target for 'make'" @echo "available target: init build install release dep get_deps clean build_amd64 build_386 upx" @@ -16,7 +21,7 @@ default: init: get-deps dep clean go install -ldflags "-s -w" -build: +common-build: @ go build -ldflags "-s -w" -o dist/jwt_$(strip $(GOOS))_$(strip $(if \ $(findstring windows,$(GOOS)),\ $(strip $(GOARCH)).exe,\ @@ -34,7 +39,7 @@ dep: get_deps: go get -u github.com/golang/dep/cmd/dep -clean: +common-clean: go clean -i rm -rf dist/jwt* jwt* diff --git a/cmd/binary.go b/cmd/binary.go new file mode 100644 index 0000000..a27258b --- /dev/null +++ b/cmd/binary.go @@ -0,0 +1,56 @@ +// Copyright © 2018 ehlxr +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package cmd + +import ( + "fmt" + + "github.com/spf13/cobra" +) + +// binaryCmd represents the binary command +var binaryCmd = &cobra.Command{ + Use: "b", + Short: "A brief description of your command", + Long: `A longer description that spans multiple lines and likely contains examples +and usage of using your command. For example: + +Cobra is a CLI library for Go that empowers applications. +This application is a tool to generate the needed files +to quickly create a Cobra application.`, + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("binary called") + }, +} + +func init() { + rootCmd.AddCommand(binaryCmd) + + // Here you will define your flags and configuration settings. + + // Cobra supports Persistent Flags which will work for this command + // and all subcommands, e.g.: + // binaryCmd.PersistentFlags().String("foo", "", "A help for foo") + + // Cobra supports local flags which will only run when this command + // is called directly, e.g.: + // binaryCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle") +} diff --git a/cmd/decimal.go b/cmd/decimal.go new file mode 100644 index 0000000..5765d9b --- /dev/null +++ b/cmd/decimal.go @@ -0,0 +1,56 @@ +// Copyright © 2018 ehlxr +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package cmd + +import ( + "fmt" + + "github.com/spf13/cobra" +) + +// decimalCmd represents the decimal command +var decimalCmd = &cobra.Command{ + Use: "d", + Short: "A brief description of your command", + Long: `A longer description that spans multiple lines and likely contains examples +and usage of using your command. For example: + +Cobra is a CLI library for Go that empowers applications. +This application is a tool to generate the needed files +to quickly create a Cobra application.`, + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("decimal called") + }, +} + +func init() { + rootCmd.AddCommand(decimalCmd) + + // Here you will define your flags and configuration settings. + + // Cobra supports Persistent Flags which will work for this command + // and all subcommands, e.g.: + // decimalCmd.PersistentFlags().String("foo", "", "A help for foo") + + // Cobra supports local flags which will only run when this command + // is called directly, e.g.: + // decimalCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle") +} diff --git a/cmd/hexadecimal.go b/cmd/hexadecimal.go new file mode 100644 index 0000000..4c2eb72 --- /dev/null +++ b/cmd/hexadecimal.go @@ -0,0 +1,56 @@ +// Copyright © 2018 ehlxr +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package cmd + +import ( + "fmt" + + "github.com/spf13/cobra" +) + +// hexadecimalCmd represents the hexadecimal command +var hexadecimalCmd = &cobra.Command{ + Use: "h", + Short: "A brief description of your command", + Long: `A longer description that spans multiple lines and likely contains examples +and usage of using your command. For example: + +Cobra is a CLI library for Go that empowers applications. +This application is a tool to generate the needed files +to quickly create a Cobra application.`, + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("hexadecimal called") + }, +} + +func init() { + rootCmd.AddCommand(hexadecimalCmd) + + // Here you will define your flags and configuration settings. + + // Cobra supports Persistent Flags which will work for this command + // and all subcommands, e.g.: + // hexadecimalCmd.PersistentFlags().String("foo", "", "A help for foo") + + // Cobra supports local flags which will only run when this command + // is called directly, e.g.: + // hexadecimalCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle") +} diff --git a/cmd/octal.go b/cmd/octal.go new file mode 100644 index 0000000..65e95e7 --- /dev/null +++ b/cmd/octal.go @@ -0,0 +1,56 @@ +// Copyright © 2018 ehlxr +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package cmd + +import ( + "fmt" + + "github.com/spf13/cobra" +) + +// octalCmd represents the octal command +var octalCmd = &cobra.Command{ + Use: "o", + Short: "A brief description of your command", + Long: `A longer description that spans multiple lines and likely contains examples +and usage of using your command. For example: + +Cobra is a CLI library for Go that empowers applications. +This application is a tool to generate the needed files +to quickly create a Cobra application.`, + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("octal called") + }, +} + +func init() { + rootCmd.AddCommand(octalCmd) + + // Here you will define your flags and configuration settings. + + // Cobra supports Persistent Flags which will work for this command + // and all subcommands, e.g.: + // octalCmd.PersistentFlags().String("foo", "", "A help for foo") + + // Cobra supports local flags which will only run when this command + // is called directly, e.g.: + // octalCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle") +} diff --git a/test/demo.json b/test/demo.json index 853c5cb..66f66a2 100644 --- a/test/demo.json +++ b/test/demo.json @@ -1,5 +1,6 @@ { "ceres.enncloud.cn/app.id": "SunAR6mmR", "ceres.enncloud.cn/namespace": "g-ceres", - "sub": "ceres.enncloud.cn:app:SunAR6mmR" + "sub": "ceres.enncloud.cn:app:SunAR6mmR", + "exp": 1549925200 } \ No newline at end of file diff --git a/test/key/test.key b/test/key/test.key new file mode 100644 index 0000000..b5c8648 --- /dev/null +++ b/test/key/test.key @@ -0,0 +1 @@ +jwt secret \ No newline at end of file