|
|
|
|
@@ -1,8 +1,8 @@
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"flag"
|
|
|
|
|
"os"
|
|
|
|
|
RPC "net/rpc"
|
|
|
|
|
|
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
|
|
|
|
|
|
@@ -12,7 +12,9 @@ import (
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
|
dbPath = flag.String("db", "./db", "db file path")
|
|
|
|
|
dbPath string
|
|
|
|
|
debug bool
|
|
|
|
|
rpcClient *RPC.Client
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// Create the root command
|
|
|
|
|
@@ -26,19 +28,9 @@ var listCmd = &cobra.Command{
|
|
|
|
|
Use: "list",
|
|
|
|
|
Short: "List all passwords",
|
|
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
|
//all, _ := cmd.Flags().GetBool("all")
|
|
|
|
|
dbPath, _ := cmd.Flags().GetString("db")
|
|
|
|
|
|
|
|
|
|
client, err := rpc.Receive(dbPath)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Errorf("dialing: %s\n", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var names []string
|
|
|
|
|
vault := "root"
|
|
|
|
|
err = client.Call("Query.GetAllNames", &vault, &names)
|
|
|
|
|
err := rpcClient.Call("Query.GetAllNames", &vault, &names)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Error(err)
|
|
|
|
|
@@ -56,19 +48,11 @@ var generateCmd = &cobra.Command{
|
|
|
|
|
Short: "Generate a Password",
|
|
|
|
|
Args: cobra.ExactArgs(1),
|
|
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
|
dbPath, _ := cmd.Flags().GetString("db")
|
|
|
|
|
client, err := rpc.Receive(dbPath)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Errorf("dialing: %s\n", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
serviceName := args[0]
|
|
|
|
|
|
|
|
|
|
var password *crypto.Password
|
|
|
|
|
np := rpc.VaultService{ Vault: "root", Service: serviceName }
|
|
|
|
|
err = client.Call("Query.Generate", &np, &password)
|
|
|
|
|
err := rpcClient.Call("Query.Generate", &np, &password)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Error(err)
|
|
|
|
|
@@ -83,19 +67,11 @@ var showCmd = &cobra.Command{
|
|
|
|
|
Short: "show a Password",
|
|
|
|
|
Args: cobra.ExactArgs(1),
|
|
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
|
dbPath, _ := cmd.Flags().GetString("db")
|
|
|
|
|
client, err := rpc.Receive(dbPath)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Errorf("dialing: %s\n", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
serviceName := args[0]
|
|
|
|
|
|
|
|
|
|
var password *crypto.Password
|
|
|
|
|
np := rpc.VaultService{ Vault: "root", Service: serviceName }
|
|
|
|
|
err = client.Call("Query.Get", &np, &password)
|
|
|
|
|
err := rpcClient.Call("Query.Get", &np, &password)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Error(err)
|
|
|
|
|
@@ -116,18 +92,10 @@ var addVaultCmd = &cobra.Command{
|
|
|
|
|
Short: "add a vault",
|
|
|
|
|
Args: cobra.ExactArgs(1),
|
|
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
|
dbPath, _ := cmd.Flags().GetString("db")
|
|
|
|
|
client, err := rpc.Receive(dbPath)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Errorf("dialing: %s\n", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
vault := args[0]
|
|
|
|
|
|
|
|
|
|
var placeholder int
|
|
|
|
|
err = client.Call("Query.AddVault", &vault, &placeholder)
|
|
|
|
|
err := rpcClient.Call("Query.AddVault", &vault, &placeholder)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Error(err)
|
|
|
|
|
@@ -143,18 +111,10 @@ var deleteVaultCmd = &cobra.Command{
|
|
|
|
|
Short: "delete a vault",
|
|
|
|
|
Args: cobra.ExactArgs(1),
|
|
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
|
dbPath, _ := cmd.Flags().GetString("db")
|
|
|
|
|
client, err := rpc.Receive(dbPath)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Errorf("dialing: %s\n", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
vault := args[0]
|
|
|
|
|
|
|
|
|
|
var placeholder int
|
|
|
|
|
err = client.Call("Query.DeleteVault", &vault, &placeholder)
|
|
|
|
|
err := rpcClient.Call("Query.DeleteVault", &vault, &placeholder)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Error(err)
|
|
|
|
|
@@ -169,16 +129,8 @@ var listVaultsCmd = &cobra.Command{
|
|
|
|
|
Use: "list",
|
|
|
|
|
Short: "list all vaults",
|
|
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
|
dbPath, _ := cmd.Flags().GetString("db")
|
|
|
|
|
client, err := rpc.Receive(dbPath)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Errorf("dialing: %s\n", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var reply []string
|
|
|
|
|
err = client.Call("Query.ListVaults", 0, &reply)
|
|
|
|
|
err := rpcClient.Call("Query.ListVaults", 0, &reply)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Error(err)
|
|
|
|
|
@@ -202,16 +154,14 @@ var infoCmd = &cobra.Command{
|
|
|
|
|
Use: "info",
|
|
|
|
|
Short: "print your own peerstring",
|
|
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
|
dbPath, _ := cmd.Flags().GetString("db")
|
|
|
|
|
client, err := rpc.Receive(dbPath)
|
|
|
|
|
var result *string
|
|
|
|
|
err := rpcClient.Call("Query.GetPeerString", 0, &result)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Errorf("dialing: %s\n", err)
|
|
|
|
|
Logger.Error(err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var result *string
|
|
|
|
|
err = client.Call("Query.GetPeerString", 0, &result)
|
|
|
|
|
Logger.Info(*result)
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
@@ -222,14 +172,6 @@ var addPeerCmd = &cobra.Command{
|
|
|
|
|
Short: "add a peer",
|
|
|
|
|
Args: cobra.RangeArgs(1, 2),
|
|
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
|
dbPath, _ := cmd.Flags().GetString("db")
|
|
|
|
|
client, err := rpc.Receive(dbPath)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Errorf("dialing: %s\n", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var vault string
|
|
|
|
|
var peerString string
|
|
|
|
|
|
|
|
|
|
@@ -243,7 +185,7 @@ var addPeerCmd = &cobra.Command{
|
|
|
|
|
|
|
|
|
|
var success *bool
|
|
|
|
|
np := rpc.VaultPeer{ Vault: vault, Peer: peerString }
|
|
|
|
|
err = client.Call("Query.AddPeer", &np, &success)
|
|
|
|
|
err := rpcClient.Call("Query.AddPeer", &np, &success)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Error(err)
|
|
|
|
|
@@ -263,14 +205,6 @@ var removePeerCmd = &cobra.Command{
|
|
|
|
|
Short: "remove a peer",
|
|
|
|
|
Args: cobra.RangeArgs(1, 2),
|
|
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
|
dbPath, _ := cmd.Flags().GetString("db")
|
|
|
|
|
client, err := rpc.Receive(dbPath)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Errorf("dialing: %s\n", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var vault string
|
|
|
|
|
var peerString string
|
|
|
|
|
|
|
|
|
|
@@ -284,7 +218,7 @@ var removePeerCmd = &cobra.Command{
|
|
|
|
|
|
|
|
|
|
var success *bool
|
|
|
|
|
np := rpc.VaultPeer{ Vault: vault, Peer: peerString }
|
|
|
|
|
err = client.Call("Query.DeletePeer", &np, &success)
|
|
|
|
|
err := rpcClient.Call("Query.DeletePeer", &np, &success)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Error(err)
|
|
|
|
|
@@ -304,14 +238,6 @@ var deleteCmd = &cobra.Command{
|
|
|
|
|
Short: "delete a Password",
|
|
|
|
|
Args: cobra.RangeArgs(1, 2),
|
|
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
|
|
dbPath, _ := cmd.Flags().GetString("db")
|
|
|
|
|
client, err := rpc.Receive(dbPath)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Errorf("dialing: %s\n", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var vault string
|
|
|
|
|
var serviceName string
|
|
|
|
|
|
|
|
|
|
@@ -325,7 +251,7 @@ var deleteCmd = &cobra.Command{
|
|
|
|
|
|
|
|
|
|
var success *bool
|
|
|
|
|
np := rpc.VaultService{ Vault: vault, Service: serviceName }
|
|
|
|
|
err = client.Call("Query.Delete", &np, &success)
|
|
|
|
|
err := rpcClient.Call("Query.Delete", &np, &success)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Error(err)
|
|
|
|
|
@@ -339,9 +265,9 @@ var deleteCmd = &cobra.Command{
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
|
rootCmd.PersistentFlags().String("db", "", "db path")
|
|
|
|
|
rootCmd.PersistentFlags().StringVar(&dbPath, "db", "", "db path")
|
|
|
|
|
rootCmd.PersistentFlags().BoolVar(&debug, "debug", false, "enable debug mode")
|
|
|
|
|
rootCmd.MarkPersistentFlagRequired("db")
|
|
|
|
|
|
|
|
|
|
peerCmd.AddCommand(addPeerCmd)
|
|
|
|
|
@@ -361,7 +287,18 @@ func init() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
InitLogger(false)
|
|
|
|
|
cobra.OnInitialize(func() {
|
|
|
|
|
var tmpClient *RPC.Client
|
|
|
|
|
tmpClient, err := rpc.Receive(dbPath)
|
|
|
|
|
rpcClient = tmpClient
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
Logger.Fatalf("dialing: %s\n", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
InitLogger(debug)
|
|
|
|
|
})
|
|
|
|
|
if err := rootCmd.Execute(); err != nil {
|
|
|
|
|
Logger.Error(err)
|
|
|
|
|
os.Exit(1)
|
|
|
|
|
|