1#!/bin/sh 2 3OUTFILE="$1" 4rm -f "$OUTFILE" 5> "$OUTFILE" 6 7# Page specific hacks 8case "$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 # BSD login class 87 if [ X"$LCMAN" != X"1" ]; then 88 cat >>"$OUTFILE" <<-'EOF' 89 /^On BSD systems/,/\.$/ { 90 d 91 } 92 /^\.It use_loginclass$/,/^\.It/ { 93 /^\.It [^u][^s][^e][^_][^l]/!d 94 } 95 EOF 96 fi 97 98 # SELinux 99 if [ X"$SEMAN" != X"1" ]; then 100 cat >>"$OUTFILE" <<-'EOF' 101 s/SELinux_Spec? // 102 /^SELinux_Spec ::=/ { 103 N 104 d 105 } 106 /^\.Ss SELinux_Spec/,/^\.Ss/{;/^\.Ss [^S][^E][^L]/!d;}; 107 /^\.It [rt][oy][lp]e$/,/^\.It/ { 108 /^\.It [^rt][^oy][^lp][^e]$/!d 109 } 110 EOF 111 fi 112 ;; 113esac 114