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>