Move element-info to a standard entry-point
Move element-info from a wrapper script to a standard entry-point console_script. Update the documentation to explain how to run it for development. I don't think we should support the idea that you can check-out the code and run ./bin/disk-image-create -- it has dependencies (dib-utils, etc) and needs to be run from a virtualenv (this is what CI in the gate does). A follow-up can clean-up some of the path munging stuff we have for this in disk-image-create. Change-Id: Ic0c03995667f320a27ac30441279f3e6abb6bca8
This commit is contained in:
parent
3d48a528c1
commit
91b431ce78
@ -1,5 +1,4 @@
|
|||||||
include bin/disk-image-create
|
include bin/disk-image-create
|
||||||
include bin/element-info
|
|
||||||
include bin/ramdisk-image-create
|
include bin/ramdisk-image-create
|
||||||
graft lib
|
graft lib
|
||||||
graft elements
|
graft elements
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# Copyright 2013 Hewlett-Packard Development Company, L.P.
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
import sys
|
|
||||||
|
|
||||||
from diskimage_builder.element_dependencies import main
|
|
||||||
|
|
||||||
|
|
||||||
sys.exit(main(sys.argv))
|
|
@ -179,7 +179,7 @@ def find_all_elements(paths=None):
|
|||||||
return all_elements
|
return all_elements
|
||||||
|
|
||||||
|
|
||||||
def main(argv):
|
def main():
|
||||||
diskimage_builder.logging_config.setup()
|
diskimage_builder.logging_config.setup()
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
@ -194,7 +194,7 @@ def main(argv):
|
|||||||
help=('Output eval-able bash strings for '
|
help=('Output eval-able bash strings for '
|
||||||
'IMAGE_ELEMENT variables'))
|
'IMAGE_ELEMENT variables'))
|
||||||
|
|
||||||
args = parser.parse_args(argv[1:])
|
args = parser.parse_args(sys.argv[1:])
|
||||||
|
|
||||||
all_elements = find_all_elements()
|
all_elements = find_all_elements()
|
||||||
|
|
||||||
@ -232,3 +232,6 @@ def main(argv):
|
|||||||
print(' '.join(elements))
|
print(' '.join(elements))
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
Installation
|
||||||
|
============
|
||||||
|
|
||||||
|
For general use, you can use distribution packages or install via
|
||||||
|
``pip`` in a ``virtualenv``
|
||||||
|
|
||||||
|
For development purposes, you can use ``pip -e`` to install into a
|
||||||
|
local development/testing ``virtualenv``, or use ``tox -e venv --
|
||||||
|
disk-image-create`` to run within a ``tox`` created environment.
|
||||||
|
|
||||||
Invocation
|
Invocation
|
||||||
==========
|
==========
|
||||||
|
|
||||||
|
@ -194,6 +194,7 @@ function arg_to_elements() {
|
|||||||
IMAGE_ELEMENT="$RAMDISK_ELEMENT $IMAGE_ELEMENT"
|
IMAGE_ELEMENT="$RAMDISK_ELEMENT $IMAGE_ELEMENT"
|
||||||
fi
|
fi
|
||||||
echo "Building elements: $IMAGE_ELEMENT"
|
echo "Building elements: $IMAGE_ELEMENT"
|
||||||
|
export IMAGE_ELEMENT
|
||||||
|
|
||||||
# element-info will output bash code to create
|
# element-info will output bash code to create
|
||||||
# * IMAGE_ELEMENT
|
# * IMAGE_ELEMENT
|
||||||
@ -217,7 +218,7 @@ function arg_to_elements() {
|
|||||||
# element=$i
|
# element=$i
|
||||||
# path=${image_elements[$i]
|
# path=${image_elements[$i]
|
||||||
# done
|
# done
|
||||||
eval "$($SCRIPT_HOME/element-info --env $IMAGE_ELEMENT)"
|
eval "$(element-info --env $IMAGE_ELEMENT)"
|
||||||
|
|
||||||
echo "Expanded element dependencies to: $IMAGE_ELEMENT"
|
echo "Expanded element dependencies to: $IMAGE_ELEMENT"
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
deprecations:
|
||||||
|
|
||||||
|
- The ``element-info`` script is now provided by a standard python
|
||||||
|
entry-point, rather than an explicit wrapper script. This may
|
||||||
|
affect you if you were running this script directly out of ``bin``
|
||||||
|
in the source directory without installing. See developer notes
|
||||||
|
for details on using developer-installs with virtual environments
|
||||||
|
for testing.
|
@ -28,7 +28,6 @@ packages =
|
|||||||
scripts =
|
scripts =
|
||||||
bin/dib-lint
|
bin/dib-lint
|
||||||
bin/disk-image-create
|
bin/disk-image-create
|
||||||
bin/element-info
|
|
||||||
bin/ramdisk-image-create
|
bin/ramdisk-image-create
|
||||||
data_files =
|
data_files =
|
||||||
share/diskimage-builder/elements = elements/*
|
share/diskimage-builder/elements = elements/*
|
||||||
@ -57,4 +56,5 @@ universal = 1
|
|||||||
|
|
||||||
[entry_points]
|
[entry_points]
|
||||||
console_scripts =
|
console_scripts =
|
||||||
|
element-info = diskimage_builder.element_dependencies:main
|
||||||
dib-block-device = diskimage_builder.block_device:main
|
dib-block-device = diskimage_builder.block_device:main
|
||||||
|
Loading…
Reference in New Issue
Block a user