summaryrefslogtreecommitdiffstats
path: root/base/dirfactory.py
diff options
context:
space:
mode:
authorYaakov M. Nemoy <loupgaroublond@gmail.com>2009-01-18 22:21:05 -0500
committerYaakov M. Nemoy <loupgaroublond@gmail.com>2009-01-18 22:21:05 -0500
commitd3d01a3237b1767f61953e34879dffd16667b769 (patch)
tree360c9a4d5131580cbbd42973f5a98ef9e2d04a02 /base/dirfactory.py
parent2582dbfd415494a7fa5b378082b0aba19e6d88c1 (diff)
downloadfedora-devshell-d3d01a3237b1767f61953e34879dffd16667b769.tar.gz
fedora-devshell-d3d01a3237b1767f61953e34879dffd16667b769.tar.xz
fedora-devshell-d3d01a3237b1767f61953e34879dffd16667b769.zip
Modifies factories, adds a BuildSystemFactory
BSFactory, oh yeah!
Diffstat (limited to 'base/dirfactory.py')
-rw-r--r--base/dirfactory.py67
1 files changed, 0 insertions, 67 deletions
diff --git a/base/dirfactory.py b/base/dirfactory.py
deleted file mode 100644
index 57d66db..0000000
--- a/base/dirfactory.py
+++ /dev/null
@@ -1,67 +0,0 @@
-# Fedora Developer Shell
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Library General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# Authors: Yaakov M. Nemoy <ynemoy@redhat.com>
-#
-
-from __future__ import with_statement
-
-from configobj import ConfigObj
-from os import getcwd
-from os.path import abspath, exists
-
-from util import pwd, log
-from exceptions import ExecutionException
-
-directory_type = dict()
-
-def register(cls, name):
- global directory_type
- directory_type[name] = cls
-
-class DirFactory(object):
- '''creates a new object of type defined by a directory's .devshell file'''
- def __new__(cls, name=None):
- if not name:
- log.debug('no name with dirfactory')
- dir = getcwd()
- type = whatis_sysdir(dir)
- else:
- log.debug('dirfactory.new with name ' + name)
- dir = abspath(name)
- if not exists(dir):
- type = 'directory'
- else:
- type = whatis_sysdir(dir)
- try:
- new_cls = directory_type[type]
- except KeyError, e:
- raise ExecutionException(e, 'the directory type %s is not supported by this installation of fedora-deveshell' % type.capitalize())
- foo = new_cls.__new__(new_cls, name)
- foo.__init__(name)
- return foo
-
-def whatis_sysdir(dir):
- ''' given a dir, determine it's type'''
- with pwd(dir):
- cfg = ConfigObj('.devshell')
- try:
- type = cfg['type']
- log.debug('is type ' + type)
- return type
- except KeyError, e:
- return 'directory'
-
-__all__ = ['DirFactory', 'register']