[Zodb-checkins] SVN: ZODB/trunk/src/ restore the ZEO.mkzeoinst module, and add a wrapper script to call it; see

Fred L. Drake, Jr. fdrake at gmail.com
Tue Sep 6 12:43:02 EDT 2005


Log message for revision 38309:
  restore the ZEO.mkzeoinst module, and add a wrapper script to call it; see
  http://mail.zope.org/pipermail/zope3-dev/2005-September/015605.html
  

Changed:
  A   ZODB/trunk/src/ZEO/mkzeoinst.py
  U   ZODB/trunk/src/scripts/mkzeoinst.py

-=-
Copied: ZODB/trunk/src/ZEO/mkzeoinst.py (from rev 38308, ZODB/trunk/src/scripts/mkzeoinst.py)
===================================================================
--- ZODB/trunk/src/scripts/mkzeoinst.py	2005-09-06 16:23:36 UTC (rev 38308)
+++ ZODB/trunk/src/ZEO/mkzeoinst.py	2005-09-06 16:43:02 UTC (rev 38309)
@@ -0,0 +1,243 @@
+##############################################################################
+#
+# Copyright (c) 2003 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""%(program)s -- create a ZEO instance.
+
+Usage: %(program)s home [port]
+
+Given an "instance home directory" <home> and some configuration
+options (all of which have default values), create the following:
+
+<home>/etc/zeo.conf     -- ZEO config file
+<home>/var/             -- Directory for data files: Data.fs etc.
+<home>/log/             -- Directory for log files: zeo.log and zeoctl.log
+<home>/bin/runzeo       -- the zeo server runner
+<home>/bin/zeoctl       -- start/stop script (a shim for zeoctl.py)
+
+The script will not overwrite existing files; instead, it will issue a
+warning if an existing file is found that differs from the file that
+would be written if it didn't exist.
+"""
+
+# WARNING!  Several templates and functions here are reused by ZRS.
+# So be careful with changes.
+
+import os
+import sys
+import stat
+import getopt
+
+zeo_conf_template = """\
+# ZEO configuration file
+
+%%define INSTANCE %(instance_home)s
+
+<zeo>
+  address %(port)d
+  read-only false
+  invalidation-queue-size 100
+  # pid-filename $INSTANCE/var/ZEO.pid
+  # monitor-address PORT
+  # transaction-timeout SECONDS
+</zeo>
+
+<filestorage 1>
+  path $INSTANCE/var/Data.fs
+</filestorage>
+
+<eventlog>
+  level info
+  <logfile>
+    path $INSTANCE/log/zeo.log
+  </logfile>
+</eventlog>
+
+<runner>
+  program $INSTANCE/bin/runzeo
+  socket-name $INSTANCE/etc/%(package)s.zdsock
+  daemon true
+  forever false
+  backoff-limit 10
+  exit-codes 0, 2
+  directory $INSTANCE
+  default-to-interactive true
+  # user zope
+  python %(python)s
+  zdrun %(zodb3_home)s/zdaemon/zdrun.py
+
+  # This logfile should match the one in the %(package)s.conf file.
+  # It is used by zdctl's logtail command, zdrun/zdctl doesn't write it.
+  logfile $INSTANCE/log/%(package)s.log
+</runner>
+"""
+
+zeoctl_template = """\
+#!/bin/sh
+# %(PACKAGE)s instance control script
+
+# The following two lines are for chkconfig.  On Red Hat Linux (and
+# some other systems), you can copy or symlink this script into
+# /etc/rc.d/init.d/ and then use chkconfig(8) to automatically start
+# %(PACKAGE)s at boot time.
+
+# chkconfig: 345 90 10
+# description: start a %(PACKAGE)s server
+
+PYTHON="%(python)s"
+INSTANCE_HOME="%(instance_home)s"
+ZODB3_HOME="%(zodb3_home)s"
+
+CONFIG_FILE="%(instance_home)s/etc/%(package)s.conf"
+
+PYTHONPATH="$ZODB3_HOME"
+export PYTHONPATH INSTANCE_HOME
+
+ZEOCTL="$ZODB3_HOME/ZEO/zeoctl.py"
+
+exec "$PYTHON" "$ZEOCTL" -C "$CONFIG_FILE" ${1+"$@"}
+"""
+
+runzeo_template = """\
+#!/bin/sh
+# %(PACKAGE)s instance start script
+
+PYTHON="%(python)s"
+INSTANCE_HOME="%(instance_home)s"
+ZODB3_HOME="%(zodb3_home)s"
+
+CONFIG_FILE="%(instance_home)s/etc/%(package)s.conf"
+
+PYTHONPATH="$ZODB3_HOME"
+export PYTHONPATH INSTANCE_HOME
+
+RUNZEO="$ZODB3_HOME/ZEO/runzeo.py"
+
+exec "$PYTHON" "$RUNZEO" -C "$CONFIG_FILE" ${1+"$@"}
+"""
+
+def main():
+    ZEOInstanceBuilder().run()
+    print "All done."
+
+class ZEOInstanceBuilder:
+    def run(self):
+        try:
+            opts, args = getopt.getopt(sys.argv[1:], "h", ["help"])
+        except getopt.error, msg:
+            print msg
+            sys.exit(2)
+        program = os.path.basename(sys.argv[0])
+        if opts:
+            # There's only the help options, so just dump some help:
+            msg = __doc__ % {"program": program}
+            print msg
+            sys.exit()
+        if len(args) not in [1, 2]:
+            print "Usage: %s home [port]" % program
+            sys.exit(2)
+
+        instance_home = args[0]
+        if not os.path.isabs(instance_home):
+            instance_home = os.path.abspath(instance_home)
+
+        for entry in sys.path:
+            if os.path.exists(os.path.join(entry, 'ZODB')):
+                zodb3_home = entry
+                break
+        else:
+            print "Can't find the Zope home (not in sys.path)"
+            sys.exit(2)
+
+        if args[1:]:
+            port = int(args[1])
+        else:
+            port = 8100  # match example in zope.conf
+
+        params = self.get_params(zodb3_home, instance_home, port)
+        self.create(instance_home, params)
+
+    def get_params(self, zodb3_home, instance_home, port):
+        return {
+            "package": "zeo",
+            "PACKAGE": "ZEO",
+            "zodb3_home": zodb3_home,
+            "instance_home": instance_home,
+            "port": port,
+            "python": sys.executable,
+            }
+
+    def create(self, home, params):
+        makedir(home)
+        makedir(home, "etc")
+        makedir(home, "var")
+        makedir(home, "log")
+        makedir(home, "bin")
+        makefile(zeo_conf_template, home, "etc", "zeo.conf", **params)
+        makexfile(zeoctl_template, home, "bin", "zeoctl", **params)
+        makexfile(runzeo_template, home, "bin", "runzeo", **params)
+
+
+def which(program):
+    strpath = os.getenv("PATH")
+    binpath = strpath.split(os.pathsep)
+    for dir in binpath:
+        path = os.path.join(dir, program)
+        if os.path.isfile(path) and os.access(path, os.X_OK):
+            if not os.path.isabs(path):
+                path = os.path.abspath(path)
+            return path
+    raise IOError("can't find %r on path %r" % (program, strpath))
+
+def makedir(*args):
+    path = ""
+    for arg in args:
+        path = os.path.join(path, arg)
+    mkdirs(path)
+    return path
+
+def mkdirs(path):
+    if os.path.isdir(path):
+        return
+    head, tail = os.path.split(path)
+    if head and tail and not os.path.isdir(head):
+        mkdirs(head)
+    os.mkdir(path)
+    print "Created directory", path
+
+def makefile(template, *args, **kwds):
+    path = makedir(*args[:-1])
+    path = os.path.join(path, args[-1])
+    data = template % kwds
+    if os.path.exists(path):
+        f = open(path)
+        olddata = f.read().strip()
+        f.close()
+        if olddata:
+            if olddata != data.strip():
+                print "Warning: not overwriting existing file %r" % path
+            return path
+    f = open(path, "w")
+    f.write(data)
+    f.close()
+    print "Wrote file", path
+    return path
+
+def makexfile(template, *args, **kwds):
+    path = makefile(template, *args, **kwds)
+    umask = os.umask(022)
+    os.umask(umask)
+    mode = 0777 & ~umask
+    if stat.S_IMODE(os.stat(path)[stat.ST_MODE]) != mode:
+        os.chmod(path, mode)
+        print "Changed mode for %s to %o" % (path, mode)
+    return path


Property changes on: ZODB/trunk/src/ZEO/mkzeoinst.py
___________________________________________________________________
Name: cvs2svn:cvs-rev
   + 1.21
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Modified: ZODB/trunk/src/scripts/mkzeoinst.py
===================================================================
--- ZODB/trunk/src/scripts/mkzeoinst.py	2005-09-06 16:23:36 UTC (rev 38308)
+++ ZODB/trunk/src/scripts/mkzeoinst.py	2005-09-06 16:43:02 UTC (rev 38309)
@@ -12,236 +12,8 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-"""%(program)s -- create a ZEO instance.
+"""ZEO instance home creation script."""
 
