#!/usr/bin/perl

my $target = $ARGV[2];
my $pkg = $ARGV[0];

############################

QuitApp("Final Cut Pro");
QuitApp("Final Cut Pro HD");

MoveApp("Final Cut Pro", ".app", "$target/Applications", "$pkg/Contents/Resources/VersionTool", 4);

MoveApp("Final Cut Pro", "", "$target/Applications", "$pkg/Contents/Resources/VersionTool", 4);

exit(0);

####################################################################################

sub MoveApp
{
   my $APP = $_[0];
   my $EXT = $_[1];
   my $DIR = $_[2];
   my $VERSTOOL = $_[3];
   my $MAXVERS = $_[4];

   my $newName;
   my $vers;
   my $index = 1;
   my $sigVers;

   if (-e "$DIR/$APP$EXT")
   {
      open (TOOL, "\"$VERSTOOL\" \"$DIR/$APP$EXT\" |");
      $vers = <TOOL>;
      chop $vers;
      close TOOL;
      my $exit_value=$? >> 8;

      if (!$exit_value)
      {

         ($sigVers, $crap) = split(/\./, $vers);
         if ($sigVers < $MAXVERS)
         {
            $newName = $APP . " $vers" . $EXT;
            while (-e "$DIR/$newName")
            {
               $newName = $APP . " $vers." . $index . $EXT;
               $index++;
            }

            `/bin/mv "$DIR/$APP$EXT" "$DIR/$newName"`;
         }
      }
   }
}

sub QuitApp
{
    my $APP = $_[0];

    my $IS_RUNNING = 0;
    my $PID = 0;
    my $rest;

    open(PSOUT, "/bin/ps -awwx |");
    while( <PSOUT> ) {
       if( /$APP\.app/ ) {
           ($PID, $rest) = split(' ');
           $IS_RUNNING = 1;
       }
    }
    close(PSOUT);

    if(1 eq $IS_RUNNING) {
        open(ASOUT, "/usr/bin/osascript -e \'tell application \"$APP\"\' -e \'try\' -e \'quit\' -e \'on error\' -e \'return (\"force quit\")\' -e \'end try\' -e \'end tell\' |" );
        close(ASOUT);
    }
}
