230 ret = cmd_list_users(args); |
230 ret = cmd_list_users(args); |
231 } else if(!strcasecmp(cmd, "remove-user")) { |
231 } else if(!strcasecmp(cmd, "remove-user")) { |
232 ret = cmd_remove_user(args); |
232 ret = cmd_remove_user(args); |
233 } else if(!strcasecmp(cmd, "edit-user")) { |
233 } else if(!strcasecmp(cmd, "edit-user")) { |
234 ret = cmd_edit_user(args); |
234 ret = cmd_edit_user(args); |
|
235 } else if(!strcasecmp(cmd, "set-master-password") || !strcasecmp(cmd, "set-master-pw")) { |
|
236 ret = cmd_set_master_password(args); |
235 } else if(!strcasecmp(cmd, "version") || !strcasecmp(cmd, "-version") |
237 } else if(!strcasecmp(cmd, "version") || !strcasecmp(cmd, "-version") |
236 || !strcasecmp(cmd, "--version")) { |
238 || !strcasecmp(cmd, "--version")) { |
237 fprintf(stderr, "dav %s\n", DAV_VERSION); |
239 fprintf(stderr, "dav %s\n", DAV_VERSION); |
238 } else if(!strcasecmp(cmd, "complete")) { |
240 } else if(!strcasecmp(cmd, "complete")) { |
239 ret = cmd_complete(args); |
241 ret = cmd_complete(args); |
331 fprintf(stderr, "\n"); |
333 fprintf(stderr, "\n"); |
332 fprintf(stderr, "Advanced commands:\n"); |
334 fprintf(stderr, "Advanced commands:\n"); |
333 fprintf(stderr, " versioncontrol list-versions checkout checkin uncheckout\n\n"); |
335 fprintf(stderr, " versioncontrol list-versions checkout checkin uncheckout\n\n"); |
334 fprintf(stderr, "Config commands:\n"); |
336 fprintf(stderr, "Config commands:\n"); |
335 fprintf(stderr, " add-repository remove-repository list-repositories repository-url\n"); |
337 fprintf(stderr, " add-repository remove-repository list-repositories repository-url\n"); |
336 fprintf(stderr, " add-user remove-user edit-user list-users\n"); |
338 fprintf(stderr, " add-user remove-user edit-user list-users set-master-password\n"); |
337 fprintf(stderr, " check-config\n"); |
339 fprintf(stderr, " check-config\n"); |
338 fprintf(stderr, "\n"); |
340 fprintf(stderr, "\n"); |
339 fprintf(stderr, |
341 fprintf(stderr, |
340 "Instead of an url you can pass a repository name " |
342 "Instead of an url you can pass a repository name " |
341 "with an optional path:\n"); |
343 "with an optional path:\n"); |
3169 int cmd_edit_user(CmdArgs *args) { |
3171 int cmd_edit_user(CmdArgs *args) { |
3170 return secretstore_cmd(args, FALSE, NULL, cmd_ss_edit_user, NULL); |
3172 return secretstore_cmd(args, FALSE, NULL, cmd_ss_edit_user, NULL); |
3171 } |
3173 } |
3172 |
3174 |
3173 |
3175 |
|
3176 static int cmd_ss_set_master_pw(CmdArgs *args, PwdStore *secrets, void *ud) { |
|
3177 char *new_master_pw = util_password_input("New master password: "); |
|
3178 int ret = pwdstore_setpassword(secrets, new_master_pw); |
|
3179 if(ret) { |
|
3180 fprintf(stderr, "Error: failed to set new master password\n"); |
|
3181 } |
|
3182 |
|
3183 ret = pwdstore_save(secrets); |
|
3184 if(ret) { |
|
3185 fprintf(stderr, "Error: saving srcrets store failed.\n"); |
|
3186 } |
|
3187 return ret; |
|
3188 } |
|
3189 |
|
3190 int cmd_set_master_password(CmdArgs *args) { |
|
3191 return secretstore_cmd(args, FALSE, NULL, cmd_ss_set_master_pw, NULL); |
|
3192 } |
|
3193 |
3174 static char** read_args_from_stdin(int *argc) { |
3194 static char** read_args_from_stdin(int *argc) { |
3175 // read stdin into buffer |
3195 // read stdin into buffer |
3176 UcxBuffer *in = ucx_buffer_new(NULL, 1024, UCX_BUFFER_AUTOEXTEND); |
3196 UcxBuffer *in = ucx_buffer_new(NULL, 1024, UCX_BUFFER_AUTOEXTEND); |
3177 ucx_stream_copy(stdin, in, (read_func)fread, (write_func)ucx_buffer_write); |
3197 ucx_stream_copy(stdin, in, (read_func)fread, (write_func)ucx_buffer_write); |
3178 |
3198 |