From 83ea8759297b463dda9addca7e55cea94874d98d Mon Sep 17 00:00:00 2001 From: "Kyle J. McKay" Date: Mon, 17 Aug 2020 13:38:40 -0700 Subject: [PATCH] toolbox/projtool.pl: provide homepage option for create command Allow the home page URL to be set explicitly on the command line during create by using the new "--homepage" option. Signed-off-by: Kyle J. McKay --- toolbox/projtool.pl | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/toolbox/projtool.pl b/toolbox/projtool.pl index df3a708..f643168 100755 --- a/toolbox/projtool.pl +++ b/toolbox/projtool.pl @@ -50,6 +50,7 @@ Usage: %s [--quiet] --full-mirror mirror all refs --push[=] create a push project --desc= specify project description w/o prompt + --homepage= specify project homepage URL w/o prompt --defaults do no interactive prompting at all Using --no-password skips the prompts for password, using --no-owner skips the prompt for owner and using --mirror= @@ -431,12 +432,12 @@ sub cmd_list { sub cmd_create { my ($force, $noalternates, $orphanok, $optp, $nopasswd, $noowner, $defaults, $ispush, $pushusers, - $ismirror, $desc, $fullmirror); + $ismirror, $desc, $fullmirror, $homepage); parse_options( force => \$force, "no-alternates" => \$noalternates, orphan => \$orphanok, p => \$optp, "no-password" => \$nopasswd, "no-owner" => \$noowner, defaults => \$defaults, "push" => \$ispush, ":push" => \$pushusers, ":mirror" => \$ismirror, ":desc" => \$desc, - ":description" => \$desc, "full-mirror" => \$fullmirror); + ":description" => \$desc, "full-mirror" => \$fullmirror, ":homepage" => \$homepage); @ARGV == 1 or die_usage; !defined($pushusers) || defined($ispush) or $ispush = 1; defined($ismirror) && $ismirror =~ /^\s*$/ and die "--mirror url must not be empty\n"; @@ -588,16 +589,26 @@ sub cmd_create { } defined($desc) or $desc = $mirror ? "Mirror of $baseurl" : "Push project $projname"; $settings{desc} = $desc; - my $homepage = ""; - if (!$defaults) { - $homepage = prompt_or_die("Home page URL", ""); - if ($homepage ne "" && !valid_web_url($homepage)) { + my $checkhp = sub { + my $hpurl = shift; + unless (valid_web_url($hpurl)) { unless ($force) { - warn "Invalid home page URL: \$homepage\"\n"; - redo; + warn "Invalid home page URL: \"$hpurl\"\n"; + return undef; } warn "Allowing invalid home page URL with --force\n" unless $quiet; } + return $hpurl; + }; + if (defined($homepage)) { + $homepage =~ s/^\s+//; $homepage =~ s/\s+$//; + $homepage eq "" || &$checkhp($homepage) or + die "Invalid --homepage URL\n"; + } elsif (!$defaults) { + $homepage = prompt_or_die("Home page URL", ""); + $homepage =~ s/^\s+//; $homepage =~ s/\s+$//; + $homepage eq "" || &$checkhp($homepage) or redo; + $homepage = undef if $homepage eq ""; } $settings{hp} = $homepage; my $jsonurl = ""; -- 2.11.4.GIT