@@ -128,6 +128,7 @@ pub fn get_matches() -> ArgMatches {
128128 . long ( "index" )
129129 . help ( "OTP Code index" )
130130 . num_args ( 1 )
131+ . value_parser ( value_parser ! ( usize ) )
131132 . required ( true ) ,
132133 )
133134 . arg (
@@ -136,23 +137,23 @@ pub fn get_matches() -> ArgMatches {
136137 . long ( "issuer" )
137138 . help ( "OTP Code issuer" )
138139 . num_args ( 1 )
139- . required_unless_present_any ( [ "label" , "algorithm" , "digits" , "counter" ] ) ,
140+ . required_unless_present_any ( [ "label" , "algorithm" , "digits" , "counter" , "pin" , "change-secret" ] ) ,
140141 )
141142 . arg (
142143 Arg :: new ( "label" )
143144 . short ( 'l' )
144145 . long ( "label" )
145146 . help ( "OTP Code label" )
146147 . num_args ( 1 )
147- . required_unless_present_any ( [ "issuer" , "algorithm" , "digits" , "counter" ] ) ,
148+ . required_unless_present_any ( [ "issuer" , "algorithm" , "digits" , "counter" , "pin" , "change-secret" ] ) ,
148149 )
149150 . arg (
150151 Arg :: new ( "algorithm" )
151152 . short ( 'a' )
152153 . long ( "algorithm" )
153154 . help ( "OTP Code algorithm" )
154155 . num_args ( 1 )
155- . required_unless_present_any ( [ "label" , "issuer" , "digits" , "counter" ] )
156+ . required_unless_present_any ( [ "label" , "issuer" , "digits" , "counter" , "pin" , "change-secret" ] )
156157 . value_parser ( [ "SHA1" , "SHA256" , "SHA512" ] ) ,
157158 )
158159 . arg (
@@ -162,7 +163,7 @@ pub fn get_matches() -> ArgMatches {
162163 . help ( "OTP Code digits" )
163164 . num_args ( 1 )
164165 . value_parser ( value_parser ! ( u64 ) )
165- . required_unless_present_any ( [ "label" , "algorithm" , "issuer" , "counter" ] ) ,
166+ . required_unless_present_any ( [ "label" , "algorithm" , "issuer" , "counter" , "pin" , "change-secret" ] ) ,
166167 )
167168 . arg (
168169 Arg :: new ( "period" )
@@ -171,7 +172,7 @@ pub fn get_matches() -> ArgMatches {
171172 . help ( "OTP Code period" )
172173 . num_args ( 1 )
173174 . value_parser ( value_parser ! ( u64 ) )
174- . required_unless_present_any ( [ "label" , "algorithm" , "issuer" , "counter" ] ) ,
175+ . required_unless_present_any ( [ "label" , "algorithm" , "issuer" , "counter" , "pin" , "change-secret" ] ) ,
175176 )
176177 . arg (
177178 Arg :: new ( "counter" )
@@ -180,14 +181,23 @@ pub fn get_matches() -> ArgMatches {
180181 . help ( "HOTP code counter (only for HOTP codes)" )
181182 . num_args ( 1 )
182183 . value_parser ( value_parser ! ( u64 ) )
183- . required_unless_present_any ( [ "label" , "algorithm" , "issuer" , "digits" ] ) ,
184+ . required_unless_present_any ( [ "label" , "algorithm" , "issuer" , "digits" , "pin" , "change-secret" ] ) ,
185+ )
186+ . arg (
187+ Arg :: new ( "pin" )
188+ . short ( 'p' )
189+ . long ( "pin" )
190+ . help ( "Code pin (for Yandex and MOTP)" )
191+ . num_args ( 1 )
192+ . required_unless_present_any ( [ "label" , "algorithm" , "issuer" , "digits" , "counter" , "change-secret" ] ) ,
184193 )
185194 . arg (
186195 Arg :: new ( "change-secret" )
187196 . short ( 'k' )
188197 . long ( "change-secret" )
189198 . help ( "Change the OTP code secret" )
190- . action ( ArgAction :: SetTrue ) ,
199+ . action ( ArgAction :: SetTrue )
200+ . required_unless_present_any ( [ "label" , "algorithm" , "issuer" , "digits" , "counter" , "pin" ] ) ,
191201 ) ,
192202 )
193203 . subcommand (
0 commit comments