1 |
#!/usr/bin/perl -w |
2 |
# ***** BEGIN LICENSE BLOCK ***** |
3 |
# Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
4 |
# |
5 |
# The contents of this file are subject to the Mozilla Public License Version |
6 |
# 1.1 (the "License"); you may not use this file except in compliance with |
7 |
# the License. You may obtain a copy of the License at |
8 |
# http://www.mozilla.org/MPL/ |
9 |
# |
10 |
# Software distributed under the License is distributed on an "AS IS" basis, |
11 |
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
12 |
# for the specific language governing rights and limitations under the |
13 |
# License. |
14 |
# |
15 |
# The Original Code is the Win32 Version System. |
16 |
# |
17 |
# The Initial Developer of the Original Code is Netscape Communications Corporation |
18 |
# Portions created by the Initial Developer are Copyright (C) 2002 |
19 |
# the Initial Developer. All Rights Reserved. |
20 |
# |
21 |
# Contributor(s): |
22 |
# |
23 |
# Alternatively, the contents of this file may be used under the terms of |
24 |
# either the GNU General Public License Version 2 or later (the "GPL"), or |
25 |
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
26 |
# in which case the provisions of the GPL or the LGPL are applicable instead |
27 |
# of those above. If you wish to allow use of your version of this file only |
28 |
# under the terms of either the GPL or the LGPL, and not to allow others to |
29 |
# use your version of this file under the terms of the MPL, indicate your |
30 |
# decision by deleting the provisions above and replace them with the notice |
31 |
# and other provisions required by the GPL or the LGPL. If you do not delete |
32 |
# the provisions above, a recipient may use your version of this file under |
33 |
# the terms of any one of the MPL, the GPL or the LGPL. |
34 |
# |
35 |
# ***** END LICENSE BLOCK ***** |
36 |
|
37 |
use Getopt::Long; |
38 |
|
39 |
use strict; |
40 |
use vars qw( |
41 |
$OBJDIR |
42 |
$SRCDIR |
43 |
$TOPSRCDIR |
44 |
$SCRIPTDIR |
45 |
@TEMPLATE_FILE |
46 |
$MILESTONE_FILE |
47 |
$MILESTONE |
48 |
$MILESTONE_NUM |
49 |
@MILESTONE_PARTS |
50 |
$MINI_VERSION |
51 |
$MICRO_VERSION |
52 |
$opt_debug |
53 |
$opt_template |
54 |
$opt_help |
55 |
); |
56 |
|
57 |
$SCRIPTDIR = $0; |
58 |
$SCRIPTDIR =~ s/[^\/]*$//; |
59 |
push(@INC,$SCRIPTDIR); |
60 |
|
61 |
require "Moz/Milestone.pm"; |
62 |
|
63 |
&GetOptions('topsrcdir=s' => \$TOPSRCDIR, 'srcdir=s' => \$SRCDIR, 'objdir=s' => \$OBJDIR, 'debug', 'help', 'template'); |
64 |
|
65 |
if (defined($opt_help)) { |
66 |
&usage(); |
67 |
exit; |
68 |
} |
69 |
|
70 |
if (defined($opt_template)) { |
71 |
@TEMPLATE_FILE = @ARGV; |
72 |
if ($opt_debug) { |
73 |
print("TEMPLATE_FILE = --@TEMPLATE_FILE--\n"); |
74 |
} |
75 |
} |
76 |
|
77 |
if (!defined($SRCDIR)) { $SRCDIR = '.'; } |
78 |
if (!defined($OBJDIR)) { $OBJDIR = '.'; } |
79 |
|
80 |
$MILESTONE_FILE = "$TOPSRCDIR/config/milestone.txt"; |
81 |
@MILESTONE_PARTS = (0, 0, 0, 0); |
82 |
|
83 |
# |
84 |
# Grab milestone (top line of $MILESTONE_FILE that starts with a digit) |
85 |
# |
86 |
my $milestone = Moz::Milestone::getOfficialMilestone($MILESTONE_FILE); |
87 |
|
88 |
if (defined(@TEMPLATE_FILE)) { |
89 |
my $TFILE; |
90 |
|
91 |
foreach $TFILE (@TEMPLATE_FILE) { |
92 |
my $BUILT_FILE = "$OBJDIR/$TFILE"; |
93 |
$TFILE = "$SRCDIR/$TFILE.tmpl"; |
94 |
|
95 |
if (-e $TFILE) { |
96 |
|
97 |
Moz::Milestone::build_file($TFILE,$BUILT_FILE); |
98 |
|
99 |
} else { |
100 |
warn("$0: No such file $TFILE!\n"); |
101 |
} |
102 |
} |
103 |
} else { |
104 |
print "$milestone\n"; |
105 |
} |
106 |
|
107 |
sub usage() { |
108 |
print <<END |
109 |
`milestone.pl [--topsrcdir TOPSRCDIR] [--objdir OBJDIR] [--srcdir SRCDIR] --template [file list]` # will build file list from .tmpl files |
110 |
END |
111 |
; |
112 |
} |