sbin/res/ant/bin/complete-ant-cmd.pl
author hamidouk
Tue, 29 Nov 2011 11:09:08 +0100
branchpopcorn-port
changeset 345 8a088f7daa66
parent 49 b77b10a21775
permissions -rw-r--r--
rollover over the interface buttons now works as expected. Also changed the width of the buttons to the correct size. Resized the width and height of the sprites to be the same as the boxes we display them in.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
     1
#!/usr/bin/perl
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
     2
#
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
     3
#  Licensed to the Apache Software Foundation (ASF) under one or more
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
     4
#  contributor license agreements.  See the NOTICE file distributed with
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
     5
#  this work for additional information regarding copyright ownership.
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
     6
#  The ASF licenses this file to You under the Apache License, Version 2.0
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
     7
#  (the "License"); you may not use this file except in compliance with
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
     8
#  the License.  You may obtain a copy of the License at
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
     9
#
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    10
#      http://www.apache.org/licenses/LICENSE-2.0
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    11
#
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    12
#  Unless required by applicable law or agreed to in writing, software
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    13
#  distributed under the License is distributed on an "AS IS" BASIS,
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    14
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    15
#  See the License for the specific language governing permissions and
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    16
#  limitations under the License.
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    17
#
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    18
# A script to allow Bash or Z-Shell to complete an Ant command-line.  
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    19
#
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    20
# To install for Bash 2.0 or better, add the following to ~/.bashrc:
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    21
# 
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    22
#     $ complete -C complete-ant-cmd ant build.sh
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    23
#
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    24
# To install for Z-Shell 2.5 or better, add the following to ~/.zshrc:
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    25
#
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    26
#     function ant_complete () {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    27
#         local args_line args
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    28
#         read -l args_line
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    29
#         set -A args $args_line
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    30
#         set -A reply $(COMP_LINE=$args_line complete-ant-cmd ${args[1]} $1)
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    31
#     }
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    32
#     compctl -K ant_complete ant build.sh
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    33
#     
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    34
# @author Mike Williams <mikew@cortexebusiness.com.au>
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    35
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    36
my $cmdLine = $ENV{'COMP_LINE'};
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    37
my $antCmd = $ARGV[0];
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    38
my $word = $ARGV[1];
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    39
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    40
my @completions;
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    41
if ($word =~ /^-/) {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    42
    list( restrict( $word, getArguments() ));
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    43
} elsif ($cmdLine =~ /-(f|buildfile)\s+\S*$/) {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    44
    list( getBuildFiles($word) );
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    45
} else {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    46
    list( restrict( $word, getTargets() ));
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    47
}
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    48
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    49
exit(0);
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    50
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    51
sub list {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    52
    for (@_) {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    53
        print "$_\n";
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    54
    }
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    55
}
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    56
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    57
sub restrict {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    58
    my ($word, @completions) = @_;
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    59
    grep( /^\Q$word\E/, @completions );
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    60
}
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    61
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    62
sub getArguments {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    63
    qw(-buildfile -debug -emacs -f -find -help -listener -logfile 
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    64
       -logger -projecthelp -quiet -verbose -version); 
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    65
}
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    66
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    67
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    68
sub getBuildFiles {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    69
    my ($word) = @_;
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    70
    grep( /\.xml$/, glob( "$word*" ));
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    71
}
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    72
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    73
sub getTargets {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    74
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    75
    # Look for build-file
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    76
    my $buildFile = 'build.xml';
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    77
    if ($cmdLine =~ /-(f|buildfile)\s+(\S+)/) {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    78
        $buildFile = $2;
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    79
    }
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    80
    return () unless (-f $buildFile);
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    81
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    82
    # Run "ant -projecthelp" to list targets.  Keep a cache of results in a
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    83
    # cache-file.
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    84
    my $cacheFile = $buildFile;
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    85
    $cacheFile =~ s|(.*/)?(.*)|${1}.ant-targets-${2}|;
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    86
    if ((!-e $cacheFile) || (-z $cacheFile) || (-M $buildFile) < (-M $cacheFile)) {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    87
        open( CACHE, '>'.$cacheFile ) || die "can\'t write $cacheFile: $!\n";
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    88
        open( HELP, "$antCmd -projecthelp -f '$buildFile'|" ) || return(); 
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    89
        my %targets;
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    90
        while( <HELP> ) {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    91
            if (/^\s+(\S+)/) {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    92
                $targets{$1}++;
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    93
            }
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    94
        }
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    95
        my @targets = sort keys %targets;
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    96
        for (@targets) { print CACHE "$_\n"; }
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    97
        return @targets;
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    98
    }
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
    99
    
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   100
    # Read the target-cache
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   101
    open( CACHE, $cacheFile ) || die "can\'t read $cacheFile: $!\n";
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   102
    my @targets;
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   103
    while (<CACHE>) {
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   104
        chop;
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   105
        s/\r$//;  # for Cygwin
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   106
        push( @targets, $_ );
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   107
    }
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   108
    close( CACHE );
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   109
    @targets;
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   110
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   111
}
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   112
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   113
b77b10a21775 ajouté ant dans le repo et modifié compil.bat pour qu'il utilise la version
hamidouk
parents:
diff changeset
   114