Skip to content

Commit

Permalink
feat: remove urfave cli framework (#74)
Browse files Browse the repository at this point in the history
Resolves #72 

Signed-off-by: Junjie Gao <[email protected]>
  • Loading branch information
JeyJeyGao authored Mar 1, 2023
1 parent e16ed5b commit f0c97ba
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 102 deletions.
34 changes: 4 additions & 30 deletions cmd/notation-azure-kv/key.go
Original file line number Diff line number Diff line change
@@ -1,53 +1,27 @@
package main

import (
"context"
"encoding/json"
"errors"
"fmt"
"io"
"os"

"github.com/Azure/notation-azure-kv/internal/signature"
"github.com/notaryproject/notation-go/plugin/proto"

"github.com/urfave/cli/v2"
)

var describeKeyCommand = &cli.Command{
Name: string(proto.CommandDescribeKey),
Usage: "Azure key description",
Action: runDescribeKey,
Flags: []cli.Flag{
&cli.StringFlag{
Name: "file",
Usage: "request json file",
TakesFile: true,
Hidden: true,
},
},
}

func runDescribeKey(ctx *cli.Context) error {
var r io.Reader
if f := ctx.String("file"); f != "" {
var err error
r, err = os.Open(f)
if err != nil {
return err
}
} else {
r = os.Stdin
}
func runDescribeKey(ctx context.Context) error {
var req proto.DescribeKeyRequest
err := json.NewDecoder(r).Decode(&req)
err := json.NewDecoder(os.Stdin).Decode(&req)
if err != nil {
return proto.RequestError{
Code: proto.ErrorCodeValidation,
Err: fmt.Errorf("failed to unmarshal request input: %w", err),
}
}

resp, err := signature.Key(ctx.Context, &req)
resp, err := signature.Key(ctx, &req)
if err != nil {
var rerr proto.RequestError
if errors.As(err, &rerr) {
Expand Down
49 changes: 38 additions & 11 deletions cmd/notation-azure-kv/main.go
Original file line number Diff line number Diff line change
@@ -1,27 +1,35 @@
package main

import (
"context"
"encoding/json"
"errors"
"fmt"
"os"

"github.com/Azure/notation-azure-kv/internal/version"
"github.com/notaryproject/notation-go/plugin/proto"
"github.com/urfave/cli/v2"
)

func main() {
app := &cli.App{
Name: "notation-azure-kv",
Usage: "Notation - Notary V2 Azure KV plugin",
Version: version.GetVersion(),
Commands: []*cli.Command{
metadataCommand,
signCommand,
describeKeyCommand,
},
if len(os.Args) < 2 {
help()
return
}
if err := app.Run(os.Args); err != nil {
ctx := context.Background()
var err error
switch proto.Command(os.Args[1]) {
case proto.CommandGetMetadata:
err = runGetMetadata()
case proto.CommandDescribeKey:
err = runDescribeKey(ctx)
case proto.CommandGenerateSignature:
err = runSign(ctx)
default:
err = fmt.Errorf("invalid command: %s", os.Args[1])
}

if err != nil {
var reer proto.RequestError
if !errors.As(err, &reer) {
err = proto.RequestError{
Expand All @@ -34,3 +42,22 @@ func main() {
os.Exit(1)
}
}

func help() {
fmt.Printf(`notation-azure-kv - Notation - Notary V2 Azure KV plugin
Usage:
notation-azure-kv <command>
Version:
%s
Commands:
describe-key Azure key description
generate-signature Sign artifacts with keys in Azure Key Vault
get-plugin-metadata Get plugin metadata
Documentation:
https://github.com/notaryproject/notaryproject/blob/v1.0.0-rc.2/specs/plugin-extensibility.md#plugin-contract
`, version.GetVersion())
}
22 changes: 3 additions & 19 deletions cmd/notation-azure-kv/metadata.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,8 @@ import (

"github.com/Azure/notation-azure-kv/internal/version"
"github.com/notaryproject/notation-go/plugin/proto"

"github.com/urfave/cli/v2"
)

var metadataCommand = &cli.Command{
Name: string(proto.CommandGetMetadata),
Usage: "Get plugin metadata",
Action: runGetMetadata,
Flags: []cli.Flag{
&cli.StringFlag{
Name: "file",
Usage: "request json file",
TakesFile: true,
Hidden: true,
},
},
}

var metadata []byte

func init() {
Expand All @@ -41,8 +25,8 @@ func init() {
}
}

func runGetMetadata(ctx *cli.Context) error {
func runGetMetadata() error {
// write response
os.Stdout.Write(metadata)
return nil
_, err := os.Stdout.Write(metadata)
return err
}
34 changes: 4 additions & 30 deletions cmd/notation-azure-kv/sign.go
Original file line number Diff line number Diff line change
@@ -1,53 +1,27 @@
package main

import (
"context"
"encoding/json"
"errors"
"fmt"
"io"
"os"

"github.com/Azure/notation-azure-kv/internal/signature"
"github.com/notaryproject/notation-go/plugin/proto"

"github.com/urfave/cli/v2"
)

var signCommand = &cli.Command{
Name: string(proto.CommandGenerateSignature),
Usage: "Sign artifacts with keys in Azure Key Vault",
Action: runSign,
Flags: []cli.Flag{
&cli.StringFlag{
Name: "file",
Usage: "request json file",
TakesFile: true,
Hidden: true,
},
},
}

func runSign(ctx *cli.Context) error {
var r io.Reader
if f := ctx.String("file"); f != "" {
var err error
r, err = os.Open(f)
if err != nil {
return err
}
} else {
r = os.Stdin
}
func runSign(ctx context.Context) error {
var req proto.GenerateSignatureRequest
err := json.NewDecoder(r).Decode(&req)
err := json.NewDecoder(os.Stdin).Decode(&req)
if err != nil {
return proto.RequestError{
Code: proto.ErrorCodeValidation,
Err: fmt.Errorf("failed to unmarshal request input: %w", err),
}
}

resp, err := signature.Sign(ctx.Context, &req)
resp, err := signature.Sign(ctx, &req)
if err != nil {
var rerr proto.RequestError
if errors.As(err, &rerr) {
Expand Down
4 changes: 0 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,18 @@ require (
github.com/Azure/azure-sdk-for-go/sdk/keyvault/azsecrets v0.11.0
github.com/notaryproject/notation-core-go v1.0.0-rc.2
github.com/notaryproject/notation-go v1.0.0-rc.3
github.com/urfave/cli/v2 v2.23.6
golang.org/x/crypto v0.5.0
)

require (
github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.0 // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
github.com/golang-jwt/jwt/v4 v4.4.3 // indirect
github.com/google/uuid v1.1.1 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect
github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/stretchr/testify v1.7.2 // indirect
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
golang.org/x/net v0.7.0 // indirect
golang.org/x/sys v0.5.0 // indirect
golang.org/x/text v0.7.0 // indirect
Expand Down
8 changes: 0 additions & 8 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.0 h1:Lg6BW0VPmCwcMl
github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.0/go.mod h1:9V2j0jn9jDEkCkv8w/bKTNppX/d0FVA1ud77xCIP4KA=
github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1 h1:oPdPEZFSbl7oSPEAIPMPBMUmiL+mqgzBJwM/9qYcwNg=
github.com/AzureAD/microsoft-authentication-library-for-go v0.8.1/go.mod h1:4qFor3D/HDsvBME35Xy9rwW9DecL+M2sNw1ybjPtwA0=
github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c=
Expand All @@ -33,15 +31,9 @@ github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXc
github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s=
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
github.com/urfave/cli/v2 v2.23.6 h1:iWmtKD+prGo1nKUtLO0Wg4z9esfBM4rAV4QRLQiEmJ4=
github.com/urfave/cli/v2 v2.23.6/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc=
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8=
golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE=
golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU=
golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
Expand Down

0 comments on commit f0c97ba

Please sign in to comment.