diff --git a/MANIFEST.in b/MANIFEST.in index 858ab9d5e..9561fb106 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1 @@ -include bin/disk-image-create -include bin/ramdisk-image-create -graft lib -graft elements include README.rst diff --git a/bin/diskimage_builder b/bin/diskimage_builder deleted file mode 120000 index ac949dc60..000000000 --- a/bin/diskimage_builder +++ /dev/null @@ -1 +0,0 @@ -../diskimage_builder \ No newline at end of file diff --git a/diskimage_builder/disk_image_create.py b/diskimage_builder/disk_image_create.py new file mode 100644 index 000000000..1727c8c43 --- /dev/null +++ b/diskimage_builder/disk_image_create.py @@ -0,0 +1,46 @@ +# Copyright 2016 Ian Wienand (iwienand@redhat.com) +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +# Python Logging Configuration for DIB +# Usage: +# In the main (application) file, do an +# import logging_config +# ... +# logging_config.setup() +# It is then possible to use the normal python logging interface, like +# logger = logging.getLogger(__name__) +# logger.info("Info Message") + +import os +import os.path +import sys + +import diskimage_builder.paths + + +def main(): + environ = os.environ + + # pre-seed some paths for the shell script + environ['_LIB'] = diskimage_builder.paths.get_path('lib') + + # we have to handle being called as "disk-image-create" or + # "ramdisk-image-create". ramdisk-iamge-create is just a symlink + # to disk-image-create + # XXX: we could simplify things by removing the symlink, and + # just setting IS_RAMDISK in environ here depending on sys.argv[1] + script = "%s/%s" % (diskimage_builder.paths.get_path('lib'), + os.path.basename(sys.argv[0])) + + os.execve("/bin/bash", ['bash', script] + sys.argv[1:], environ) diff --git a/bin/disk-image-create b/diskimage_builder/lib/disk-image-create similarity index 99% rename from bin/disk-image-create rename to diskimage_builder/lib/disk-image-create index 086c04242..816858b3f 100755 --- a/bin/disk-image-create +++ b/diskimage_builder/lib/disk-image-create @@ -26,13 +26,14 @@ export DIB_ENV=$(export | grep ' DIB_.*=') SCRIPTNAME=$(basename $0) -export _LIB=$(python -c ' -import diskimage_builder.paths -diskimage_builder.paths.get_path("lib")') +if [ -z "$_LIB" ]; then + echo "_LIB not set!" + exit 1 +fi _BASE_ELEMENT_DIR=$(python -c ' import diskimage_builder.paths -diskimage_builder.paths.get_path("elements")') +diskimage_builder.paths.show_path("elements")') source $_LIB/die diff --git a/bin/ramdisk-image-create b/diskimage_builder/lib/ramdisk-image-create similarity index 100% rename from bin/ramdisk-image-create rename to diskimage_builder/lib/ramdisk-image-create diff --git a/diskimage_builder/paths.py b/diskimage_builder/paths.py index 18f2028ea..857bad400 100644 --- a/diskimage_builder/paths.py +++ b/diskimage_builder/paths.py @@ -21,11 +21,15 @@ import sys def get_path(var): if var == "lib": - print(os.path.abspath( - pkg_resources.resource_filename(__name__, "lib"))) + return os.path.abspath( + pkg_resources.resource_filename(__name__, "lib")) elif var == "elements": - print(os.path.abspath( - pkg_resources.resource_filename(__name__, "elements"))) + return os.path.abspath( + pkg_resources.resource_filename(__name__, "elements")) else: print("Unknown path request!") sys.exit(1) + + +def show_path(var): + print(get_path(var)) diff --git a/setup.cfg b/setup.cfg index 2fdb2b220..4c5e9357f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -27,8 +27,6 @@ packages = # real file on install; see lp bug #1212482 scripts = bin/dib-lint - bin/disk-image-create - bin/ramdisk-image-create data_files = share/diskimage-builder/scripts = scripts/* @@ -56,3 +54,5 @@ universal = 1 console_scripts = element-info = diskimage_builder.element_dependencies:main dib-block-device = diskimage_builder.block_device:main + disk-image-create = diskimage_builder.disk_image_create:main + ramdisk-image-create = diskimage_builder.disk_image_create:main diff --git a/tests/run_functests.sh b/tests/run_functests.sh index 75093c54e..c04d551ef 100755 --- a/tests/run_functests.sh +++ b/tests/run_functests.sh @@ -4,11 +4,10 @@ set -eu set -o pipefail BASE_DIR=$(cd $(dirname "$0")/.. && pwd) -export DIB_CMD=$BASE_DIR/bin/disk-image-create +export DIB_CMD=disk-image-create export DIB_ELEMENTS=$(python -c ' import diskimage_builder.paths -diskimage_builder.paths.get_path("elements")') - +diskimage_builder.paths.show_path("elements")') # # Default skip tests