diff options
author | Darshan Shaligram <dshaligram@users.sourceforge.net> | 2011-01-29 10:58:12 +0530 |
---|---|---|
committer | Darshan Shaligram <dshaligram@users.sourceforge.net> | 2011-01-29 10:58:12 +0530 |
commit | ddca1db22c8931be5f279eedb53fb2fc68779b60 (patch) | |
tree | 845162856cb6870dc0a6edfb3484a146dcecfb6a /crawl-ref/source/util/mac-crawl-build-update-cdo | |
parent | 7639f16f4fd4355bd736667e27e5ea94a85634ea (diff) | |
download | crawl-ref-ddca1db22c8931be5f279eedb53fb2fc68779b60.tar.gz crawl-ref-ddca1db22c8931be5f279eedb53fb2fc68779b60.zip |
Fixes to the Mac build+upload script.
This should be replaced by a makefile eventually.
Diffstat (limited to 'crawl-ref/source/util/mac-crawl-build-update-cdo')
-rwxr-xr-x | crawl-ref/source/util/mac-crawl-build-update-cdo | 55 |
1 files changed, 43 insertions, 12 deletions
diff --git a/crawl-ref/source/util/mac-crawl-build-update-cdo b/crawl-ref/source/util/mac-crawl-build-update-cdo index 9e15dd2dd7..f7e1efadf2 100755 --- a/crawl-ref/source/util/mac-crawl-build-update-cdo +++ b/crawl-ref/source/util/mac-crawl-build-update-cdo @@ -10,6 +10,7 @@ use strict; use warnings; use Cwd; +use Getopt::Long; my $CRAWLDIR; @@ -26,6 +27,12 @@ my $REMOTE_HOST = 'crawl@crawl.develz.org'; my $SCP_PATH = "$REMOTE_HOST:/var/www/crawl.develz.org/htdocs/trunk"; my $CURRENTVERSION; +my $SKIP_BUILD; +my $SCP; +GetOptions("skip-build" => \$SKIP_BUILD, + "scp" => \$SCP) + or die "Bad command line\n"; + sub main() { $CRAWLDIR = discover_crawl_dir(); goto_dir($CRAWLDIR); @@ -33,22 +40,39 @@ sub main() { my $last_build_version = last_build_version(); update_git(); $CURRENTVERSION = current_version(); - if (!$last_build_version || $last_build_version ne $CURRENTVERSION) { - if ($last_build_version) { - say("[INFO] Last build: $last_build_version; current: $CURRENTVERSION"); - } - else { - say("[INFO] Current version: $CURRENTVERSION"); + + my $need_build = + !$last_build_version || $last_build_version ne $CURRENTVERSION; + + my $did_build; + my $did_scp; + if ($need_build) { + if (!$SKIP_BUILD) { + if ($last_build_version) { + say("[INFO] Last build: $last_build_version; current: $CURRENTVERSION"); + } else { + say("[INFO] Current version: $CURRENTVERSION"); + } + build_crawl(); + $did_build = 1; + package_build(); + save_build_version($CURRENTVERSION); } - build_crawl(); - my @binaries = package_build(); + } + + if ($need_build || $SCP) { + my @binaries = find_uploadable_binaries(); print("Zips: @binaries\n"); upload_binaries(@binaries); - - save_build_version($CURRENTVERSION); + $did_scp = 1; } - else { - say("[INFO] $CURRENTVERSION already built, nothing to do"); + + if (!$did_build && !$did_scp) { + if (!$need_build) { + say("[INFO] $CURRENTVERSION already built, nothing to do"); + } else { + say("[INFO] Nothing to do"); + } } } @@ -158,6 +182,13 @@ sub package_build() { return create_app_zips(); } +sub find_uploadable_binaries() { + my $zipglob = sprintf("$ZIPDIR/$ZIPNAMEFMT", "*", "*"); + my @zips = glob($zipglob); + @zips == 2 or die "[ERR] Can't find zips to upload: $zipglob\n"; + @zips +} + sub scp($$) { my ($src, $targ) = @_; sys_check("scp $src $targ"); |