allow setting vault for password generate/list/delete
This commit is contained in:
@@ -17,6 +17,20 @@ var (
|
||||
rpcClient *RPC.Client
|
||||
)
|
||||
|
||||
|
||||
func parseSingleArgWithOptionalVault(args []string) (vault string, arg string){
|
||||
if len(args) == 1 {
|
||||
vault = "root"
|
||||
arg = args[0]
|
||||
} else {
|
||||
vault = args[0]
|
||||
arg = args[1]
|
||||
}
|
||||
|
||||
return vault, arg
|
||||
}
|
||||
|
||||
|
||||
// Create the root command
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "ppass",
|
||||
@@ -25,11 +39,17 @@ var rootCmd = &cobra.Command{
|
||||
|
||||
// Create the 'list' subcommand
|
||||
var listCmd = &cobra.Command{
|
||||
Use: "list",
|
||||
Use: "list [vault]",
|
||||
Short: "List all passwords",
|
||||
Args: cobra.RangeArgs(0, 1),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
var names []string
|
||||
vault := "root"
|
||||
|
||||
if len(args) == 1 {
|
||||
vault = args[0]
|
||||
}
|
||||
|
||||
var names []string
|
||||
err := rpcClient.Call("Query.GetAllNames", &vault, &names)
|
||||
|
||||
if err != nil {
|
||||
@@ -46,12 +66,12 @@ var listCmd = &cobra.Command{
|
||||
var generateCmd = &cobra.Command{
|
||||
Use: "generate",
|
||||
Short: "Generate a Password",
|
||||
Args: cobra.ExactArgs(1),
|
||||
Args: cobra.RangeArgs(1, 2),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
serviceName := args[0]
|
||||
vault, serviceName := parseSingleArgWithOptionalVault(args)
|
||||
|
||||
var password *crypto.Password
|
||||
np := rpc.VaultService{ Vault: "root", Service: serviceName }
|
||||
np := rpc.VaultService{ Vault: vault, Service: serviceName }
|
||||
err := rpcClient.Call("Query.Generate", &np, &password)
|
||||
|
||||
if err != nil {
|
||||
@@ -65,12 +85,12 @@ var generateCmd = &cobra.Command{
|
||||
var showCmd = &cobra.Command{
|
||||
Use: "show",
|
||||
Short: "show a Password",
|
||||
Args: cobra.ExactArgs(1),
|
||||
Args: cobra.RangeArgs(1, 2),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
serviceName := args[0]
|
||||
vault, serviceName := parseSingleArgWithOptionalVault(args)
|
||||
|
||||
var password *crypto.Password
|
||||
np := rpc.VaultService{ Vault: "root", Service: serviceName }
|
||||
np := rpc.VaultService{ Vault: vault, Service: serviceName }
|
||||
err := rpcClient.Call("Query.Get", &np, &password)
|
||||
|
||||
if err != nil {
|
||||
@@ -172,16 +192,7 @@ var addPeerCmd = &cobra.Command{
|
||||
Short: "add a peer",
|
||||
Args: cobra.RangeArgs(1, 2),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
var vault string
|
||||
var peerString string
|
||||
|
||||
if len(args) == 1 {
|
||||
vault = "root"
|
||||
peerString = args[0]
|
||||
} else {
|
||||
vault = args[0]
|
||||
peerString = args[1]
|
||||
}
|
||||
vault, peerString := parseSingleArgWithOptionalVault(args)
|
||||
|
||||
var success *bool
|
||||
np := rpc.VaultPeer{ Vault: vault, Peer: peerString }
|
||||
@@ -205,16 +216,7 @@ var removePeerCmd = &cobra.Command{
|
||||
Short: "remove a peer",
|
||||
Args: cobra.RangeArgs(1, 2),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
var vault string
|
||||
var peerString string
|
||||
|
||||
if len(args) == 1 {
|
||||
vault = "root"
|
||||
peerString = args[0]
|
||||
} else {
|
||||
vault = args[0]
|
||||
peerString = args[1]
|
||||
}
|
||||
vault, peerString := parseSingleArgWithOptionalVault(args)
|
||||
|
||||
var success *bool
|
||||
np := rpc.VaultPeer{ Vault: vault, Peer: peerString }
|
||||
@@ -238,16 +240,7 @@ var deleteCmd = &cobra.Command{
|
||||
Short: "delete a Password",
|
||||
Args: cobra.RangeArgs(1, 2),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
var vault string
|
||||
var serviceName string
|
||||
|
||||
if len(args) == 1 {
|
||||
vault = "root"
|
||||
serviceName = args[0]
|
||||
} else {
|
||||
vault = args[0]
|
||||
serviceName = args[1]
|
||||
}
|
||||
vault, serviceName := parseSingleArgWithOptionalVault(args)
|
||||
|
||||
var success *bool
|
||||
np := rpc.VaultService{ Vault: vault, Service: serviceName }
|
||||
|
||||
Reference in New Issue
Block a user