diff --git a/mbed6/.gitignore b/mbed6/.gitignore index 3c20f054a225cf6d3338f786a52e8878a77af2bb..e26cce56439fdc6b83de90e048999a5e15fb943c 100644 --- a/mbed6/.gitignore +++ b/mbed6/.gitignore @@ -1,3 +1,4 @@ /build /.flatpak-builder /auto-*.json +/build-files.tar diff --git a/mbed6/Makefile b/mbed6/Makefile index 5b72326c3c6bbbd1f9d36b47e71fdf91bd07216e..f76c1a794a9d504c43f95553d1ccd6b61ca31b13 100644 --- a/mbed6/Makefile +++ b/mbed6/Makefile @@ -10,6 +10,8 @@ build: auto-ignore-installed.json\ manual-arm-none-eabi-bootstrap-gcc.json \ manual-arm-none-eabi-newlib.json \ manual-arm-none-eabi-gcc.json \ + manual-git.json \ + manual-build-files.json \ manual-mbed-cli-wrap.json flatpak-builder --force-clean build $(TARGET).json flatpak-builder --user --install --force-clean build/ $(TARGET).json @@ -22,6 +24,11 @@ setup: manual-%.json: manual-%.install +manual-build-files.json: build-files.tar + +build-files.tar: + git ls-files | tar -cf $@ --files-from=- + auto-ignore-installed.json: pip-ignore-installed.txt cat $< | xargs flatpak run se.lth.control.pip-install-to-json \ --name $@ --extra-flag --ignore-installed > $@.tmp @@ -36,10 +43,11 @@ auto-simple.json: pip-simple.txt clean: rm -f auto-*.json rm -rf .flatpak-builder/build + rm -rf build + rm -f build-files.tar + rm -f *~ .PHONY: distclean -clean: clean - rm -rf build +distclean: clean rm -rf .flatpak-builder - rm -f *~ diff --git a/mbed6/manual-build-files.install b/mbed6/manual-build-files.install new file mode 100755 index 0000000000000000000000000000000000000000..3db98f2d0122de7309280c3ecdb524c8e9cc49bb --- /dev/null +++ b/mbed6/manual-build-files.install @@ -0,0 +1,6 @@ +#!/bin/sh + +set -e + +mkdir /app/build-files +cat build-files.tar | tar --directory /app/build-files -x diff --git a/mbed6/manual-build-files.json b/mbed6/manual-build-files.json new file mode 100644 index 0000000000000000000000000000000000000000..39ce27a3411ee4ab2a64e60f4f4f6e4ff8657cbb --- /dev/null +++ b/mbed6/manual-build-files.json @@ -0,0 +1,17 @@ +{ + "name": "manual-build-files.json", + "buildsystem": "simple", + "build-commands": [ + "./manual-build-files.install" + ], + "sources": [ + { + "type": "file", + "path": "manual-build-files.install" + }, + { + "type": "file", + "path": "build-files.tar" + } + ] +} diff --git a/mbed6/mbed-cli b/mbed6/mbed-cli new file mode 100755 index 0000000000000000000000000000000000000000..88d64a857c45ffd191787aa8ad5e432b42ec1d0d --- /dev/null +++ b/mbed6/mbed-cli @@ -0,0 +1,21 @@ +#!/bin/bash + + +RUN_ARGS=() +RUN_CWD="--cwd=$(pwd)" + +# Handle case when running from within hidden directory +if [[ "$(pwd)" =~ ^(/var/tmp) ]] ; then + RUN_ARGS+=( --filesystem=${BASH_REMATCH[1]} ) +elif [[ "$(pwd)" =~ ^(/tmp) ]] ; then + RUN_ARGS+=( --filesystem=${BASH_REMATCH[1]} ) +elif [[ "$(pwd)" =~ ^(/usr) ]] ; then + RUN_CWD="--cwd=/run/host/$(pwd)" +fi + +# Handle special trampoline directory (used at control.lth.se) +if [ -d "${XDG_RUNTIME_DIR}/trampoline" ] ; then + RUN_ARGS+=( --filesystem=xdg-run/trampoline ) +fi + +flatpak "${RUN_CWD}" "${RUN_ARGS[@]}" run se.lth.control.mbed-cli $@ diff --git a/mbed6/se.lth.control.mbed-cli.json b/mbed6/se.lth.control.mbed-cli.json index 37574634df15a10bc2b8ee1d0a27ade953c6b61b..ae76f65abe5af80ec923150d14aa7062aaa6dc63 100644 --- a/mbed6/se.lth.control.mbed-cli.json +++ b/mbed6/se.lth.control.mbed-cli.json @@ -17,16 +17,12 @@ "manual-arm-none-eabi-newlib.json", "manual-arm-none-eabi-gcc.json", "manual-git.json", + "manual-build-files.json", "manual-mbed-cli-wrap.json" ], "finish-args" : [ "--filesystem=host", - "--filesystem=xdg-run/trampoline", "--share=network", - // "--share=ipc", - "--talk-name=org.freedesktop.Flatpak", - // "--socket=x11", - // "--device=dri", "--device=all" ] }