diff options
Diffstat (limited to 'lib')
-rwxr-xr-x | lib/Fripost/Prompt.pm | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/lib/Fripost/Prompt.pm b/lib/Fripost/Prompt.pm new file mode 100755 index 0000000..ad6f1ae --- /dev/null +++ b/lib/Fripost/Prompt.pm @@ -0,0 +1,71 @@ +#!/usr/bin/perl + +use 5.010_000; +use warnings; +use strict; + +=head1 NAME + +Prompt.pm - Lots of prompt helper functions + +=cut + +our $VERSION = '0.01'; + +use Data::Dumper; +use Email::Valid; +use Exporter; +use IO::Prompt; +use String::MkPasswd qw/mkpasswd/; + +our @EXPORT = qw(prompt_password prompt_username); + +sub prompt_password { + my $prompt = shift; + $prompt //= "Enter new password (blank for random): "; + my $password = prompt $prompt; + if (!length $password) { + $password = mkpasswd( + -length => 10, + -minnum => 2, + -minspecial => 2, + ); + say "Generated password: $password"; + } + return $password; +} + +sub prompt_username { + my $prompt = shift; + $prompt //= "Enter username: "; + my $username; + while (not defined $username) { + $username = prompt $prompt; + if (!($username =~ /\@/)) { + $username .= '@fripost.org'; + say "Using $username"; + } + if (!Email::Valid->address($username)) { + undef $username; + say "This is not a valid e-mail address. Try again." + } + } + return $username; +} + +=head1 AUTHOR + +Stefan Kangas C<< <skangas at skangas.se> >> + +=head1 COPYRIGHT + +Copyright 2010 Stefan Kangas. + +=head1 LICENSE + +This program is free software; you can redistribute it and/or modify it +under the same terms as perl itself. + +=cut + +1; # End of Prompt.pm |