kernel - Order ipfw3 module before other ipfw3_* modules
[dragonfly.git] / usr.bin / lt / lt.sh
blob75d9cecd2343cf6f74b275074a1152e5fdd6d16e
1 #!/bin/sh
3 # The awk script used in this file was written by vgersh99
5 if [ "$#" = "0" ]; then
6 DIR="."
7 else
8 DIR=$*
9 fi
11 for _dir in $DIR; do
12 if [ ! -d $_dir ]; then
13 echo "$_dir: No such directory"
14 continue
17 echo $_dir | sed -E 's/\/+$//'
18 find ${_dir}/ | sort | awk '
19 BEGIN {
20 FS = "/";
21 i = 0;
24 function fineprint(branches)
26 gsub(" "," ", branches);
27 gsub("[|]","& ", branches);
28 gsub("`","&-- ", branches);
29 gsub("[+]","|-- ", branches);
30 return branches;
33 function mktree(number,branches, tnumber)
36 if (number > NR) {
37 return number - 1;
40 tnumber = number;
42 while (array["shift", number] < array["shift", tnumber + 1]) {
43 tnumber = mktree(tnumber + 1, branches" ");
44 if (tnumber == NR) break;
47 if (array["shift", number] == array["shift", tnumber + 1]) {
48 array["slip", number] = branches"+";
51 if ((array["shift", number] > array["shift", tnumber + 1]) \
52 || tnumber == NR) {
53 array["slip", number] = branches"`";
57 return tnumber;
61 array["shift", NR] = NF;
62 array["name", NR] = $(NF);
65 END {
66 if (EXIT)
67 exit EXIT;
69 for (i = 1; i <= NR; i++) {
70 i = mktree(i, "");
73 for (i = 1; i <= NR; i++) {
75 if (i > 1) {
76 lprev = length(array["slip", i - 1]);
77 lcurr = length(array["slip", i]);
78 if (lprev > lcurr - 1)
79 legacy = substr(array["slip", i - 1], 0, \
80 lcurr - 1);
81 else
82 legacy = array["slip", i-1];
83 tail = substr(array["slip", i], length(legacy) + 1 , \
84 lcurr - length(legacy));
85 gsub("[+]", "|", legacy);
86 gsub("`", " ", legacy);
87 array["slip", i] = (legacy)(tail);
90 printf "%s%s\n", fineprint(array["slip", i]), \
91 array["name", i];
95 ' | grep -v '^|-- $'
96 done