예제 #1
0
    def post_conf(self, inhibitor_state):
        if self.conf.has('seed'):
            self.seed = self.conf.seed

        if self.conf.has('fs_add'):
            self.conf.fs_add.keep = True
            self.conf.fs_add.dest = util.Path('/')
            self.stage_sources.append(self.conf.fs_add)

        baselayout     = source.create_source(
            src = 'file://%s/early-userspace/root' % inhibitor_state.paths.share,
            keep = True,
            dest = util.Path('/')
        )
        self.stage_sources.append(baselayout)

        for src in self.stage_sources:
            src.post_conf(inhibitor_state)
            src.init()

        super(EmbeddedStage, self).post_conf(inhibitor_state)
        self.moduledir      = self.istate.paths.share.pjoin('early-userspace/modules')
        self.tarpath        = self.istate.paths.stages.pjoin('%s/image.tar.bz2' % (self.build_name,))
        self.cpiopath       = self.istate.paths.stages.pjoin('%s/initramfs.gz' % (self.build_name,))
        self.kernlinkpath   = self.istate.paths.stages.pjoin('%s/kernel' % (self.build_name,))

        if self.conf.has('files'):
            self.files = util.strlist_to_list(self.conf.files)

        if self.conf.has('package_list'):
            self.package_list = util.strlist_to_list(self.conf.package_list)

        if self.conf.has('modules'):
            self.modules = self.conf.modules

        for m in self.modules:
            need_file   = self.moduledir.pjoin('%s.files' % m)
            pkg_file    = self.moduledir.pjoin('%s.pkgs' % m)
            if os.path.lexists(need_file):
                f = open(need_file)
                for l in f.readlines():
                    self.files.append(l.strip())
                    util.dbg('Adding path %s for %s' % (l.strip(), m))
                f.close()
            if os.path.lexists(pkg_file):
                f = open(pkg_file)
                for l in f.readlines():
                    self.package_list.append(l.strip())
                    util.dbg('Adding package %s for %s' % (l.strip(), m))
                f.close()
예제 #2
0
    def post_conf(self, inhibitor_state):
        super(Stage4, self).post_conf(inhibitor_state)

        if self.conf.has("scripts"):
            self.scripts = self.conf.scripts
            for script in self.conf.scripts:
                script.post_conf(inhibitor_state)

        if self.conf.has("packages"):
            self.package_list = util.strlist_to_list(self.conf.packages)
        else:
            raise util.InhibitorError("No packages specified")
예제 #3
0
    def __init__(self, name, src, args = [], needs=[]):
        self.local_src = util.Path('/tmp/inhibitor/sh/').pjoin(name)
        self.script = create_source(
            src,
            keep = False,
            dest = self.local_src )

        self.args = util.strlist_to_list(args)
        self.reqs = []

        if type(needs) != types.ListType:
            needs = [needs]

        for need in needs:
            need.dest = util.Path('/tmp/inhibitor/sh').pjoin(os.path.basename(need.src))
            need.keep = False
            self.reqs.append(need)