Latest updates from author.
authorJohn Terpstra <jht@samba.org>
Wed, 20 Nov 2002 00:30:56 +0000 (00:30 +0000)
committerJohn Terpstra <jht@samba.org>
Wed, 20 Nov 2002 00:30:56 +0000 (00:30 +0000)
(This used to be commit bdf0d66577c78c92e8bf0f7e6a23d7812b2f76dd)

examples/ntlogon/README
examples/ntlogon/ntlogon.py

index 3314933583c2e806402b9b9f2722016edf2401b8..e33c565d717762afe9413a2d20f1caab725c9602 100644 (file)
@@ -1,4 +1,4 @@
-ntlogon.py v0.7b Copyright 2000 by Avalon Technology Group, Inc.
+ntlogon.py v0.8b Copyright 2002 by Timothy (rhacer) Grant 
 This programme is released under the terms of the GNU Public License
 This programme has NO WARRANTY of any kind, use at your own risk.
 
@@ -42,7 +42,7 @@ I'd really love to know if even one person other than me and the other techs
 here at Avalon have found it useful.
 
 Thanks.
-   rhacer (rhacer@exceptionalminds.com)
+   rhacer (rhacer@craigelachie.org)
 
 September 27, 2000
 Thanks to those that did respond to my plea! I'd still love to hear from 
@@ -150,11 +150,10 @@ Nick Lopez <kimo_sabe@atdot.org> for the net bios name patch.
 ===================
 CONTACT INFORMATION
 ===================
-Author : Timothy Grant (rhacer)
-Company        : Avalon Technology Group, Inc.
+Author : Timothy (rhacer) Grant
 
-I can be reached at tjg@exceptionalminds.com
-ntlogon website www.exceptionalminds.com/rhacer/ntlogon
+I can be reached at tjg@craigelachie.org
+ntlogon website www.craigelachie.org/rhacer/ntlogon
 
 Please feel free to contact me with any suggestions, improvements, bugs you
 might find.
index b7abd8134fe2ff7eb6fbc2127b925711f1e44524..ba46ba8ffcfe88f94a5172120cb9a2b6440deb49 100755 (executable)
@@ -1,13 +1,11 @@
 #!/usr/bin/env python
 """
-ntlogon.py written by Timothy Grant
+ntlogon.py written by Timothy (rhacer) Grant
 
-Copyright 1999 by Avalon Technology Group, Inc.
+Copyright 1999 - 2002 by Timothy Grant 
 
-This programme is copyright 1999 by Avalon Technology Group, Inc. it
 is distributed under the terms of the GNU Public License.
 
-
 The format for the configuration file is as follows:
 
 While there is some room for confusion, we attempt to process things in
@@ -17,7 +15,7 @@ sense.
 
 # Everything in the Global section applies to all users logging on to the
 # network
-[Global
+[Global]
 @ECHO "Welcome to our network!!!"
 NET TIME \\\\servername /SET /YES
 NET USE F: \\\\servername\\globalshare /YES
@@ -85,11 +83,11 @@ def buildScript(buf, sections, group, user, ostype, machine, debug, pause):
     and creating a list object that contains each line contained in each
     included section.  The list object is then returned to the calling 
     routine.
-   
+
     All comments (#) are removed. A REM is inserted to show
     which section of the configuration file each line comes from.
     We leave blanklines as they are sometimes useful for debugging
-   
+
     We also replace all of the Samba macros (e.g., %U, %G, %a, %m) with their
     expanded versions which have been passed to us by smbd
     """
@@ -109,18 +107,18 @@ def buildScript(buf, sections, group, user, ostype, machine, debug, pause):
                 'a': ostype,
                 'm': machine
              }
-    
+
     #
     # Process each section defined in the list sections
     #
     for s in sections:
         # print 'searching for: ' + s
-        
+
         idx = 0
-        
+
         while idx < len(buf):
             ln = buf[idx]
-            
+
             #
             # We need to set up a regex for each possible section we
             # know about. This is slightly complicated due to the fact
@@ -143,29 +141,29 @@ def buildScript(buf, sections, group, user, ostype, machine, debug, pause):
             if re.search(r'(?i)' + hdrstring, ln):
                 idx = idx + 1   # increment the counter to move to the next
                                 # line.
-                
+
                 x = re.match(r'([^#\r\n]*)', ln)    # Determine the section
                                                     # name and strip out CR/LF
                                                     # and comment information
-                
+
                 if debug:
                     print 'rem ' + x.group(1) + ' commands'
                 else:
                     # create the rem at the beginning of each section of the
                     # logon script.
                     script.append('rem ' + x.group(1) + ' commands') 
