#!/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\"";

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 SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleExecutable</key>
	<string>$appname</string>
	<key>CFBundleName<key>
	<string>$appname</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
        <key>CFBundleVersion</key>
        <string>36</string>
	<key>CFBundleDevelopmentRegion</key>
	<string>English</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	
        <key>NOTE</key>
	<string>Please, do NOT change this file -- It was generated by make-app-package.</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 "mv \"../../../$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: $!";
 
# This can fail quite happily 
system "mv \"../../../../$appname.rsrc\" \"$appname.rsrc\"";
 
 
sub write_file {
    local ($filename, $contents) = @_;
    open(OUTPUT, ">$filename") or die "Can't create $filename: $!";
    print OUTPUT $contents;
    close OUTPUT;
}
