Annotation of embedaddon/sudo/doc/fixmdoc.sh, revision 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>