dev.stuconnolly.com / svn / safaritabs

  1. #! /usr/bin/perl -w
  2.  
  3. ## $Id: build-version.pl 224 2011-08-13 20:39:45Z stuart $
  4. ##
  5. ## Author:      Stuart Connolly (stuconnolly.com)
  6. ##              Copyright (c) 2011 Stuart Connolly. All rights reserved.
  7. ##
  8. ## Paramters:   <none>
  9. ##
  10. ## Description: Updates the application/bundle's Info.plist CFBundleVersion to match that of the current
  11. ##              Subversion revision.
  12.  
  13. use strict;
  14.  
  15. die "$0: Must be run from within Xcode. Exiting..." unless $ENV{"BUILT_PRODUCTS_DIR"};
  16.  
  17. my $revision = `svnversion -n ./`;
  18. my $info_plist = "$ENV{BUILT_PRODUCTS_DIR}/$ENV{INFOPLIST_PATH}";
  19.  
  20. my $version = $revision;
  21.  
  22. ($version =~ m/(\d+)[MS]*$/) && ($version = $1);
  23.  
  24. die "$0: No Subversion revision found. Exiting..." unless $version;
  25.  
  26. open(INFO_FH, "$info_plist") or die "$0: $info_plist: $!";
  27. my $info = join("", <INFO_FH>);
  28. close(INFO_FH);
  29.  
  30. $info =~ s/([\t ]+<key>CFBundleVersion<\/key>\n[\t ]+<string>).*?(<\/string>)/$1$version$2/;
  31.  
  32. open(INFO_FH, ">$info_plist") or die "$0: $info_plist: $!";
  33. print INFO_FH $info;
  34. close(INFO_FH);
  35.