Annotation of embedaddon/sudo/doc/fixmdoc.sh, revision 1.1.1.1
1.1 misho 1: #!/bin/sh
2:
3: OUTFILE="$1"
4: rm -f "$OUTFILE"
5: > "$OUTFILE"
6:
7: # Page specific hacks
8: case "$OUTFILE" in
9: sudo.mdoc.sed)
10: # Replace "0 minutes" with "unlimited"
11: cat >>"$OUTFILE" <<-'EOF'
12: /^\.Li 0$/ {
13: N
14: s/^\.Li 0\nminutes\.$/unlimited./
15: }
16: EOF
17:
18: # BSD auth
19: BA_FLAG=
20: if [ X"$BAMAN" != X"1" ]; then
21: BA_FLAG='/^.*\n\.Op Fl a Ar auth_type/{;N;/^.*\n\.Ek$/d;};'
22: cat >>"$OUTFILE" <<-'EOF'
23: /^\.It Fl a Ar type/,/BSD authentication\.$/ {
24: d
25: }
26: EOF
27: fi
28:
29: # BSD login class
30: LC_FLAG=
31: if [ X"$LCMAN" != X"1" ]; then
32: LC_FLAG='/^.*\n\.Op Fl c Ar class/{;N;/^.*\n\.Ek$/d;};'
33: cat >>"$OUTFILE" <<-'EOF'
34: /^\.It Fl c Ar class/,/BSD login classes\.$/ {
35: d
36: }
37: /^\.Xr login_cap 3 ,$/d
38: /^BSD login class$/ {
39: N
40: /^BSD login class\n\.It$/d
41: }
42: EOF
43: fi
44:
45: # SELinux
46: SE_FLAG=
47: if [ X"$SEMAN" != X"1" ]; then
48: SE_FLAG='/^.*\n\.Op Fl r Ar role/{;N;/^.*\n\.Ek$/d;};/^.*\n\.Op Fl t Ar type/{;N;/^.*\n\.Ek$/d;};'
49: cat >>"$OUTFILE" <<-'EOF'
50: /^\.It Fl r Ar role/,/newline character\.$/ {
51: d
52: }
53: /^\.It Fl t Ar type/,/specified role\.$/ {
54: d
55: }
56: /^SELinux role and type$/ {
57: N
58: /^SELinux role and type\n\.It$/d
59: }
60: EOF
61: fi
62:
63: # Solaris privileges
64: if [ X"$PSMAN" != X"1" ]; then
65: cat >>"$OUTFILE" <<-'EOF'
66: /^Solaris project$/ {
67: N
68: N
69: N
70: /^Solaris project\n\.It\nSolaris privileges\n\.It$/d
71: }
72: EOF
73: fi
74:
75: # Unsupported flags must be removed together
76: if [ -n "$BA_FLAG$LC_FLAG$SE_FLAG" ]; then
77: cat >>"$OUTFILE" <<-EOF
78: /^\.Bk -words\$/ {
79: N
80: $BA_FLAG$LC_FLAG$SE_FLAG
81: }
82: EOF
83: fi
84: ;;
85: sudoers.mdoc.sed)
86: # Subsections to remove (SELinux and Solaris are adjacent)
87: RM_SS=
88: if [ X"$PSMAN" != X"1" ]; then
89: if [ X"$SEMAN" != X"1" ]; then
90: RM_SS='/^\.Ss SELinux_Spec/,/^\.Ss [^S]/{;/^\.Ss [^S][^o][^l]/!d;};'
91: else
92: RM_SS='/^\.Ss Solaris_Priv_Spec/,/^\.Ss/{;/^\.Ss [^S][^o][^l]/!d;};'
93: fi
94: elif [ X"$SEMAN" != X"1" ]; then
95: RM_SS='/^\.Ss SELinux_Spec/,/^\.Ss/{;/^\.Ss [^S][^E][^L]/!d;};'
96: fi
97: if [ -n "$RM_SS" ]; then
98: cat >>"$OUTFILE" <<-EOF
99: $RM_SS
100: EOF
101: fi
102:
103: # BSD login class
104: if [ X"$LCMAN" != X"1" ]; then
105: cat >>"$OUTFILE" <<-'EOF'
106: /^On BSD systems/,/\.$/ {
107: d
108: }
109: /^\.It use_loginclass$/,/^\.It/ {
110: /^\.It [^u][^s][^e][^_][^l]/!d
111: }
112: EOF
113: fi
114:
115: # Solaris PrivSpec
116: if [ X"$PSMAN" != X"1" ]; then
117: cat >>"$OUTFILE" <<-'EOF'
118: s/Solaris_Priv_Spec? //
119: /^Solaris_Priv_Spec ::=/ {
120: N
121: d
122: }
123: /^\.It limitprivs$/,/^\.It/ {
124: /^\.It [^l][^i][^m][^i][^t]/!d
125: }
126: /^\.It privs$/,/^\.It/ {
127: /^\.It [^p][^r][^i][^v][^s]$/!d
128: }
129: /^On Solaris 10/,/^\.Pp/ {
130: d
131: }
132: EOF
133: fi
134:
135: # SELinux
136: if [ X"$SEMAN" != X"1" ]; then
137: cat >>"$OUTFILE" <<-'EOF'
138: s/SELinux_Spec? //
139: /^SELinux_Spec ::=/ {
140: N
141: d
142: }
143: /^\.It [rt][oy][lp]e$/,/^\.It/ {
144: /^\.It [^rt][^oy][^lp][^e]$/!d
145: }
146: EOF
147: fi
148: ;;
149: esac
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>