github.com/nats-io/nsc/v2@v2.8.7-0.20240307184528-efd7023c6896/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/nats-io/nsc/v2/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 }