#!/usr/bin/perl
$| = 1;
require
"./Porting/manifest_lib.pl"
;
my
$outfile
;
my
$check_only
= 0;
my
$quiet
= 0;
GetOptions (
'output=s'
=> \
$outfile
,
'check'
=> \
$check_only
,
'quiet'
=> \
$quiet
);
my
$file
= (
@ARGV
) ?
shift
:
'MANIFEST'
;
open
(
my
$IN
,
'<'
,
$file
)
or
die
(
"Can't read '$file': $!"
);
my
@manifest
= <
$IN
>;
close
(
$IN
) or
die
($!);
chomp
(
@manifest
);
my
%seen
= (
''
=> 1 );
my
@sorted
=
grep
{ !
$seen
{
$_
}++ }
sort_manifest(
@manifest
)
;
my
$exit_code
= 0;
for
(
my
$ii
= 0;
$ii
<
$#manifest
;
$ii
++) {
next
if
(
$manifest
[
$ii
] eq
$sorted
[
$ii
]);
$exit_code
= 1;
last
;
}
if
(
defined
(
$outfile
)) {
open
(
my
$OUT
,
'>'
,
$outfile
)
or
die
(
"Can't open output file '$outfile': $!"
);
binmode
(
$OUT
);
print
(
$OUT
join
(
"\n"
,
@sorted
),
"\n"
);
close
(
$OUT
) or
die
($!);
}
printf
(STDERR
"'$file' is%s sorted properly\n"
,
((
$exit_code
) ?
' NOT'
:
''
))
if
(!
$quiet
);
exit
(
$exit_code
);