diff options
Diffstat (limited to 'base/dirfactory.py')
| -rw-r--r-- | base/dirfactory.py | 67 |
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'] |
