aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/layman.cfg43
-rw-r--r--layman/overlays/bzr.py15
-rw-r--r--layman/overlays/cvs.py8
-rw-r--r--layman/overlays/darcs.py17
-rw-r--r--layman/overlays/git.py8
-rw-r--r--layman/overlays/mercurial.py17
-rw-r--r--layman/overlays/rsync.py5
-rw-r--r--layman/overlays/svn.py31
8 files changed, 125 insertions, 19 deletions
diff --git a/etc/layman.cfg b/etc/layman.cfg
index ea68e66..f345fe1 100644
--- a/etc/layman.cfg
+++ b/etc/layman.cfg
@@ -17,13 +17,13 @@ cache : %(storage)s/cache
local_list: %(storage)s/overlays.xml
#-----------------------------------------------------------
-# Path to the make.conf file that should be modified by
+# Path to the make.conf file that should be modified by
# layman
make_conf : %(storage)s/make.conf
#-----------------------------------------------------------
-# URLs of the remote lists of overlays (one per line) or
+# URLs of the remote lists of overlays (one per line) or
# local overlay definitions
#
#overlays : http://www.gentoo.org/proj/en/overlays/repositories.xml
@@ -46,7 +46,7 @@ overlays : http://www.gentoo.org/proj/en/overlays/repositories.xml
# Hopefully this description eases the double negation trouble:
#
# nocheck : yes
-# - Accepts completene overlay entries without warnings
+# - Accepts complete overlay entries without warnings
# - Lists overlays of type foo (say Git) even with no foo installed
#
# nocheck : no
@@ -87,3 +87,40 @@ nocheck : yes
#rsync_command : /usr/bin/rsync
#svn_command : /usr/bin/svn
#tar_command : /bin/tar
+#g-common_command : /usr/bin/g-common
+
+
+#-----------------------------------------------------------
+# Command additional options
+#
+# These commnad options will be added to the above commands
+# when the overlay is added or synced.
+#
+# note: there are some options hardcoded in the backend
+# scripts already. All VCS types listed here are
+# for general consistency. Options may not be available
+# or recommended for all VCS types and/or add/sync operations.
+# Any options defined here are deemed:
+# "Use at your own risk"
+# and are not supported.
+#
+# eg:
+# svn_addopts : --config-option=config:miscellany:use-commit-times=yes
+#
+
+#bzr_addopts :
+#bzr_syncopts :
+#cvs_addopts :
+#cvs_syncopts :
+#darcs_addopts :
+#darcs_syncopts :
+#git_addopts :
+#git_syncopts :
+#mercurial_addopts :
+#mercurial_syncopts :
+#rsync_syncopts :
+#svn_addopts :
+#svn_syncopts :
+#g-common_generateopts :
+#g-common_syncopts :
+
diff --git a/layman/overlays/bzr.py b/layman/overlays/bzr.py
index e73c2f4..a236210 100644
--- a/layman/overlays/bzr.py
+++ b/layman/overlays/bzr.py
@@ -50,8 +50,14 @@ class BzrOverlay(OverlaySource):
self.supported()
+ cfg_opts = self.config["bzr_addopts"]
+
# bzr get SOURCE TARGET
- args = ['get', self.src + '/', path([base, self.parent.name])]
+ if cfg_opts:
+ args = ['get', cfg_opts,
+ self.src + '/', path([base, self.parent.name])]
+ else:
+ args = ['get', self.src + '/', path([base, self.parent.name])]
return self.run_command(*args)
def sync(self, base, quiet = False):
@@ -59,8 +65,13 @@ class BzrOverlay(OverlaySource):
self.supported()
+ cfg_opts = self.config["bzr_syncopts"]
+
# bzr pull --overwrite SOURCE
- args = ['pull', '--overwrite', self.src]
+ if cfg_opts:
+ args = ['pull', cfg_opts, '--overwrite', self.src]
+ else:
+ args = ['pull', '--overwrite', self.src]
return self.run_command(*args, cwd=path([base, self.parent.name]))
def supported(self):
diff --git a/layman/overlays/cvs.py b/layman/overlays/cvs.py
index f8fc277..e4ee5eb 100644
--- a/layman/overlays/cvs.py
+++ b/layman/overlays/cvs.py
@@ -74,12 +74,16 @@ class CvsOverlay(OverlaySource):
self.supported()
+ cfg_opts = self.config["cvs_addopts"]
+
# cvs [-q] co -d SOURCE SCOPE
args = []
if quiet:
args.append('-q')
args.append('co')
args.append('-d')
+ if cfg_opts:
+ args.append(cfg_opts)
args.append(self.parent.name)
args.append(self.subpath)
@@ -90,12 +94,16 @@ class CvsOverlay(OverlaySource):
self.supported()
+ cfg_opts = self.config["cvs_syncopts"]
+
# cvs [-q] update -d
args = []
if quiet:
args.append('-q')
args.append('update')
args.append('-d')
+ if cfg_opts:
+ args.append(cfg_opts)
return self.run_command(*args, cwd=path([base, self.parent.name]))
def supported(self):
diff --git a/layman/overlays/darcs.py b/layman/overlays/darcs.py
index 7d89477..cfaba51 100644
--- a/layman/overlays/darcs.py
+++ b/layman/overlays/darcs.py
@@ -49,8 +49,16 @@ class DarcsOverlay(OverlaySource):
self.supported()
+ cfg_opts = self.config["darcs_addopts"]
+
# darcs get --partial SOURCE TARGET
- args = ['get', '--partial', self.src + '/', path([base, self.parent.name])]
+ if cfg_opts:
+ args = ['get', '--partial', cfg_opts,
+ self.src + '/', path([base, self.parent.name])]
+ else:
+ args = ['get', '--partial',
+ self.src + '/', path([base, self.parent.name])]
+
return self.run_command(*args)
def sync(self, base, quiet = False):
@@ -58,8 +66,13 @@ class DarcsOverlay(OverlaySource):
self.supported()
+ cfg_opts = self.config["darcs_addopts"]
+
# darcs pull --all SOURCE
- args = ['pull', '--all', self.src]
+ if cfg_opts:
+ args = ['pull', '--all', cfg_opts, self.src]
+ else:
+ args = ['pull', '--all', self.src]
return self.run_command(*args, cwd=path([base, self.parent.name]))
def supported(self):
diff --git a/layman/overlays/git.py b/layman/overlays/git.py
index caa73f4..9517398 100644
--- a/layman/overlays/git.py
+++ b/layman/overlays/git.py
@@ -54,10 +54,14 @@ class GitOverlay(OverlaySource):
return source + '/'
return source
+ cfg_opts = self.config["git_addopts"]
+
# git clone [-q] SOURCE TARGET
args = ['clone']
if quiet:
args.append('-q')
+ if cfg_opts:
+ args.append(cfg_opts)
args.append(fix_git_source(self.src))
args.append(path([base, self.parent.name]))
return self.run_command(*args)
@@ -67,9 +71,13 @@ class GitOverlay(OverlaySource):
self.supported()
+ cfg_opts = self.config["git_syncopts"]
+
args = ['pull']
if quiet:
args.append('-q')
+ if cfg_opts:
+ args.append(cfg_opts)
return self.run_command(*args, cwd=path([base, self.parent.name]))
def supported(self):
diff --git a/layman/overlays/mercurial.py b/layman/overlays/mercurial.py
index 06cf59d..377ad4c 100644
--- a/layman/overlays/mercurial.py
+++ b/layman/overlays/mercurial.py
@@ -49,8 +49,15 @@ class MercurialOverlay(OverlaySource):
self.supported()
+ cfg_opts = self.config["mercurial_addopts"]
+
# hg clone SOURCE TARGET
- args = ['clone', self.src + '/', path([base, self.parent.name])]
+ if cfg_opts:
+ args = ['clone', cfg_opts,
+ self.src + '/', path([base, self.parent.name])]
+ else:
+ args = ['clone', self.src + '/', path([base, self.parent.name])]
+
return self.run_command(*args)
def sync(self, base, quiet = False):
@@ -58,8 +65,14 @@ class MercurialOverlay(OverlaySource):
self.supported()
+ cfg_opts = self.config["mercurial_syncopts"]
+
# hg pull -u SOURCE
- args = ['pull', '-u', self.src]
+ if cfg_opts:
+ args = ['pull', '-u', cfg_opts, self.src]
+ else:
+ args = ['pull', '-u', self.src]
+
return self.run_command(*args, cwd=path([base, self.parent.name]))
def supported(self):
diff --git a/layman/overlays/rsync.py b/layman/overlays/rsync.py
index 3a5a342..d6f3281 100644
--- a/layman/overlays/rsync.py
+++ b/layman/overlays/rsync.py
@@ -61,8 +61,13 @@ class RsyncOverlay(OverlaySource):
# rsync OPTIONS [-q] SOURCE TARGET
args = ['-rlptDvz', '--progress', '--delete', '--delete-after', '--timeout=180',
'--exclude=distfiles/*', '--exclude=local/*', '--exclude=packages/*']
+
+ cfg_opts = self.config["rsync_syncopts"]
+
if quiet:
args.append('-q')
+ if cfg_opts:
+ args.append(cfg_opts)
args.append(self.src + '/')
args.append(path([base, self.parent.name]))
diff --git a/layman/overlays/svn.py b/layman/overlays/svn.py
index 2a30198..69d7b05 100644
--- a/layman/overlays/svn.py
+++ b/layman/overlays/svn.py
@@ -1,8 +1,8 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
-#################################################################################
+###############################################################################
# LAYMAN SVN OVERLAY HANDLER
-#################################################################################
+###############################################################################
# File: svn.py
#
# Handles subversion overlays
@@ -18,20 +18,20 @@
__version__ = "$Id: svn.py 236 2006-09-05 20:39:37Z wrobel $"
-#===============================================================================
+#==============================================================================
#
# Dependencies
#
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
from layman.utils import path
from layman.overlays.source import OverlaySource, require_supported
-#===============================================================================
+#==============================================================================
#
# Class SvnOverlay
#
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
class SvnOverlay(OverlaySource):
''' Handles subversion overlays.'''
@@ -39,9 +39,11 @@ class SvnOverlay(OverlaySource):
type = 'Subversion'
type_key = 'svn'
- def __init__(self, parent, xml, config, _location, ignore = 0, quiet = False):
+ def __init__(self, parent, xml, config, _location,
+ ignore = 0, quiet = False):
- super(SvnOverlay, self).__init__(parent, xml, config, _location, ignore, quiet)
+ super(SvnOverlay, self).__init__(
+ parent, xml,config, _location, ignore, quiet)
def add(self, base, quiet = False):
'''Add overlay.'''
@@ -50,9 +52,13 @@ class SvnOverlay(OverlaySource):
super(SvnOverlay, self).add(base)
+ cfg_opts = self.config["svn_addopts"]
+
args = ['co']
if quiet:
args.append('-q')
+ if cfg_opts:
+ args.append(cfg_opts)
args.append(self.src + '/@')
args.append(path([base, self.parent.name]))
@@ -71,10 +77,14 @@ class SvnOverlay(OverlaySource):
repo_part = repo_part + '@'
return path([base, repo_part])
+ cfg_opts = self.config["svn_syncopts"]
+
# svn up [-q] TARGET
args = ['up']
if quiet:
args.append('-q')
+ if cfg_opts:
+ args.append(cfg_opts)
args.append(checkout_location())
return self.run_command(*args)
@@ -82,5 +92,6 @@ class SvnOverlay(OverlaySource):
def supported(self):
'''Overlay type supported?'''
- return require_supported([(self.command(), 'svn',
- 'dev-vcs/subversion'),])
+ return require_supported(
+ [(self.command(), 'svn','dev-vcs/subversion'),]
+ )