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>