From ed423dc974a61f1c033491819c9554716b8f59b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jard=C3=B3n?= Date: Mon, 13 Apr 2015 18:29:36 +0100 Subject: Add install-essential-files configuration extension This is meant to add essential system files like /etc/profile, /etc/os-release ... Change-Id: I3d67b3a452b32205c5d3c7303d128bda80ce75de --- morphlib/exts/install-essential-files.configure | 42 ++++++++++++++++++++++ .../exts/install-essential-files.configure.help | 20 +++++++++++ 2 files changed, 62 insertions(+) create mode 100755 morphlib/exts/install-essential-files.configure create mode 100644 morphlib/exts/install-essential-files.configure.help diff --git a/morphlib/exts/install-essential-files.configure b/morphlib/exts/install-essential-files.configure new file mode 100755 index 00000000..2779b0d4 --- /dev/null +++ b/morphlib/exts/install-essential-files.configure @@ -0,0 +1,42 @@ +#!/usr/bin/env python2 +# Copyright (C) 2015 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, see . + + +''' A Morph configuration extension for adding essential files to a system + +It will read the manifest files located in essential-files/manifest, +then use the contens of those files to determine which files +to install into the target system. + +''' + +import subprocess +import os + +import cliapp + +class InstallEssentialFilesConfigureExtension(cliapp.Application): + + def process_args(self, args): + target_root = args[0] + os.environ["INSTALL_FILES"] = "essential-files/manifest" + self.install_essential_files(target_root) + + def install_essential_files(self, target_root): + command = os.path.join(os.path.dirname(__file__), + "install-files.configure") + subprocess.check_call([command, target_root]) + +InstallEssentialFilesConfigureExtension().run() diff --git a/morphlib/exts/install-essential-files.configure.help b/morphlib/exts/install-essential-files.configure.help new file mode 100644 index 00000000..1d123839 --- /dev/null +++ b/morphlib/exts/install-essential-files.configure.help @@ -0,0 +1,20 @@ +# Copyright (C) 2015 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, see . + +help: | + This installs files from the essential-files/ folder in your definitions.git + repo, according to essential-files/manifest. + + It wraps the install-files.configure extension. Take a look to that + extension help to know more about the format of the manifest file. -- cgit v1.2.1