📄 permissn.tcl
字号:
# PERMISSN.TCL - Setup procedures for implementing permission wizard page## Copyright 1999 Wind River Systems, Inc## modification history# --------------------# 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 + -