⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 permissn.tcl

📁 WindML3.0补丁 WIND MEDIA LIBRARY 3.0.3 (CP3) for Tornado 2.2.0 and Tornado 2.2.1 Up-to-date produc
💻 TCL
📖 第 1 页 / 共 2 页
字号:
# PERMISSN.TCL  - Setup procedures for implementing permission wizard page
#
# Copyright 1999-2003 Wind River Systems, Inc
#
# modification history
# --------------------
# 03c,29apr03,bjl  text rewording.
# 03b,23aug02,bjl  catch permission change error (spr 81083).
# 03a,12jun01,j_w  Modified for Tornado 2.2
# 02h,21sep00,j_w  made the $WIND_BASE/.wind permission based on the
#                  permission set by the user
# 02g,31jan00,bwd  Deleted redundant codes and replaced setupVals(cmdMode)
#                  with isGUImode
# 02f,17dec99,clc  change  switch statement patterns
# 02e,23nov99,clc  add text mode executable permissions
# 02d,09nov99,clc  add text mode
# 02c,27oct99,bjl  set permissions for the WIND_BASE directory.  
# 02b,05oct99,j_w  Fixed Title
# 02a,30Sep99,j_w  Modified for T3
# 01d,23jul99,j_w  added text messages
# 01c,01feb99,tcy  moved procs from INSTALL.TCL.
# 01b,30jan99,bjl  added execute permissions (spr 23883, 24552).
# 01a,26jan99,tcy  extracted from INSTW32.TCL.
#

#############################################################################
#
# pageCreate(permission) - display permissions of files after installation
#
# This procedure will display permissions of files after installation
#
# SYNOPSIS
# .tS
# pageCreate(permission)
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#

proc pageCreate(permission) {} {
    global ctrlVals
    global setupVals
    global perVals 

    if {[catch {setupId effective group} gprName]} {
        set gprName "group"
    }

    if {[catch {setupId effective user} usrName]} {
        set usrName "user"
    }

    if ![info exists setupVals(umask)] { umaskGet }


    if { [isGUImode] } {
        set msg0 [strTableGet PERMISSION_MSG_1]
        
        set ctrlVals(ur) "$usrName read"
        set ctrlVals(gr) "$gprName read"
        set ctrlVals(or) "other read"
        set ctrlVals(uw) "$usrName write"
        set ctrlVals(gw) "$gprName write"
        set ctrlVals(ow) "other write"
        set ctrlVals(ux) "$usrName execute"
        set ctrlVals(gx) "$gprName execute"
        set ctrlVals(ox) "other execute"

        set msg0Ctrl [list label -name msg0 -title $msg0 \
                                 -x 100 -y 10 -w 205 -h 64]

        set urCtrl [list boolean -name ur \
                                 -title $ctrlVals(ur) \
                                 -newgroup -auto \
                                 -x 100 -y 80 -w 70 -h 10]

        set grCtrl [list boolean -name gr \
                                 -title $ctrlVals(gr) \
                                 -auto \
                                 -x 100 -y 93 -w 70 -h 10]

        set orCtrl [list boolean -name or \
                                 -title $ctrlVals(or) \
                                 -auto \
                                 -x 100 -y 106 -w 70 -h 10]

        set uwCtrl [list boolean -name uw \
                                 -title $ctrlVals(uw) \
                                 -auto \
                                -x 170 -y 80 -w 70 -h 10]

        set gwCtrl [list boolean -name gw \
                                 -title $ctrlVals(gw) \
                                 -auto \
                                 -x 170 -y 93 -w 70 -h 10]

        set owCtrl [list boolean -name ow \
                                 -title $ctrlVals(ow) \
                                 -auto \
                                 -x 170 -y 106 -w 70 -h 10]

        set uxCtrl [list boolean -name ux \
                                 -title $ctrlVals(ux) \
                                 -newgroup -auto \
                                 -x 240 -y 80 -w 70 -h 10]

        set gxCtrl [list boolean -name gx \
                                 -title $ctrlVals(gx) \
                                 -auto \
                                 -x 240 -y 93 -w 70 -h 10]

        set oxCtrl [list boolean -name ox \
                                 -title $ctrlVals(ox) \
                                 -auto \
                                 -x 240 -y 106 -w 70 -h 10]

        set ctrlVals(volatileFrm) [list $msg0Ctrl $urCtrl \
                                        $grCtrl $orCtrl \
                                        $uwCtrl $gwCtrl $owCtrl \
                                        $uxCtrl $gxCtrl $oxCtrl ]

        set ctrlVals(permissionsw) [dlgFrmCreate [strTableGet PERMISSION_TITLE]]

        controlCheckSet $ctrlVals(permissionsw).ur 1
        controlCheckSet $ctrlVals(permissionsw).uw 1
        controlCheckSet $ctrlVals(permissionsw).ux 1
        controlCheckSet $ctrlVals(permissionsw).gr 1
        controlCheckSet $ctrlVals(permissionsw).gx 1
        controlCheckSet $ctrlVals(permissionsw).or 1
        controlCheckSet $ctrlVals(permissionsw).ox 1
        controlEnable $ctrlVals(permissionsw).ur 0
        controlEnable $ctrlVals(permissionsw).uw 0
        controlEnable $ctrlVals(permissionsw).ux 0

        # test automation

        if { $ctrlVals(useInputScript) } {
            autoSetupLog "Permissions page:"
            autoSetupLog "\tUsing default settings:"
            autoSetupLog "\tuser read: \
                          [controlChecked $ctrlVals(permissionsw).ur]"
            autoSetupLog "\tuser write: \
                          [controlChecked $ctrlVals(permissionsw).uw]"
            autoSetupLog "\tuser execute: \
                          [controlChecked $ctrlVals(permissionsw).ux]"
            autoSetupLog "\tgroup read: \
                          [controlChecked $ctrlVals(permissionsw).gr]"
            autoSetupLog "\tgroup write: \
                          [controlChecked $ctrlVals(permissionsw).gw]"
            autoSetupLog "\tgroup execute: \
                          [controlChecked $ctrlVals(permissionsw).gx]"
            autoSetupLog "\tother read: \
                          [controlChecked $ctrlVals(permissionsw).or]"
            autoSetupLog "\tother write: \
                          [controlChecked $ctrlVals(permissionsw).ow]"
            autoSetupLog "\tother execute: \
                          [controlChecked $ctrlVals(permissionsw).ox]"

            nextCallback

        } else {
            controlFocusSet $ctrlVals(permissionsw).gr
           controlEnable $ctrlVals(permissionsw).backButt 1
        }
    } else { # TEXT mode

        # find the maximum string length among other, usrName and gprName
        if { [string length "other"] > [string length $gprName] && \
            [string length "other"] > [string length $usrName] } {
            set perVals(colWidth) [string length "other"]    
        } elseif {
            [string length $usrName] > \
            [string length $gprName] } {
            set perVals(colWidth) [string length $usrName]
        } else {
            set perVals(colWidth) [string length $gprName]
        }

        # initialize the permission array     
        set perVals(infoList) "ur uw gr gw or ow"
        foreach item $perVals(infoList)  {
            if { $setupVals($item) == 1 } {
                set perVals($item) "x" 
            } else {
                set perVals($item) ""
            }
        }
        set width [expr $perVals(colWidth)] 
        set str [createString - $width]

        while (1) {

            printPageTitle [strTableGet 1460_TITLE_PERMISSION]
            puts "[strTableGet 3160_PERMISSION]\n"
            puts "[strTableGet 3162_PERMISSION]\n"

            puts [format "%4s %10s %-*s %-13s" "item" "    on    " $width \
                       user "   permission" ]
            puts [format "%4s %10s %-*s %-13s" "----" "   ----   " $width \
                       $str "   ----------" ]
            puts [format "%4s %10s %-*s %-13s"     "" "     $perVals(ur)    " \
                       $width $usrName "   read" ]
            puts [format "%4s %10s %-*s %-13s"     "" "     $perVals(uw)    " \
                       $width $usrName "   write" ]
            puts [format "%4s %10s %-*s %-13s"      1 "     $perVals(gr)    " \
                       $width $gprName "   read" ]
            puts [format "%4s %10s %-*s %-13s"      2 "     $perVals(gw)    " \
                       $width $gprName "   write" ]
            puts [format "%4s %10s %-*s %-13s"      3 "     $perVals(or)    " \
                       $width other "   read" ]
            puts [format "%4s %10s %-*s %-13s"      4 "     $perVals(ow)    " \
                       $width other "   write" ]
            puts ""

            set ret [prompt [strTableGet 3165_PERMISSION_QUESTION]]
            switch -regexp -- $ret {
                "^-$"       { backCallback; return 0 }
                "^[0-9]+([ ][0-9]+)*$" { changePermission $ret }
                "^$"        { nextCallback; return 0 }
                "[eE][xX][iI][tT]"      { return 0 }
                default     { }
            }
        }
        nextCallback
        return 0
    }
}

