summaryrefslogtreecommitdiff
path: root/morphlib/morphology.py
diff options
context:
space:
mode:
authorLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-05-02 18:03:44 +0100
committerLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-05-02 18:03:44 +0100
commitdc7f4153ae6f74fe747117154e02a2198be6e8c2 (patch)
tree5ce9a2af402565749ecb8dd32e1c115d254be8d1 /morphlib/morphology.py
parentc70d96187f13d63a06f36ec96be2a6033e507e41 (diff)
downloadmorph-dc7f4153ae6f74fe747117154e02a2198be6e8c2.tar.gz
Get rid of the old internal morph APIs
Diffstat (limited to 'morphlib/morphology.py')
-rw-r--r--morphlib/morphology.py131
1 files changed, 0 insertions, 131 deletions
diff --git a/morphlib/morphology.py b/morphlib/morphology.py
deleted file mode 100644
index aec63c90..00000000
--- a/morphlib/morphology.py
+++ /dev/null
@@ -1,131 +0,0 @@
-# Copyright (C) 2011-2012 Codethink Limited
-#
-# 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 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.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-
-import json
-import logging
-import os
-
-
-class Morphology(object):
-
- '''Represent a morphology: description of how to build binaries.'''
-
- def __init__(self, treeish, fp):
- self.treeish = treeish
- self.filename = fp.name
-
- self._fp = fp
- self._load()
-
- def _load(self):
- logging.debug('Loading morphology %s from %s' %
- (self._fp.name, self.treeish))
- try:
- self._dict = json.load(self._fp)
- except ValueError:
- logging.error('Failed to load morphology %s from %s' %
- (self._fp.name, self.treeish))
- raise
-
- if self.kind == 'stratum':
- for source in self.sources:
- if 'repo' not in source:
- source[u'repo'] = source['name']
- source[u'repo'] = unicode(source['repo'])
-
- @property
- def name(self):
- return self._dict['name']
-
- @property
- def kind(self):
- return self._dict['kind']
-
- @property
- def description(self):
- return self._dict.get('description', '')
-
- @property
- def sources(self):
- return self._dict['sources']
-
- @property
- def build_depends(self):
- return self._dict.get('build-depends', None)
-
- @property
- def build_system(self):
- return self._dict.get('build-system', 'manual')
-
- @property
- def max_jobs(self):
- if 'max-jobs' in self._dict:
- return int(self._dict['max-jobs'])
- return None
-
- @property
- def configure_commands(self):
- return self._dict.get('configure-commands', [])
-
- @property
- def build_commands(self):
- return self._dict.get('build-commands', [])
-
- @property
- def test_commands(self):
- return self._dict.get('test-commands', [])
-
- @property
- def install_commands(self):
- return self._dict.get('install-commands', [])
-
- @property
- def chunks(self):
- return self._dict.get('chunks', {})
-
- @property
- def strata(self):
- return self._dict.get('strata', [])
-
- @property
- def disk_size(self):
- size = self._dict['disk-size']
- size = size.lower()
- if size.endswith('g'):
- size = int(size[:-1]) * 1024**3
- elif size.endswith('m'): # pragma: no cover
- size = int(size[:-1]) * 1024**2
- elif size.endswith('k'): # pragma: no cover
- size = int(size[:-1]) * 1024
- else: # pragma: no cover
- size = int(size)
- return size
-
- @property
- def test_stories(self):
- return self._dict.get('test-stories', [])
-
- def __eq__(self, other):
- return (self.filename == other.filename and
- self.treeish == other.treeish)
-
- def __hash__(self):
- return hash((self.filename, self.treeish))
-
- def __str__(self): # pragma: no cover
- return '%s|%s|%s' % (self.treeish.original_repo,
- self.treeish.ref,
- os.path.basename(self.filename))