home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 December / PCWorld_2000-12_cd.bin / Komunikace / Comanche / plugins / samba / init.tcl < prev    next >
Text File  |  2000-11-02  |  3KB  |  73 lines

  1.  
  2. set currentDir [file dirname [file join [pwd] [info script]]]
  3.  
  4. source [file join $currentDir samba.tcl]
  5. source [file join $currentDir lib sambaParser.tcl]
  6. source [file join $currentDir lib sambaDumper.tcl]
  7. source [file join $currentDir lib utils.tcl]
  8.  
  9. proc samba_init {args} {
  10.     array set options $args
  11.     set xuiB [ \
  12.         xuiBuilder ::#auto [list \
  13.         boolean [booleanCreator ::#auto] \
  14.         string [stringCreator ::#auto] \
  15.         structure [structureCreator ::#auto] \
  16.         alternate [alternateCreator ::#auto] \
  17.         choice [choiceCreator ::#auto] \
  18.         list [listCreator ::#auto] \
  19.         group [groupCreator ::#auto] \
  20.         propertyPage [propertyPageCreator ::#auto] \
  21.         propertyPages [propertyPagesCreator ::#auto] \
  22.         dirDefinition [dirDefinitionCreator ::#auto] \
  23.         label [labelCreator ::#auto] \
  24.         number [numberCreator ::#auto] \
  25.         ]]
  26.     set sambappM [ppManager ::#auto ]
  27.     set sambaConfDoc [confDocument ::#auto]
  28.     set sambaDirDef [dirDefinition ::#auto ]
  29.     set sambaRootNode [[::plugInUtils::getChildByClass $options(-namespace) \
  30.     root networkServices] getId]      
  31.     # To do: Clean up this mess and do it Apache style
  32.     
  33.     foreach file {{../plugins/samba/xmlDirDef/samba.xml}} {
  34.     set f [open $file]
  35.     set sambaDoc [$xuiB renderDocument [dom::DOMImplementation \
  36.         parse [read $f]]]
  37.     close $f
  38.     $sambaDirDef addDirectiveDefinition $sambaDoc
  39.     }
  40.     sambaParser smb $sambaDirDef $sambaConfDoc
  41.     smb configure -mainConfFile $::comanche::globals(smb.conf)
  42.     smb init
  43.     $xuiB addCreator directiveInclude \
  44.         [includeCreator ::#auto $sambaDirDef]
  45.     set f [open ../plugins/samba/xmlPP/newbiePP.xml]
  46.     set sambaDoc [$xuiB renderDocument \
  47.         [dom::DOMImplementation parse [read $f]]]
  48.     close $f
  49.     set sambappdef [pPDefinition ::#auto ]
  50.     $sambappdef addPPDefinition $sambaDoc
  51.     set myPg [sambaPlugIn ::#auto ]
  52.     set sambanm [nodeManagement ::#auto ::ns $myPg]
  53.     $myPg configure -namespace ::ns -nodeManagement $sambanm -confDoc\
  54.         $sambaConfDoc -ppManager $sambappM -ppDef $sambappdef \
  55.         -dumper [sambaPrettyDumper ::#auto] -rootNode $sambaRootNode
  56.     $myPg _registerWithNamespace
  57.     $myPg init
  58.     
  59. }
  60.  
  61.  
  62. proc samba_info {} {
  63.     array set info {description {Module for configuring the Samba File and \
  64.         Print services}}
  65.     array set info {name {samba}}
  66.     array set info {version {1.0}}
  67.     array set info {icon samba}
  68.     return [array get info]
  69. }
  70.  
  71.              
  72.  
  73.