1+ use clap:: Parser ;
12use metamesh_identity:: { generate_seed_identity, recover_from_mnemonic} ;
23
3- fn main ( ) {
4- let identity = generate_seed_identity ( ) ;
4+ #[ derive( Parser ) ]
5+ #[ command( name = "metamesh" ) ]
6+ #[ command( about = "MetaMesh CLI - Post-quantum cryptographic identity management" ) ]
7+ #[ command( version) ]
8+ struct Args {
9+ #[ command( subcommand) ]
10+ command : Commands ,
11+ }
512
6- println ! ( "🌱 Seed ID: {}" , identity. seed_id) ;
7- println ! ( "📝 Sentence: {}" , identity. mnemonic) ;
8- println ! (
9- "🔐 Private Key (base64): {}..." ,
10- & identity. private_key[ ..30 ]
11- ) ;
12- println ! ( "🔓 Public Key (base64): {}..." , & identity. public_key[ ..30 ] ) ;
13+ #[ derive( clap:: Subcommand ) ]
14+ enum Commands {
15+ /// Generate a new cryptographic identity
16+ Generate ,
17+ /// Recover identity from mnemonic phrase
18+ Recover {
19+ /// Mnemonic phrase to recover from
20+ mnemonic : String
21+ } ,
22+ }
1323
14- println ! ( " \n 🔁 Recovering from sentence..." ) ;
15- let recovered = recover_from_mnemonic ( & identity . mnemonic ) ;
24+ fn main ( ) {
25+ let args = Args :: parse ( ) ;
1626
17- println ! ( "✅ Recovered Seed ID: {}" , recovered. seed_id) ;
18- }
27+ match args. command {
28+ Commands :: Generate => {
29+ let identity = generate_seed_identity ( ) ;
30+
31+ println ! ( "🆔 New MetaMesh Identity Generated" ) ;
32+ println ! ( "================================" ) ;
33+ println ! ( "Seed ID: {}" , identity. seed_id) ;
34+ println ! ( "Mnemonic: {}" , identity. mnemonic) ;
35+ println ! ( "Public Key: {}..." , & identity. public_key[ ..32 ] ) ;
36+ println ! ( "\n ⚠️ Store the mnemonic phrase securely - it's needed for recovery!" ) ;
37+ }
38+ Commands :: Recover { mnemonic } => {
39+ println ! ( "🔄 Recovering identity from mnemonic..." ) ;
40+
41+ let recovered = recover_from_mnemonic ( & mnemonic) ;
42+
43+ println ! ( "✅ Identity Recovered Successfully" ) ;
44+ println ! ( "=================================" ) ;
45+ println ! ( "Seed ID: {}" , recovered. seed_id) ;
46+ println ! ( "Public Key: {}..." , & recovered. public_key[ ..32 ] ) ;
47+ }
48+ }
49+ }
0 commit comments