diff options
author | Jürg Billeter <j@bitron.ch> | 2017-08-15 14:55:57 +0200 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2017-08-22 08:40:55 +0200 |
commit | ee52bdf4327578c561ca7b0a1729e12462dcbc16 (patch) | |
tree | 1809bed1c13bd53c57be3df839319847e6222ebd /buildstream/plugins | |
parent | a10b9ce7dab55490afc85b130852a64633863961 (diff) | |
download | buildstream-ee52bdf4327578c561ca7b0a1729e12462dcbc16.tar.gz |
import.py: Implement generate_script() for source bundles
Fixes #59
Diffstat (limited to 'buildstream/plugins')
-rw-r--r-- | buildstream/plugins/elements/import.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/buildstream/plugins/elements/import.py b/buildstream/plugins/elements/import.py index a6178a179..3ab7f7833 100644 --- a/buildstream/plugins/elements/import.py +++ b/buildstream/plugins/elements/import.py @@ -91,6 +91,32 @@ class ImportElement(BuildElement): # And we're done return '/output' + def generate_script(self): + build_root = self.get_variable('build-root') + install_root = self.get_variable('install-root') + commands = [] + + # The directory to grab + inputdir = os.path.join(build_root, self.normal_name, self.source.lstrip(os.sep)) + inputdir = inputdir.rstrip(os.sep) + + # The output target directory + outputdir = os.path.join(install_root, self.target.lstrip(os.sep)) + outputdir = outputdir.rstrip(os.sep) + + # Ensure target directory parent exists but target directory doesn't + commands.append("mkdir -p {}".format(os.path.dirname(outputdir))) + commands.append("[ ! -e {} ] || rmdir {}".format(outputdir, outputdir)) + + # Move it over + commands.append("mv {} {}".format(inputdir, outputdir)) + + script = "" + for cmd in commands: + script += "(set -ex; {}\n) || exit 1\n".format(cmd) + + return script + # Plugin entry point def setup(): |