summaryrefslogtreecommitdiffstats
path: root/layman/overlays/cvs.py
diff options
context:
space:
mode:
Diffstat (limited to 'layman/overlays/cvs.py')
-rw-r--r--layman/overlays/cvs.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/layman/overlays/cvs.py b/layman/overlays/cvs.py
new file mode 100644
index 0000000..95f20ea
--- /dev/null
+++ b/layman/overlays/cvs.py
@@ -0,0 +1,73 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#################################################################################
+# LAYMAN CVS OVERLAY HANDLER
+#################################################################################
+# File: cvs.py
+#
+# Handles cvs overlays
+#
+# Copyright:
+# (c) 2005 - 2006 Gunnar Wrobel
+# Distributed under the terms of the GNU General Public License v2
+#
+# Author(s):
+# Gunnar Wrobel <wrobel@gentoo.org>
+#
+''' Cvs overlay support.'''
+
+__version__ = "$Id$"
+
+#===============================================================================
+#
+# Dependencies
+#
+#-------------------------------------------------------------------------------
+
+from layman.utils import path
+from layman.overlays.overlay import Overlay
+
+#===============================================================================
+#
+# Class CvsOverlay
+#
+#-------------------------------------------------------------------------------
+
+class CvsOverlay(Overlay):
+ ''' Handles cvs overlays.'''
+
+ type = 'cvs'
+
+ binary = '/usr/bin/cvs'
+
+ def __init__(self, xml, ignore = 0, quiet = False):
+
+ Overlay.__init__(self, xml, ignore, quiet)
+
+ if '&subpath' in self.data.keys():
+ self.subpath = self.data['&subpath']
+ else:
+ self.subpath = ''
+
+ def add(self, base):
+ '''Add overlay.'''
+
+ self.supported()
+
+ return self.cmd('cd "' + base + '" && CVSROOT="' + self.src + '" ' +
+ self.binary + ' co -d "' + self.name
+ + '" "' + self.subpath + '"' )
+
+ def sync(self, base):
+ '''Sync overlay.'''
+
+ self.supported()
+
+ return self.cmd('cd "' + path([base, self.name]) + '" && ' +
+ self.binary + ' update')
+
+ def supported(self):
+ '''Overlay type supported?'''
+
+ return Overlay.supported(self, [(self.binary, 'cvs',
+ 'dev-util/cvs'),])