#!/usr/bin/perl -w

# use strict;

unless (@ARGV == 1) {
    print <<EOD;
Usage:
  make-app-package appname
EOD
    exit 1;
}

$appname = $ARGV[0];

system "rm -r \"$appname.app.old\"";
system "mv -f \"$appname.app\" \"$appname.app.old\"";

mkdir "$appname.app", 0777 or die "Can't create directory $appname.app: $!";
chdir "$appname.app" or die "Can't chdir to directory $appname.app: $!";

mkdir "Contents", 0777 or die "Can't create directory Contents: $!";
chdir "Contents" or die "Can't chdir to directory Contents: $!";

&write_file("PkgInfo", "APPL????");

&write_file("Info.plist", <<"EOD");
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>English</string>
	<key>CFBundleExecutable</key>
	<string>$appname</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>0.1</string>
	<key>NSMainNibFile</key>
	<string>MainMenu</string>
	<key>NSPrincipalClass</key>
	<string>NSApplication</string>
</dict>
</plist>
EOD

mkdir "MacOS", 0777 or die "Can't create directory MacOS: $!";
chdir "MacOS" or die "Can't chdir to directory MacOS: $!";

system "cp -f \"../../../$appname\" \"$appname\"";

chdir ".." or die "Can't chdir to directory ../Contents from MacOS: $!";

mkdir "Resources", 0777 or die "Can't create directory Resources: $!";
chdir "Resources" or die "Can't chdir to directory Resources: $!";

mkdir "English.lproj", 0777 or die "Can't create directory English.lproj: $!";
chdir "English.lproj" or die "Can't chdir to directory English.lproj: $!";

&write_file("Info.plist", <<"EOD");
 / *   L o c a l i z e d   v e r s i o n s   o f   I n f o . p l i s t   k e y s   * / 
 
 C F B u n d l e N a m e   =   "$appname " ; 
 C F B u n d l e S h o r t V e r s i o n S t r i n g   =   "$appname  v e r s i o n   0 . 1 " ; 
 C F B u n d l e G e t I n f o S t r i n g   =   "$appname  v e r s i o n   0 . 1 ,   C o p y r i g h t   2 0 0 3  by the author . " ; 
 N S H u m a n R e a d a b l e C o p y r i g h t   =   " C o p y r i g h t   2 0 0 3  the author . " ; 
EOD
 
system "cp -f -R \"../../../../$appname.nib\" \"$appname.nib\"";
 
 
sub write_file {
    local ($filename, $contents) = @_;
    open(OUTPUT, ">$filename") or die "Can't create $filename: $!";
    print OUTPUT $contents;
    close OUTPUT;
}