#############################################################################
#
# pageProcess(permission) - process inputs from permission page
#
# This procedure will process permission set by users from the permission page
#
# SYNOPSIS
# .tS
# pageProcess(permission)
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: 1 when successful
#
# ERRORS: N/A
#

proc pageProcess(permission) {} {
    global ctrlVals
    global setupVals
    global infVals

    if { [isGUImode] } {
        beginWaitCursor
        set setupVals(ur) [controlChecked $ctrlVals(permissionsw).ur]
        set setupVals(gr) [controlChecked $ctrlVals(permissionsw).gr]
        set setupVals(or) [controlChecked $ctrlVals(permissionsw).or]
        set setupVals(uw) [controlChecked $ctrlVals(permissionsw).uw]
        set setupVals(gw) [controlChecked $ctrlVals(permissionsw).gw]
        set setupVals(ow) [controlChecked $ctrlVals(permissionsw).ow]
        set setupVals(ux) [controlChecked $ctrlVals(permissionsw).ux]
        set setupVals(gx) [controlChecked $ctrlVals(permissionsw).gx]
        set setupVals(ox) [controlChecked $ctrlVals(permissionsw).ox]

    } else { # TEXT MODE

        # set permissions for the WIND_BASE (destDir) directory.
        
        set setupVals(ux) 1
        set setupVals(gx) 1
        set setupVals(ox) 1
    }

    umaskSet

    # set permissions for the WIND_BASE (destDir) directory.
 
        set windBase [destDirGet]

    if {$setupVals(gr)} {
        catch {exec /bin/chmod g+r $windBase}
                catch {exec /bin/chmod g+r $windBase/.wind}
    } else {
        catch {exec /bin/chmod g-r $windBase}
                catch {exec /bin/chmod g-r $windBase/.wind}
    }
    if {$setupVals(gw)} {
        catch {exec /bin/chmod g+w $windBase}
                catch {exec /bin/chmod g+w $windBase/.wind}
    } else {
        catch {exec /bin/chmod g-w $windBase}
                catch {exec /bin/chmod g-w $windBase/.wind}
    }
    if {$setupVals(or)} {
        catch {exec /bin/chmod o+r $windBase}
                catch {exec /bin/chmod o+r $windBase/.wind}
    } else {
        catch {exec /bin/chmod o-r $windBase}
                catch {exec /bin/chmod o-r $windBase/.wind}
    }
    if {$setupVals(ow)} {
        catch {exec /bin/chmod o+w $windBase}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -