aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Fripost/Prompt.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Fripost/Prompt.pm')
-rwxr-xr-xlib/Fripost/Prompt.pm75
1 files changed, 41 insertions, 34 deletions
diff --git a/lib/Fripost/Prompt.pm b/lib/Fripost/Prompt.pm
index 514a0b7..b41f806 100755
--- a/lib/Fripost/Prompt.pm
+++ b/lib/Fripost/Prompt.pm
@@ -1,7 +1,6 @@
-#!/usr/bin/perl
+package Fripost::Prompt;
use 5.010_000;
-use warnings;
use strict;
=head1 NAME
@@ -18,26 +17,57 @@ use Exporter;
use IO::Prompt;
use String::MkPasswd qw/mkpasswd/;
-our @EXPORT = qw(prompt_password prompt_username);
+our @EXPORT = qw(confirm_or_abort fix_username prompt_email prompt_password);
+our @ISA = qw(Exporter);
+
+sub confirm_or_abort {
+ my ($msg) = @_;
+ $msg //= "Is this OK? [no will abort] ";
+ my $confirmed = prompt $msg, -ynt;
+ unless ($confirmed) {
+ say "User aborted";
+ exit 1;
+ }
+}
sub fix_username {
my ($nam) = @_;
if ($nam !~ /\@/) {
$nam .= '@fripost.org';
- say "Using $nam";
+ say "Using username: $nam";
}
return $nam;
}
+sub prompt_email {
+ my ($msg, $is_username) = @_;
+ $msg //= "Enter email: ";
+ my $email;
+ while (not defined $email) {
+ $email = prompt $msg;
+
+ if ($is_username) {
+ $email = fix_username($email)
+ }
+
+ if (!Email::Valid->address($email)) {
+ undef $email;
+ say "This is not a valid e-mail address. Try again."
+ }
+ }
+ return $email;
+
+}
+
sub prompt_password {
- my ($prompt, $prompt2) = @_;
- $prompt //= "Enter new password (blank for random): ";
- $prompt2 //= "Enter new password again (blank for random): ";
+ my ($msg, $msg2) = @_;
+ $msg //= "Enter new password (blank for random): ";
+ $msg2 //= "Enter new password again (blank for random): ";
my $password;
while (not defined $password) {
- $password = prompt $prompt, -e => '*';
- my $confirm = prompt $prompt2, -e => '*';
+ $password = prompt $msg, -e => '*';
+ my $confirm = prompt $msg2, -e => '*';
unless ($password eq $confirm) {
undef $password;
say "Passwords do not match";
@@ -50,32 +80,9 @@ sub prompt_password {
-minnum => 2,
-minspecial => 2,
);
- say "Generated password: $password";
- }
- return smd5($password);
-}
-
-sub prompt_username {
- my $prompt = shift;
- $prompt //= "Enter username: ";
- my $nam;
- while (not defined $nam) {
- $nam = prompt $prompt;
- $nam = fix_username($nam);
- if (!Email::Valid->address($nam)) {
- undef $nam;
- say "This is not a valid e-mail address. Try again."
- }
- }
- return $nam;
-}
-
-sub ask_if_ok_or_abort {
- my $confirmed = prompt "Is this OK? [no will abort]", -ynt;
- unless ($confirmed) {
- say "User aborted";
- exit 1;
+ say "Using password: $password";
}
+ return $password;
}
=head1 AUTHOR