diff options
-rw-r--r-- | SBO-Lib/lib/SBO/Lib/Build.pm | 8 | ||||
-rw-r--r-- | SBO-Lib/lib/SBO/Lib/Readme.pm | 16 | ||||
-rw-r--r-- | SBO-Lib/lib/SBO/Lib/Repo.pm | 5 | ||||
-rwxr-xr-x | sboclean | 8 | ||||
-rwxr-xr-x | sboinstall | 5 | ||||
-rwxr-xr-x | sboremove | 19 | ||||
-rwxr-xr-x | sboupgrade | 5 |
7 files changed, 22 insertions, 44 deletions
diff --git a/SBO-Lib/lib/SBO/Lib/Build.pm b/SBO-Lib/lib/SBO/Lib/Build.pm index a0ff814..fced993 100644 --- a/SBO-Lib/lib/SBO/Lib/Build.pm +++ b/SBO-Lib/lib/SBO/Lib/Build.pm @@ -6,7 +6,7 @@ use warnings; our $VERSION = '2.0'; -use SBO::Lib::Util qw/ :const script_error get_sbo_from_loc get_arch check_multilib uniq %config in /; +use SBO::Lib::Util qw/ :const prompt script_error get_sbo_from_loc get_arch check_multilib uniq %config in /; use SBO::Lib::Tree qw/ get_sbo_location /; use SBO::Lib::Info qw/ get_sbo_version check_x32 get_requires /; use SBO::Lib::Download qw/ get_sbo_downloads get_dl_fns get_filename_from_link check_distfiles /; @@ -535,8 +535,7 @@ sub process_sbos { return \@failures, $exit if $args{NON_INT}; say "Unable to download/verify source file(s) for $sbo:"; say " $fail"; - print 'Do you want to proceed? [n] '; - if (<STDIN> =~ /^[yY]/) { + if (prompt('Do you want to proceed?' , default => 'no')) { next FIRST; } else { unlink for @symlinks; @@ -572,8 +571,7 @@ sub process_sbos { return \@failures, $exit if $count == @$todo; say "Failure encountered while building $sbo:"; say " $fail"; - print 'Do you want to proceed [n] '; - if (<STDIN> =~ /^[yY]/) { + if (prompt('Do you want to proceed?', default => 'no')) { next FIRST; } else { unlink for @symlinks; diff --git a/SBO-Lib/lib/SBO/Lib/Readme.pm b/SBO-Lib/lib/SBO/Lib/Readme.pm index c5fb95c..dddeb8d 100644 --- a/SBO-Lib/lib/SBO/Lib/Readme.pm +++ b/SBO-Lib/lib/SBO/Lib/Readme.pm @@ -6,7 +6,7 @@ use warnings; our $VERSION = '2.0'; -use SBO::Lib::Util qw/ script_error slurp open_read _ERR_OPENFH usage_error /; +use SBO::Lib::Util qw/ prompt script_error slurp open_read _ERR_OPENFH usage_error /; use SBO::Lib::Tree qw/ is_local /; use Exporter 'import'; @@ -55,13 +55,9 @@ sub ask_opts { script_error('ask_opts requires an argument') unless @_; my ($sbo, $readme) = @_; say "\n". $readme; - print "\nIt looks like $sbo has options; would you like to set any"; - print ' when the slackbuild is run? [n] '; - if (<STDIN> =~ /^[Yy]/) { + if (prompt("\nIt looks like $sbo has options; would you like to set any when the slackbuild is run?", default => 'no')) { my $ask = sub { - print "\nPlease supply any options here, or enter to skip: "; - chomp(my $opts = <STDIN>); - return() if $opts =~ /^\n/; + chomp(my $opts = prompt("\nPlease supply any options here, or enter to skip: ")); return $opts; }; my $kv_regex = qr/[A-Z0-9]+=[^\s]+(|\s([A-Z]+=[^\s]+){0,})/; @@ -96,8 +92,7 @@ sub ask_user_group { print "\nIt looks like this slackbuild requires the following"; say ' command(s) to be run first:'; say " # $_" for @$cmds; - print 'Shall I run them prior to building? [y] '; - return <STDIN> =~ /^[Yy\n]/ ? $cmds : undef; + return prompt('Shall I run them prior to building?', default => 'yes') ? $cmds : undef; } =head2 get_opts @@ -184,11 +179,10 @@ sub user_prompt { my $opts = 0; $opts = ask_opts($sbo, $readme) if get_opts($readme); print "\n". $readme unless $opts; - print "\nProceed with $sbo? [y]: "; # we have to return something substantial if the user says no so that we # can check the value of $cmds on the calling side. we should be able to # assume that 'N' will never be a valid command to run. - return 'N' unless <STDIN> =~ /^[Yy\n]/; + return 'N' unless prompt("\nProceed with $sbo?", default => 'yes'); return $cmds, $opts; } diff --git a/SBO-Lib/lib/SBO/Lib/Repo.pm b/SBO-Lib/lib/SBO/Lib/Repo.pm index b4205a6..e8e7c2e 100644 --- a/SBO-Lib/lib/SBO/Lib/Repo.pm +++ b/SBO-Lib/lib/SBO/Lib/Repo.pm @@ -6,7 +6,7 @@ use warnings; our $VERSION = '2.0'; -use SBO::Lib::Util qw/ %config usage_error get_slack_version script_error open_fh open_read in /; +use SBO::Lib::Util qw/ %config prompt usage_error get_slack_version script_error open_fh open_read in /; use Cwd; use File::Copy; @@ -338,8 +338,7 @@ C<$repo_path>, and if not, offer to run C<sbosnap fetch> for you. sub slackbuilds_or_fetch { unless (chk_slackbuilds_txt()) { say 'It looks like you haven\'t run "sbosnap fetch" yet.'; - print 'Would you like me to do this now? [y] '; - if (<STDIN> =~ /^[Yy\n]/) { + if (prompt("Would you like me to do this now?", default => 'yes')) { fetch_tree(); } else { say 'Please run "sbosnap fetch"'; @@ -13,7 +13,7 @@ use 5.16.0; use strict; use warnings FATAL => 'all'; -use SBO::Lib qw/ usage_error script_error in show_version %config /; +use SBO::Lib qw/ prompt usage_error script_error in show_version %config /; use File::Basename; use Getopt::Long qw(:config bundling); use File::Path qw(remove_tree); @@ -60,8 +60,7 @@ sub rm_full { script_error('rm_full requires an argument.') unless @_ == 1; my $full = shift; if ($interactive) { - print "Remove $full? [n] "; - return() unless <STDIN> =~ /^[Yy]/; + return() unless prompt("Remove $full?", default => 'no'); } unlink $full if -f $full; remove_tree($full) if -d $full; @@ -100,8 +99,7 @@ if ($clean_work) { my $tsbo = $SBO::Lib::tmpd; if ($env_tmp && !$interactive) { warn "This will remove the entire contents of $env_tmp\n"; - print "Proceed? [y] "; - remove_stuff($tsbo) if <STDIN> =~ /^[yY\n]/; + remove_stuff($tsbo) if prompt("Proceed?", default => 'yes'); } else { remove_stuff($tsbo); } @@ -13,7 +13,7 @@ use 5.16.0; use strict; use warnings FATAL => 'all'; -use SBO::Lib qw/ %config _ERR_OPENFH get_arch get_build_queue get_installed_cpans get_installed_packages get_sbo_location get_sbo_locations merge_queues open_fh print_failures process_sbos show_version slackbuilds_or_fetch slurp usage_error user_prompt /; +use SBO::Lib qw/ %config _ERR_OPENFH get_arch get_build_queue get_installed_cpans get_installed_packages get_sbo_location get_sbo_locations merge_queues open_fh print_failures process_sbos prompt show_version slackbuilds_or_fetch slurp usage_error user_prompt /; use Getopt::Long qw(:config bundling); use File::Basename; use JSON::PP; @@ -207,8 +207,7 @@ FIRST: for my $sbo (@$build_queue) { exit 0 if @{ $build_queue } == 0; say "\nInstall queue: " . join(' ', @$build_queue); unless ($non_int) { - print "\nAre you sure you wish to continue? [y]: "; - exit 0 unless <STDIN> =~ /^[Yy\n]/; + exit 0 unless prompt("\nAre you sure you wish to continue?", default => 'yes'); } if (defined $ctemp) { @@ -13,7 +13,7 @@ use 5.16.0; use strict; use warnings FATAL => 'all'; -use SBO::Lib qw/ get_inst_names get_installed_packages get_sbo_location get_build_queue merge_queues get_requires get_readme_contents show_version in /; +use SBO::Lib qw/ get_inst_names get_installed_packages get_sbo_location get_build_queue merge_queues get_requires get_readme_contents prompt show_version in /; use Getopt::Long qw(:config bundling); use File::Basename; @@ -145,8 +145,7 @@ FIRST: for my $remove (@$remove_queue) { # Check for %README% value and inform user. if ( $warnings{$remove} ) { say "It is recommended that you view the README before continuing."; - print "Display README now? [y]: "; - if (<STDIN> =~ /^[Yy\n]/) { + if (prompt("Display README now?", default => 'yes')) { my $readme = get_readme_contents(get_sbo_location($remove)); if (not defined $readme) { warn "Unable to open README for $remove.\n"; @@ -156,16 +155,9 @@ FIRST: for my $remove (@$remove_queue) { } } - # Determine default behavior for prompt - my $default = 'y'; - my $regex = "[Yy\n]"; - if ($needed) { - $default = 'n'; - $regex = "[Yy]"; - } + # Determine default behavior for prompt using $needed # Ask user to confirm removal - print "Remove $remove? [$default]: "; - if (<STDIN> =~ /^$regex/) { + if (prompt("Remove $remove?", default => $needed ? 'no' : 'yes')) { confirm_remove($remove); say " * Added to remove queue\n"; } else { @@ -186,8 +178,7 @@ if ($remove_count) { # Final confirmation unless ($non_int) { - print "\nAre you sure you want to continue? [n] : "; - unless (<STDIN> =~ /^[Yy]/) { + unless (prompt("\nAre you sure you want to continue?", default => 'no')) { say 'Exiting.'; exit 0; } @@ -13,7 +13,7 @@ use 5.16.0; use strict; use warnings FATAL => 'all'; -use SBO::Lib qw/ get_available_updates usage_error slackbuilds_or_fetch uniq get_sbo_location get_inst_names get_installed_packages get_build_queue get_sbo_locations merge_queues user_prompt process_sbos print_failures %config show_version /; +use SBO::Lib qw/ get_available_updates prompt usage_error slackbuilds_or_fetch uniq get_sbo_location get_inst_names get_installed_packages get_build_queue get_sbo_locations merge_queues user_prompt process_sbos print_failures %config show_version /; use Getopt::Long qw(:config bundling); use File::Basename; use File::Copy; @@ -200,8 +200,7 @@ FIRST: for my $sbo (@$upgrade_queue) { exit 0 unless exists $$upgrade_queue[0]; say "\nUpgrade queue: ". join(' ', @$upgrade_queue); unless ($non_int) { - print "\nAre you sure you wish to continue? [y]: "; - exit 0 unless <STDIN> =~ /^[Yy\n]/; + exit 0 unless prompt("\nAre you sure you wish to continue?", default => 'yes'); } my ($failures, $exit) = process_sbos( |