PageRenderTime 20ms CodeModel.GetById 14ms app.highlight 3ms RepoModel.GetById 1ms app.codeStats 0ms

/contrib/bind9/doc/misc/sort-options.pl

https://bitbucket.org/freebsd/freebsd-head/
Perl | 50 lines | 27 code | 3 blank | 20 comment | 6 complexity | 57106889aa535ccec27fc188e7a2d75a MD5 | raw file
 1#!/bin/perl
 2#
 3# Copyright (C) 2007  Internet Systems Consortium, Inc. ("ISC")
 4#
 5# Permission to use, copy, modify, and/or distribute this software for any
 6# purpose with or without fee is hereby granted, provided that the above
 7# copyright notice and this permission notice appear in all copies.
 8#
 9# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
10# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
12# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
14# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15# PERFORMANCE OF THIS SOFTWARE.
16
17# $Id: sort-options.pl,v 1.3 2007/09/24 23:46:48 tbox Exp $
18
19sub sortlevel() {
20	my @options = ();
21	my $fin = "";
22	my $i = 0;
23	while (<>) {
24		if (/^\s*};$/) {
25			$fin = $_;
26			# print 2, $_;
27			last;
28		}
29		next if (/^$/);
30		if (/{$/) {
31			# print 3, $_;
32			my $sec = $_;
33			push(@options, $sec . sortlevel());
34		} else {
35			push(@options, $_);
36			# print 1, $_;
37		}
38		$i++;
39	}
40	my $result = "";
41	foreach my $i (sort @options) {
42		$result = ${result}.${i};
43		$result = $result."\n" if ($i =~ /^[a-z]/i);
44		# print 5, ${i};
45	}
46	$result = ${result}.${fin};
47	return ($result);
48}
49
50print sortlevel();