changeset 404:a798edae0844 treepkg-status

moved common publish functions to a seperate module
author Bjoern Ricks <bricks@intevation.de>
date Tue, 13 Jul 2010 12:24:14 +0000
parents f9cd55aea87d
children eaf04fc0f615
files bin/publishpackages.py treepkg/publish.py
diffstat 2 files changed, 58 insertions(+), 45 deletions(-) [+]
line wrap: on
line diff
--- a/bin/publishpackages.py	Tue Jul 13 12:23:28 2010 +0000
+++ b/bin/publishpackages.py	Tue Jul 13 12:24:14 2010 +0000
@@ -20,16 +20,8 @@
 from treepkg.run import call, capture_output
 from treepkg.cmdexpand import cmdexpand
 from treepkg.util import ensure_directory, listdir_abs
-
-
-def remove_trailing_slashes(s):
-    return s.rstrip("/")
-
-def expand_filename(filename):
-    """
-    Applies os.path.expanduser and os.path.expandvars to filename
-    """
-    return os.path.expandvars(os.path.expanduser(filename))
+from treepkg.publish import remove_trailing_slashes, expand_filename,
+                            prefix_for_remote_command, copy_to_publishdir
 
 config_desc = ["distribution", "section", "num_newest",
                "build_user", "build_host", "build_listpackages",
@@ -74,18 +66,6 @@
                             " informational output"))
     return parser.parse_args()
 
-def prefix_for_remote_command(user, host):
-    """Returns the ssh call needed to run a command on a remote host.
-    If host is empty, the function assumes the command is to be run on
-    the local host as the same user that exectutes this function, so
-    that no ssh or other call is needed.
-    """
-    prefix = []
-    if host:
-        prefix.extend(["ssh", "%s@%s" % (user, host)])
-    return prefix
-
-
 def copy_to_cache(variables, track, revision, arch, quiet):
     listpackages_vars = variables.copy()
 
@@ -126,29 +106,6 @@
         call(cmdexpand("scp -p @scp_flags @files $cachedir/", files=files,
                        scp_flags=scp_flags, **variables))
 
-
-def copy_to_publishdir(variables, dist, section, arch, quiet):
-    destdir = os.path.join(variables["publish_dir"], dist, section, arch)
-    remote_destdir = destdir
-    if variables["publish_host"]:
-        remote_destdir = (("%(publish_user)s@%(publish_host)s:" % variables)
-                          + remote_destdir)
-    runremote = prefix_for_remote_command(variables["publish_user"],
-                                          variables["publish_host"])
-
-    call(cmdexpand("@runremote mkdir --parents $destdir",
-                   runremote=runremote, destdir=destdir, **variables))
-    rsync_flags = []
-    if variables["publish_remove_old_packages"]:
-        rsync_flags.append("--delete")
-    if quiet:
-        rsync_flags.append("--quiet")
-    call(cmdexpand("rsync @rsync_flags -r --perms --times --omit-dir-times"  
-                   " $cachedir/ $remote_destdir/",
-                   rsync_flags=rsync_flags, remote_destdir=remote_destdir,
-                   **variables))
-
-
 def publish_packages_arch(variables, track, revision, dist, section, arch,
                           quiet):
     copy_to_cache(variables, track, revision, arch, quiet)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/treepkg/publish.py	Tue Jul 13 12:24:14 2010 +0000
@@ -0,0 +1,56 @@
+#! /usr/bin/python
+# Copyright (C) 2007 - 2010 by Intevation GmbH
+# Authors:
+# Bernhard Herzog <bh@intevation.de>
+# Bjoern Ricks    <bjoern.ricks@intevation.de>
+#
+# This program is free software under the GPL (>=v2)
+# Read the file COPYING coming with the software for details.
+
+import os.path
+
+from treepkg.run import call, capture_output
+from treepkg.cmdexpand import cmdexpand
+
+def remove_trailing_slashes(s):
+    return s.rstrip("/")
+
+def expand_filename(filename):
+    """
+    Applies os.path.expanduser and os.path.expandvars to filename
+    """
+    return os.path.expandvars(os.path.expanduser(filename))
+
+def prefix_for_remote_command(user, host):
+    """Returns the ssh call needed to run a command on a remote host.
+    If host is empty, the function assumes the command is to be run on
+    the local host as the same user that exectutes this function, so
+    that no ssh or other call is needed.
+    """
+    prefix = []
+    if host:
+        prefix.extend(["ssh", "%s@%s" % (user, host)])
+    return prefix
+
+def copy_to_publishdir(variables, dist, section, arch, quiet):
+    destdir = os.path.join(variables["publish_dir"], dist, section, arch)
+    remote_destdir = destdir
+    if variables["publish_host"]:
+        remote_destdir = (("%(publish_user)s@%(publish_host)s:" % variables)
+                          + remote_destdir)
+    runremote = prefix_for_remote_command(variables["publish_user"],
+                                          variables["publish_host"])
+
+    call(cmdexpand("@runremote mkdir --parents $destdir",
+                   runremote=runremote, destdir=destdir, **variables))
+    rsync_flags = []
+    if variables["publish_remove_old_packages"]:
+        rsync_flags.append("--delete")
+    if quiet:
+        rsync_flags.append("--quiet")
+    call(cmdexpand("rsync @rsync_flags -r --perms --times --omit-dir-times"  
+                   " $cachedir/ $remote_destdir/",
+                   rsync_flags=rsync_flags, remote_destdir=remote_destdir,
+                   **variables))
+
+
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)