-                
+
                 #
                 # process each line until we have found another section
                 # header
                 #
                 while not re.search(r'.*\[.*\].*', buf[idx]):
-                    
+
                     #
                     # strip comments and line endings
                     #
                     x = re.match(r'([^#\r\n]*)', buf[idx])
-                    
+
                     if string.strip(x.group(1)) != '' :
                         # if there is still content  after stripping comments and
                         # line endings then this is a line to process
@@ -184,18 +182,18 @@ def buildScript(buf, sections, group, user, ostype, machine, debug, pause):
                             if varname == '':
                                 print "Error: No substition name specified line: %d" % idx
                                 sys.exit(1)
-                                
+
                             if varsub == '':
                                 print "Error: No substitution text provided line: %d" % idx
                                 sys.exit(1)
-                            
+
                             if macros.has_key(varname):
                                 print "Warning: macro %s redefined line: %d" % (varname, idx)
 
                             macros[varname] = varsub
                             idx = idx + 1
                             continue
-                        
+
                         #
                         # Replace all the  macros that we currently
                         # know about.
@@ -209,31 +207,31 @@ def buildScript(buf, sections, group, user, ostype, machine, debug, pause):
                         for varname in macros.keys():
                             line = re.sub(r'%' + varname + r'(\W)',
                                           macros[varname] + r'\1', line)
-                            
+
                         if debug:
                             print line
                             if pause:
                                 print 'pause'
                         else:
                             script.append(line)
-                    
+
                     idx = idx + 1
-                    
+
                     if idx == len(buf):
                         break   # if we have reached the end of the file
                                 # stop processing.
-                    
+
             idx = idx + 1   # increment the line counter
-        
+
         if debug:
             print ''
         else:
             script.append('')
-        
+
     return script
-    
+
 # End buildScript()
-    
+
 def run():
     """
     run() everything starts here. The main routine reads the command line
@@ -254,7 +252,7 @@ def run():
     sections    = ['Global', 'Machine', 'OS', 'Group', 'User'] # Currently supported
                                                     # configuration file 
                                                     # sections
-   
+
     options, args = getopt.getopt(sys.argv[1:], 'd:f:g:ho:u:m:v', 
                                  ['templatefile=', 
                                   'group=',
@@ -266,7 +264,7 @@ def run():
                                   'version',
                                   'pause',
                                   'debug'])
-                                  
+
     #
     # Process the command line arguments
     #
@@ -275,17 +273,17 @@ def run():
         if (i[0] == '-f') or (i[0] == '--templatefile'):
             configfile = i[1]
             # print 'configfile = ' + configfile
-      
+
         # define the group to be used
         elif (i[0] == '-g') or (i[0] == '--group'):
             group = i[1]
             # print 'group = ' + group
-         
+
         # define the os type
         elif (i[0] == '-o') or (i[0] == '--os'):
             ostype = i[1]
             # print 'os = ' + os
-         
+
         # define the user
         elif (i[0] == '-u') or (i[0] == '--user'):
             user = i[1]
@@ -295,7 +293,7 @@ def run():
         # define the machine
         elif (i[0] == '-m') or (i[0] == '--machine'):
             machine = i[1]
-        
+
         # define the netlogon directory
         elif (i[0] == '-d') or (i[0] == '--dir'):
             outdir = i[1]
@@ -310,7 +308,7 @@ def run():
         elif (i[0] == '--pause'):
             pause = 1
             # print 'pause = ' + pause
-      
+
         # if we are asked for the version number, print it.
         elif (i[0] == '-v') or (i[0] == '--version'):
             print version
@@ -329,8 +327,8 @@ def run():
     except IOError:
         print 'Unable to open configuration file: ' + configfile
         sys.exit(1)
-        
-    
+
+
     #
     # open the output file
     #    
@@ -340,9 +338,9 @@ def run():
         except IOError:
             print 'Unable to open logon script file: ' + outdir + outfile
             sys.exit(1)
-      
+
     buf = iFile.readlines() # read in the entire configuration file
-    
+
     #
     # call the script building routine
     #
@@ -355,11 +353,11 @@ def run():
         for ln in script:
             oFile.write(ln + '\r\n')
             if pause:
-                if string.strip(ln) != '':                     # Because whitespace is
+                if string.strip(ln) != '':                     # Because whitespace
                     oFile.write('pause' + '\r\n')      # is a useful tool, we
                                                                                # don't put pauses after
                                                     # an empty line.
-               
+
 
 # End run()
 
@@ -372,7 +370,7 @@ else:
     print "Module ntlogon.py imported."
     print "To run, type: ntlogon.run()"
     print "To reload after changes to the source, type: reload(ntlogon)"
-   
+
 #
 # End NTLogon.py
 #