-Usage: %(program)s home [port]
+import ZEO.mkzeoinst
 
-Given an "instance home directory" <home> and some configuration
-options (all of which have default values), create the following:
-
-<home>/etc/zeo.conf     -- ZEO config file
-<home>/var/             -- Directory for data files: Data.fs etc.
-<home>/log/             -- Directory for log files: zeo.log and zeoctl.log
-<home>/bin/runzeo       -- the zeo server runner
-<home>/bin/zeoctl       -- start/stop script (a shim for zeoctl.py)
-
-The script will not overwrite existing files; instead, it will issue a
-warning if an existing file is found that differs from the file that
-would be written if it didn't exist.
-"""
-
-# WARNING!  Several templates and functions here are reused by ZRS.
-# So be careful with changes.
-
-import os
-import sys
-import stat
-import getopt
-
-zeo_conf_template = """\
-# ZEO configuration file
-
-%%define INSTANCE %(instance_home)s
-
-<zeo>
-  address %(port)d
-  read-only false
-  invalidation-queue-size 100
-  # pid-filename $INSTANCE/var/ZEO.pid
-  # monitor-address PORT
-  # transaction-timeout SECONDS
-</zeo>
-
-<filestorage 1>
-  path $INSTANCE/var/Data.fs
-</filestorage>
-
-<eventlog>
-  level info
-  <logfile>
-    path $INSTANCE/log/zeo.log
-  </logfile>
-</eventlog>
-
-<runner>
-  program $INSTANCE/bin/runzeo
-  socket-name $INSTANCE/etc/%(package)s.zdsock
-  daemon true
-  forever false
-  backoff-limit 10
-  exit-codes 0, 2
-  directory $INSTANCE
-  default-to-interactive true
-  # user zope
-  python %(python)s
-  zdrun %(zodb3_home)s/zdaemon/zdrun.py
-
-  # This logfile should match the one in the %(package)s.conf file.
-  # It is used by zdctl's logtail command, zdrun/zdctl doesn't write it.
-  logfile $INSTANCE/log/%(package)s.log
-</runner>
-"""
-
-zeoctl_template = """\
-#!/bin/sh
-# %(PACKAGE)s instance control script
-
-# The following two lines are for chkconfig.  On Red Hat Linux (and
-# some other systems), you can copy or symlink this script into
-# /etc/rc.d/init.d/ and then use chkconfig(8) to automatically start
-# %(PACKAGE)s at boot time.
-
-# chkconfig: 345 90 10
-# description: start a %(PACKAGE)s server
-
-PYTHON="%(python)s"
-INSTANCE_HOME="%(instance_home)s"
-ZODB3_HOME="%(zodb3_home)s"
-
-CONFIG_FILE="%(instance_home)s/etc/%(package)s.conf"
-
-PYTHONPATH="$ZODB3_HOME"
-export PYTHONPATH INSTANCE_HOME
-
-ZEOCTL="$ZODB3_HOME/ZEO/zeoctl.py"
-
-exec "$PYTHON" "$ZEOCTL" -C "$CONFIG_FILE" ${1+"$@"}
-"""
-
-runzeo_template = """\
-#!/bin/sh
-# %(PACKAGE)s instance start script
-
-PYTHON="%(python)s"
-INSTANCE_HOME="%(instance_home)s"
-ZODB3_HOME="%(zodb3_home)s"
-
-CONFIG_FILE="%(instance_home)s/etc/%(package)s.conf"
-
-PYTHONPATH="$ZODB3_HOME"
-export PYTHONPATH INSTANCE_HOME
-
-RUNZEO="$ZODB3_HOME/ZEO/runzeo.py"
-
-exec "$PYTHON" "$RUNZEO" -C "$CONFIG_FILE" ${1+"$@"}
-"""
-
-def main():
-    ZEOInstanceBuilder().run()
-    print "All done."
-
-class ZEOInstanceBuilder:
-    def run(self):
-        try:
-            opts, args = getopt.getopt(sys.argv[1:], "h", ["help"])
-        except getopt.error, msg:
-            print msg
-            sys.exit(2)
-        program = os.path.basename(sys.argv[0])
-        if opts:
-            # There's only the help options, so just dump some help:
-            msg = __doc__ % {"program": program}
-            print msg
-            sys.exit()
-        if len(args) not in [1, 2]:
-            print "Usage: %s home [port]" % program
-            sys.exit(2)
-
-        instance_home = args[0]
-        if not os.path.isabs(instance_home):
-            instance_home = os.path.abspath(instance_home)
-
-        for entry in sys.path:
-            if os.path.exists(os.path.join(entry, 'ZODB')):
-                zodb3_home = entry
-                break
-        else:
-            print "Can't find the Zope home (not in sys.path)"
-            sys.exit(2)
-
-        if args[1:]:
-            port = int(args[1])
-        else:
-            port = 8100  # match example in zope.conf
-
-        params = self.get_params(zodb3_home, instance_home, port)
-        self.create(instance_home, params)
-
-    def get_params(self, zodb3_home, instance_home, port):
-        return {
-            "package": "zeo",
-            "PACKAGE": "ZEO",
-            "zodb3_home": zodb3_home,
-            "instance_home": instance_home,
-            "port": port,
-            "python": sys.executable,
-            }
-
-    def create(self, home, params):
-        makedir(home)
-        makedir(home, "etc")
-        makedir(home, "var")
-        makedir(home, "log")
-        makedir(home, "bin")
-        makefile(zeo_conf_template, home, "etc", "zeo.conf", **params)
-        makexfile(zeoctl_template, home, "bin", "zeoctl", **params)
-        makexfile(runzeo_template, home, "bin", "runzeo", **params)
-
-
-def which(program):
-    strpath = os.getenv("PATH")
-    binpath = strpath.split(os.pathsep)
-    for dir in binpath:
-        path = os.path.join(dir, program)
-        if os.path.isfile(path) and os.access(path, os.X_OK):
-            if not os.path.isabs(path):
-                path = os.path.abspath(path)
-            return path
-    raise IOError("can't find %r on path %r" % (program, strpath))
-
-def makedir(*args):
-    path = ""
-    for arg in args:
-        path = os.path.join(path, arg)
-    mkdirs(path)
-    return path
-
-def mkdirs(path):
-    if os.path.isdir(path):
-        return
-    head, tail = os.path.split(path)
-    if head and tail and not os.path.isdir(head):
-        mkdirs(head)
-    os.mkdir(path)
-    print "Created directory", path
-
-def makefile(template, *args, **kwds):
-    path = makedir(*args[:-1])
-    path = os.path.join(path, args[-1])
-    data = template % kwds
-    if os.path.exists(path):
-        f = open(path)
-        olddata = f.read().strip()
-        f.close()
-        if olddata:
-            if olddata != data.strip():
-                print "Warning: not overwriting existing file %r" % path
-            return path
-    f = open(path, "w")
-    f.write(data)
-    f.close()
-    print "Wrote file", path
-    return path
-
-def makexfile(template, *args, **kwds):
-    path = makefile(template, *args, **kwds)
-    umask = os.umask(022)
-    os.umask(umask)
-    mode = 0777 & ~umask
-    if stat.S_IMODE(os.stat(path)[stat.ST_MODE]) != mode:
-        os.chmod(path, mode)
-        print "Changed mode for %s to %o" % (path, mode)
-    return path
-
-if __name__ == "__main__":
-    main()
+ZEO.mkzeoinst.main()



More information about the Zodb-checkins mailing list