7446c32197
It has always been a weird thing that dib is a python package, but is totally driven by the disk-image-create script. It creates this strange division that is hard to explain. This moves disk-image-create to a regular python entry-point Currently, this simply exec()s the original disk-image-create script. However, we now have a (private) interface between disk-image-create written in python and the driver shell script. Here's some things we could do, for example: * Argument parsing is generally nicer in Python, and then end result is mostly just setting environment variables to flag different things in the shell script. I could see us moving the argument-parsing into diskimage_builder.disk_image_create:main() and just setting things in os.environ before the exec()). * I7092e1845942f249175933d67ab121188f3511fd sets IMAGE_ELEMENT_YAML in disk-image-create by calling-back to element-info. We can just call element_dependencies.find_all_elements() in here an export is to os.environ before disk-image-create starts. * remove need for ramdisk-image-create symlink by just exporting IS_RAMDISK based on sys.argv[1] value * you could even unit test some of this :) Change-Id: I69ca3d26fede0506a6353c077c69f735c8d84d28
36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
# 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.
|
|
|
|
"""Export paths"""
|
|
|
|
import os
|
|
import pkg_resources
|
|
import sys
|
|
|
|
|
|
def get_path(var):
|
|
if var == "lib":
|
|
return os.path.abspath(
|
|
pkg_resources.resource_filename(__name__, "lib"))
|
|
elif var == "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))
|