From a2d78838b1dde898408c9753935c3b768e9514e6 Mon Sep 17 00:00:00 2001 From: falkTX Date: Thu, 15 Jun 2023 12:24:47 +0200 Subject: [PATCH] Setup file manager and user-files Signed-off-by: falkTX --- .gitmodules | 3 +++ README.md | 2 +- data/release | 1 + source/browsepy | 1 + source/browsepy.sh | 53 ++++++++++++++++++++++++++++++++++++++++++++++ source/mod-host | 2 +- source/mod-sdk | 2 +- source/mod-sdk.sh | 3 +-- source/mod-ui | 2 +- source/mod-ui.sh | 10 ++++++--- 10 files changed, 70 insertions(+), 9 deletions(-) create mode 100644 data/release create mode 160000 source/browsepy create mode 100755 source/browsepy.sh diff --git a/.gitmodules b/.gitmodules index ca70483..e2597a2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "source/mod-sdk"] path = source/mod-sdk url = https://github.com/moddevices/mod-sdk.git +[submodule "source/browsepy"] + path = source/browsepy + url = https://github.com/moddevices/browsepy.git diff --git a/README.md b/README.md index d3f3d6a..796bed1 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Simply clone this repository recursively (either with `git clone --recursive` or ```sh make -./source/mod-panel +make run ``` Afterwards simply click on "Start" for MOD Host + UI or SDK, and then its ">" button to open a browser on the predefined location. diff --git a/data/release b/data/release new file mode 100644 index 0000000..7e42983 --- /dev/null +++ b/data/release @@ -0,0 +1 @@ +v1.14.0.0 diff --git a/source/browsepy b/source/browsepy new file mode 160000 index 0000000..c224587 --- /dev/null +++ b/source/browsepy @@ -0,0 +1 @@ +Subproject commit c2245873f9432b2839f09be7eeb2992fd3bbc5ff diff --git a/source/browsepy.sh b/source/browsepy.sh new file mode 100755 index 0000000..712097b --- /dev/null +++ b/source/browsepy.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +set -e + +cd $(dirname "${0}")/browsepy + +# setup environment variables +WORKDIR=${WORKDIR:=~/mod-workdir} + +export MOD_USER_FILES_DIR="${WORKDIR}/user-files" + +# if coming through PawPaw, reset PATH +if [ -n "${OLD_PATH}" ]; then + export PATH="${OLD_PATH}" +else + export PATH="~/.local/bin:${PATH}" +fi + +# check for pip3 tool +if ! command -v pip3 >/dev/null; then + echo "pip3 tool not available, cannot continue" + exit 1 +fi + +# install virtualenv as needed +if ! virtualenv --version 2>/dev/null; then + pip3 install virtualenv +fi + +# activate virtualenv +virtualenv browsepy-env +source browsepy-env/bin/activate + +# install required mod-ui dependencies in virtualenv +pip3 install -r requirements.txt + +# create initial directories +mkdir -p "${MOD_USER_FILES_DIR}/Audio Loops" +mkdir -p "${MOD_USER_FILES_DIR}/Audio Recordings" +mkdir -p "${MOD_USER_FILES_DIR}/Audio Samples" +mkdir -p "${MOD_USER_FILES_DIR}/Audio Tracks" +mkdir -p "${MOD_USER_FILES_DIR}/MIDI Clips" +mkdir -p "${MOD_USER_FILES_DIR}/MIDI Songs" +mkdir -p "${MOD_USER_FILES_DIR}/Reverb IRs" +mkdir -p "${MOD_USER_FILES_DIR}/Speaker Cabinets IRs" +mkdir -p "${MOD_USER_FILES_DIR}/Hydrogen Drumkits" +mkdir -p "${MOD_USER_FILES_DIR}/SF2 Instruments" +mkdir -p "${MOD_USER_FILES_DIR}/SFZ Instruments" +mkdir -p "${MOD_USER_FILES_DIR}/Aida DSP Models" +mkdir -p "${MOD_USER_FILES_DIR}/NAM Models" + +# start browsepy inside virtualenv +exec python3 -c "from browsepy.__main__ import main; main()" --directory "${MOD_USER_FILES_DIR}" --upload "${MOD_USER_FILES_DIR}" --removable "${MOD_USER_FILES_DIR}" 127.0.0.1 8081 diff --git a/source/mod-host b/source/mod-host index aac5e57..f36bce7 160000 --- a/source/mod-host +++ b/source/mod-host @@ -1 +1 @@ -Subproject commit aac5e5715996934cb683837b415e6972afe26a2b +Subproject commit f36bce78eed80f4f7194c923afd4dcae2c80bc79 diff --git a/source/mod-sdk b/source/mod-sdk index 3b87dc0..ba1e9be 160000 --- a/source/mod-sdk +++ b/source/mod-sdk @@ -1 +1 @@ -Subproject commit 3b87dc062b803a0ca1ec2bb2729c425a85ce7bd0 +Subproject commit ba1e9be87b7cb50cf18169649b2cffa9c7dd2c9d diff --git a/source/mod-sdk.sh b/source/mod-sdk.sh index fa36785..7b86063 100755 --- a/source/mod-sdk.sh +++ b/source/mod-sdk.sh @@ -6,7 +6,6 @@ cd $(dirname "${0}")/mod-sdk # TODO setup MOD_DEVICE_MODE # TODO setup MOD_DATA_DIR -# TODO setup LV2_PATH # if coming through PawPaw, reset PATH if [ -n "${OLD_PATH}" ]; then @@ -16,7 +15,7 @@ else fi # check for pip3 tool -if ! which pip3 1>/dev/null 2>/dev/null; then +if ! command -v pip3 >/dev/null; then echo "pip3 tool not available, cannot continue" exit 1 fi diff --git a/source/mod-ui b/source/mod-ui index 2bb3052..6baaa39 160000 --- a/source/mod-ui +++ b/source/mod-ui @@ -1 +1 @@ -Subproject commit 2bb30527569d75af4773aa05bd3a1b25241dc5f1 +Subproject commit 6baaa39296e19f66bf591383e09e8e4cbe2675f1 diff --git a/source/mod-ui.sh b/source/mod-ui.sh index ab57fbd..e4d9696 100755 --- a/source/mod-ui.sh +++ b/source/mod-ui.sh @@ -4,12 +4,16 @@ set -e cd $(dirname "${0}")/mod-ui +# setup environment variables +WORKDIR=${WORKDIR:=~/mod-workdir} + export MOD_DEV_ENVIRONMENT=0 export MOD_LOG=1 +export MOD_IMAGE_VERSION_PATH="${PWD}/../../data/release" +export MOD_USER_FILES_DIR="${WORKDIR}/user-files" + # TODO setup MOD_DATA_DIR -# TODO setup LV2_PATH -# TODO setup MOD_LOG # if coming through PawPaw, reset PATH if [ -n "${OLD_PATH}" ]; then @@ -19,7 +23,7 @@ else fi # check for pip3 tool -if ! which pip3 1>/dev/null 2>/dev/null; then +if ! command -v pip3 >/dev/null; then echo "pip3 tool not available, cannot continue" exit 1 fi