mirror of
https://github.com/xemu-project/xemu.git
synced 2024-12-18 09:19:53 +00:00
tests/docker: make executable an optional argument to "update"
We're going to extend the abilities of the command shortly. Reviewed-by: Willian Rampazzo <willianr@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20210512102051.12134-4-alex.bennee@linaro.org>
This commit is contained in:
parent
3218d829e3
commit
8d628d075d
@ -248,7 +248,7 @@ docker-run: docker-qemu-src
|
||||
$(if $(EXECUTABLE), \
|
||||
$(call quiet-command, \
|
||||
$(DOCKER_SCRIPT) update \
|
||||
$(IMAGE) $(EXECUTABLE), \
|
||||
$(IMAGE) --executable $(EXECUTABLE), \
|
||||
" COPYING $(EXECUTABLE) to $(IMAGE)"))
|
||||
$(call quiet-command, \
|
||||
$(DOCKER_SCRIPT) run \
|
||||
|
@ -523,7 +523,7 @@ class UpdateCommand(SubCommand):
|
||||
def args(self, parser):
|
||||
parser.add_argument("tag",
|
||||
help="Image Tag")
|
||||
parser.add_argument("executable",
|
||||
parser.add_argument("--executable",
|
||||
help="Executable to copy")
|
||||
|
||||
def run(self, args, argv):
|
||||
@ -532,35 +532,37 @@ class UpdateCommand(SubCommand):
|
||||
tmp = tempfile.NamedTemporaryFile(suffix="dckr.tar.gz")
|
||||
tmp_tar = TarFile(fileobj=tmp, mode='w')
|
||||
|
||||
# Add the executable to the tarball, using the current
|
||||
# configured binfmt_misc path. If we don't get a path then we
|
||||
# only need the support libraries copied
|
||||
ff, enabled = _check_binfmt_misc(args.executable)
|
||||
|
||||
if not enabled:
|
||||
print("binfmt_misc not enabled, update disabled")
|
||||
return 1
|
||||
|
||||
if ff:
|
||||
tmp_tar.add(args.executable, arcname=ff)
|
||||
|
||||
# Add any associated libraries
|
||||
libs = _get_so_libs(args.executable)
|
||||
if libs:
|
||||
for l in libs:
|
||||
so_path = os.path.dirname(l)
|
||||
name = os.path.basename(l)
|
||||
real_l = os.path.realpath(l)
|
||||
try:
|
||||
tmp_tar.add(real_l, arcname="%s/%s" % (so_path, name))
|
||||
except FileNotFoundError:
|
||||
print("Couldn't add %s/%s to archive" % (so_path, name))
|
||||
pass
|
||||
|
||||
# Create a Docker buildfile
|
||||
df = StringIO()
|
||||
df.write(u"FROM %s\n" % args.tag)
|
||||
df.write(u"ADD . /\n")
|
||||
|
||||
if args.executable:
|
||||
# Add the executable to the tarball, using the current
|
||||
# configured binfmt_misc path. If we don't get a path then we
|
||||
# only need the support libraries copied
|
||||
ff, enabled = _check_binfmt_misc(args.executable)
|
||||
|
||||
if not enabled:
|
||||
print("binfmt_misc not enabled, update disabled")
|
||||
return 1
|
||||
|
||||
if ff:
|
||||
tmp_tar.add(args.executable, arcname=ff)
|
||||
|
||||
# Add any associated libraries
|
||||
libs = _get_so_libs(args.executable)
|
||||
if libs:
|
||||
for l in libs:
|
||||
so_path = os.path.dirname(l)
|
||||
name = os.path.basename(l)
|
||||
real_l = os.path.realpath(l)
|
||||
try:
|
||||
tmp_tar.add(real_l, arcname="%s/%s" % (so_path, name))
|
||||
except FileNotFoundError:
|
||||
print("Couldn't add %s/%s to archive" % (so_path, name))
|
||||
pass
|
||||
|
||||
df.write(u"ADD . /\n")
|
||||
|
||||
df_bytes = BytesIO(bytes(df.getvalue(), "UTF-8"))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user