diff options
Diffstat (limited to 'Tools/scripts/addport')
-rwxr-xr-x | Tools/scripts/addport | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/Tools/scripts/addport b/Tools/scripts/addport index 1aa311873ed0..1d9f75b1f86d 100755 --- a/Tools/scripts/addport +++ b/Tools/scripts/addport @@ -19,12 +19,13 @@ use strict; my %opts; -getopts('d:h:intu:v', \%opts); +getopts('d:h:ins:tu:v', \%opts); +my $distdir = $opts{'s'} if ($opts{'s'} ne ""); my $dir = $opts{'d'}; my $h = "freefall.FreeBSD.org"; $h = $opts{'h'} if ($opts{'h'} ne ""); -my $n = $opts{'n'}; +my $n = ""; $n = "-n " if $opts{'n'}; my $u = $ENV{USER}; $u = $opts{'u'} if ($opts{'u'} ne ""); my $more_testing = $opts{'t'}; @@ -53,7 +54,7 @@ if ($myhost ne lc($h)) { $ssh = ""; $repo = "/home/ncvs"; } -my $cvs = "cvs -d $repo"; +my $cvs = "cvs $n-d $repo"; # stuff that always happens when we start BEGIN { @@ -78,7 +79,13 @@ my @commands; if (!$vanilla) { push(@commands, "$make clean check-categories"); push(@commands, "$portlint"); - push(@commands, "$make FETCH_BEFORE_ARGS='-btsA' checksum"); + if (-d $distdir) { + push(@commands, "$make DISTDIR='$distdir' FETCH_BEFORE_ARGS='-btA' checksum"); + } elsif ($myhost eq "freefall.freebsd.org") { + push(@commands, "$make DISTDIR='$tmpdir' FETCH_BEFORE_ARGS='-btA' checksum"); + } else { + push(@commands, "$make FETCH_BEFORE_ARGS='-btA' checksum"); + } if ($more_testing) { push(@commands, "$make distclean"); push(@commands, "$make build"); @@ -92,7 +99,7 @@ if ($dir eq "") { } my @dirs = split(/\,/, $dir); -my $portname; +my $portname; my $module; foreach my $thisdir (@dirs) { # do some dir sanity checking first errx(1, "Please specify valid directories to import new ports from.") if $thisdir eq ""; @@ -134,9 +141,18 @@ foreach my $thisdir (@dirs) { chomp(my $cvs_category = $category); $cvs_category =~ s/-/_/g; - print "We're ready to commit.\n"; + $module = $portname; + if ($opts{'i'}) { + if (prompt("Port will be added as module $portname. OK? ")) { + do { + $module = query("Preferred module name for $module? "); + } while (prompt("Is the new module name $module OK? ")); + } + } + print "We're ready to commit.\n"; print "Source directory: $thisdir\n"; print "Target CVS Repo directory: ports/$category/$portname\n"; + print "Modules entry: $module --> ports/$category/$portname\n"; prompt("Adding port $portname to $category OK? ") && errx(1, "user abort requested"); chdir $tmpdir or err(1, "$tmpdir"); @@ -181,7 +197,7 @@ foreach my $thisdir (@dirs) { # commit the actual port. chdir "$tmpdir/$category" or err(1, "$tmpdir/$category"); system("$cvs ci Makefile $portname") && errx(1, "cvs commit failed, aborting."); - system("$ssh $perl ~mharo/bin/modulesupdate $portname ports/$category/$portname") && errx(1, "adding port to modules failed, aborting."); + system("$ssh $perl /usr/local/bin/modulesupdate $module ports/$category/$portname") && errx(1, "adding port to modules failed, aborting."); } print <<EOF; @@ -233,7 +249,7 @@ print <<EOF; authors: <will\@FreeBSD.org>, <mharo\@FreeBSD.org> SYNOPSIS - $0 [-h host] [-u user] [-intv] -d directory + $0 [-h host] [-u user] [-s distdir] [-intv] -d directory Where "directory" contains the comma-delimited list of root directories of new ports that you wish to @@ -243,13 +259,16 @@ SYNOPSIS OPTIONS -h host Use a cvshost besides freefall.FreeBSD.org -i Interactive mode; allow more control over - where things are placed. + where things are placed. This is required in + order to change things like module names etc. -n Do not actually commit anything. + -s distdir Use a different directory besides the default, + for downloading distfiles. This defaults to the + temporary directory set up on freefall. -u user Use a different username (default: $u). -t Do more port testing -v Plain vanilla "add it" - no testing at all. - This option overrides -t. It is currently - necessary in order to use this on freefall. + This option overrides -t in all cases. EXAMPLES % addport -n -d greatgame,helpfuldev,shoot |