github.com/kbehouse/nsc@v0.0.6/cmd/keys.go (about)

     1  /*
     2   * Copyright 2018-2019 The NATS Authors
     3   * Licensed under the Apache License, Version 2.0 (the "License");
     4   * you may not use this file except in compliance with the License.
     5   * You may obtain a copy of the License at
     6   *
     7   * http://www.apache.org/licenses/LICENSE-2.0
     8   *
     9   * Unless required by applicable law or agreed to in writing, software
    10   * distributed under the License is distributed on an "AS IS" BASIS,
    11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12   * See the License for the specific language governing permissions and
    13   * limitations under the License.
    14   */
    15  
    16  package cmd
    17  
    18  import (
    19  	"github.com/kbehouse/nsc/cmd/store"
    20  	"github.com/spf13/cobra"
    21  )
    22  
    23  var keysCmd = &cobra.Command{
    24  	Use:   "keys",
    25  	Short: "Manage keys for operators, accounts, and users",
    26  }
    27  
    28  func init() {
    29  	GetRootCmd().AddCommand(keysCmd)
    30  	keysCmd.AddCommand(createMigrateKeysCmd())
    31  }
    32  
    33  func createMigrateKeysCmd() *cobra.Command {
    34  	var cmd = &cobra.Command{
    35  		Use:   "migrate",
    36  		Short: "migrates keystore to new layout, original keystore is preserved",
    37  		RunE: func(cmd *cobra.Command, args []string) error {
    38  			migration, err := store.KeysNeedMigration()
    39  			if err != nil {
    40  				return err
    41  			}
    42  			if !migration {
    43  				cmd.Printf("keystore %#q does not need migration\n", AbbrevHomePaths(store.GetKeysDir()))
    44  				return nil
    45  			}
    46  
    47  			old, err := store.Migrate()
    48  			if err != nil {
    49  				return err
    50  			}
    51  			cmd.Printf("keystore %#q was migrated - old store was renamed to %#q - remove at your convenience\n",
    52  				AbbrevHomePaths(store.GetKeysDir()),
    53  				AbbrevHomePaths(old))
    54  
    55  			return nil
    56  		},
    57  	}
    58  
    59  	return cmd
    60  }