diff --git a/README.md b/README.md index fe6e26c..10bb7a9 100644 --- a/README.md +++ b/README.md @@ -4,60 +4,11 @@ The classical music player and organizer. https://musicus.org -## Hacking +## Repository structure -### Building - -Musicus uses the [Meson build system](https://mesonbuild.com/). You can build -it using the following commands: - -``` -$ meson build -$ ninja -C build -``` - -Afterwards the resulting binary executable is under -`build/target/debug/musicus`. - -### Flatpak - -There is a Flatpak manifest file called `de.johrpan.musicus.json`. To build a -Flatpak you need the the latest Gnome SDK and the Freedesktop SDK with the Rust -extension. You can install those using the following commands: - -``` -$ flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo -$ flatpak remote-add --user --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo -$ flatpak install --user gnome-nightly org.gnome.Sdk org.gnome.Platform -$ flatpak install --user flathub org.freedesktop.Sdk.Extension.rust-stable//19.08 -``` - -Afterwards, the following commands will build, install and run the application: - -``` -$ rm -rf flatpak -$ flatpak-builder --user --install flatpak de.johrpan.musicus.json -$ flatpak run de.johrpan.musicus -``` - -### Special requirements - -This program uses [Diesel](https://diesel.rs) as its ORM. After installing -the Diesel command line utility, you will be able to create a new schema -migration using the following command: - -``` -$ diesel migration generate [change_description] -``` - -To update the `src/database/schema.rs` file, you should use the following -command: - -``` -$ diesel migration run --database-url test.sqlite -``` - -This file should never be edited manually. +The subdirectories contain toplevel components of the Musicus system. Currently +you will only find a Musicus desktop app under `musicus`. The component READMEs +provide more detailed information. ## License diff --git a/.gitignore b/musicus/.gitignore similarity index 100% rename from .gitignore rename to musicus/.gitignore diff --git a/Cargo.toml b/musicus/Cargo.toml similarity index 100% rename from Cargo.toml rename to musicus/Cargo.toml diff --git a/musicus/README.md b/musicus/README.md new file mode 100644 index 0000000..080f29e --- /dev/null +++ b/musicus/README.md @@ -0,0 +1,60 @@ +# Musicus + +This is a desktop app for Musicus. + +https://musicus.org + +## Hacking + +### Building + +Musicus uses the [Meson build system](https://mesonbuild.com/). You can build +it using the following commands: + +``` +$ meson build +$ ninja -C build +``` + +Afterwards the resulting binary executable is under +`build/target/debug/musicus`. + +### Flatpak + +There is a Flatpak manifest file called `de.johrpan.musicus.json`. To build a +Flatpak you need the the latest Gnome SDK and the Freedesktop SDK with the Rust +extension. You can install those using the following commands: + +``` +$ flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo +$ flatpak remote-add --user --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo +$ flatpak install --user gnome-nightly org.gnome.Sdk org.gnome.Platform +$ flatpak install --user flathub org.freedesktop.Sdk.Extension.rust-stable//19.08 +``` + +Afterwards, the following commands will build, install and run the application: + +``` +$ rm -rf flatpak +$ flatpak-builder --user --install flatpak de.johrpan.musicus.json +$ flatpak run de.johrpan.musicus +``` + +### Special requirements + +This program uses [Diesel](https://diesel.rs) as its ORM. After installing +the Diesel command line utility, you will be able to create a new schema +migration using the following command: + +``` +$ diesel migration generate [change_description] +``` + +To update the `src/database/schema.rs` file, you should use the following +command: + +``` +$ diesel migration run --database-url test.sqlite +``` + +This file should never be edited manually. \ No newline at end of file diff --git a/build-aux/cargo.sh b/musicus/build-aux/cargo.sh similarity index 100% rename from build-aux/cargo.sh rename to musicus/build-aux/cargo.sh diff --git a/build-aux/postinstall.py b/musicus/build-aux/postinstall.py similarity index 100% rename from build-aux/postinstall.py rename to musicus/build-aux/postinstall.py diff --git a/data/de.johrpan.musicus.desktop.in b/musicus/data/de.johrpan.musicus.desktop.in similarity index 100% rename from data/de.johrpan.musicus.desktop.in rename to musicus/data/de.johrpan.musicus.desktop.in diff --git a/data/de.johrpan.musicus.gschema.xml b/musicus/data/de.johrpan.musicus.gschema.xml similarity index 100% rename from data/de.johrpan.musicus.gschema.xml rename to musicus/data/de.johrpan.musicus.gschema.xml diff --git a/data/icons/hicolor/scalable/apps/de.johrpan.musicus.svg b/musicus/data/icons/hicolor/scalable/apps/de.johrpan.musicus.svg similarity index 100% rename from data/icons/hicolor/scalable/apps/de.johrpan.musicus.svg rename to musicus/data/icons/hicolor/scalable/apps/de.johrpan.musicus.svg diff --git a/data/icons/hicolor/symbolic/apps/de.johrpan.musicus-symbolic.svg b/musicus/data/icons/hicolor/symbolic/apps/de.johrpan.musicus-symbolic.svg similarity index 100% rename from data/icons/hicolor/symbolic/apps/de.johrpan.musicus-symbolic.svg rename to musicus/data/icons/hicolor/symbolic/apps/de.johrpan.musicus-symbolic.svg diff --git a/data/meson.build b/musicus/data/meson.build similarity index 100% rename from data/meson.build rename to musicus/data/meson.build diff --git a/de.johrpan.musicus.json b/musicus/de.johrpan.musicus.json similarity index 100% rename from de.johrpan.musicus.json rename to musicus/de.johrpan.musicus.json diff --git a/diesel.toml b/musicus/diesel.toml similarity index 100% rename from diesel.toml rename to musicus/diesel.toml diff --git a/meson.build b/musicus/meson.build similarity index 100% rename from meson.build rename to musicus/meson.build diff --git a/migrations/2020-09-27-201047_initial_schema/down.sql b/musicus/migrations/2020-09-27-201047_initial_schema/down.sql similarity index 100% rename from migrations/2020-09-27-201047_initial_schema/down.sql rename to musicus/migrations/2020-09-27-201047_initial_schema/down.sql diff --git a/migrations/2020-09-27-201047_initial_schema/up.sql b/musicus/migrations/2020-09-27-201047_initial_schema/up.sql similarity index 100% rename from migrations/2020-09-27-201047_initial_schema/up.sql rename to musicus/migrations/2020-09-27-201047_initial_schema/up.sql diff --git a/po/LINGUAS b/musicus/po/LINGUAS similarity index 100% rename from po/LINGUAS rename to musicus/po/LINGUAS diff --git a/po/POTFILES.in b/musicus/po/POTFILES.in similarity index 100% rename from po/POTFILES.in rename to musicus/po/POTFILES.in diff --git a/po/de.po b/musicus/po/de.po similarity index 100% rename from po/de.po rename to musicus/po/de.po diff --git a/po/meson.build b/musicus/po/meson.build similarity index 100% rename from po/meson.build rename to musicus/po/meson.build diff --git a/po/musicus.pot b/musicus/po/musicus.pot similarity index 100% rename from po/musicus.pot rename to musicus/po/musicus.pot diff --git a/res/meson.build b/musicus/res/meson.build similarity index 100% rename from res/meson.build rename to musicus/res/meson.build diff --git a/res/musicus.gresource.xml b/musicus/res/musicus.gresource.xml similarity index 100% rename from res/musicus.gresource.xml rename to musicus/res/musicus.gresource.xml diff --git a/res/ui/ensemble_editor.ui b/musicus/res/ui/ensemble_editor.ui similarity index 100% rename from res/ui/ensemble_editor.ui rename to musicus/res/ui/ensemble_editor.ui diff --git a/res/ui/ensemble_screen.ui b/musicus/res/ui/ensemble_screen.ui similarity index 100% rename from res/ui/ensemble_screen.ui rename to musicus/res/ui/ensemble_screen.ui diff --git a/res/ui/ensemble_selector.ui b/musicus/res/ui/ensemble_selector.ui similarity index 100% rename from res/ui/ensemble_selector.ui rename to musicus/res/ui/ensemble_selector.ui diff --git a/res/ui/instrument_editor.ui b/musicus/res/ui/instrument_editor.ui similarity index 100% rename from res/ui/instrument_editor.ui rename to musicus/res/ui/instrument_editor.ui diff --git a/res/ui/instrument_selector.ui b/musicus/res/ui/instrument_selector.ui similarity index 100% rename from res/ui/instrument_selector.ui rename to musicus/res/ui/instrument_selector.ui diff --git a/res/ui/login_dialog.ui b/musicus/res/ui/login_dialog.ui similarity index 100% rename from res/ui/login_dialog.ui rename to musicus/res/ui/login_dialog.ui diff --git a/res/ui/part_editor.ui b/musicus/res/ui/part_editor.ui similarity index 100% rename from res/ui/part_editor.ui rename to musicus/res/ui/part_editor.ui diff --git a/res/ui/performance_editor.ui b/musicus/res/ui/performance_editor.ui similarity index 100% rename from res/ui/performance_editor.ui rename to musicus/res/ui/performance_editor.ui diff --git a/res/ui/person_editor.ui b/musicus/res/ui/person_editor.ui similarity index 100% rename from res/ui/person_editor.ui rename to musicus/res/ui/person_editor.ui diff --git a/res/ui/person_list.ui b/musicus/res/ui/person_list.ui similarity index 100% rename from res/ui/person_list.ui rename to musicus/res/ui/person_list.ui diff --git a/res/ui/person_screen.ui b/musicus/res/ui/person_screen.ui similarity index 100% rename from res/ui/person_screen.ui rename to musicus/res/ui/person_screen.ui diff --git a/res/ui/person_selector.ui b/musicus/res/ui/person_selector.ui similarity index 100% rename from res/ui/person_selector.ui rename to musicus/res/ui/person_selector.ui diff --git a/res/ui/player_bar.ui b/musicus/res/ui/player_bar.ui similarity index 100% rename from res/ui/player_bar.ui rename to musicus/res/ui/player_bar.ui diff --git a/res/ui/player_screen.ui b/musicus/res/ui/player_screen.ui similarity index 100% rename from res/ui/player_screen.ui rename to musicus/res/ui/player_screen.ui diff --git a/res/ui/poe_list.ui b/musicus/res/ui/poe_list.ui similarity index 100% rename from res/ui/poe_list.ui rename to musicus/res/ui/poe_list.ui diff --git a/res/ui/preferences.ui b/musicus/res/ui/preferences.ui similarity index 100% rename from res/ui/preferences.ui rename to musicus/res/ui/preferences.ui diff --git a/res/ui/recording_editor.ui b/musicus/res/ui/recording_editor.ui similarity index 100% rename from res/ui/recording_editor.ui rename to musicus/res/ui/recording_editor.ui diff --git a/res/ui/recording_screen.ui b/musicus/res/ui/recording_screen.ui similarity index 100% rename from res/ui/recording_screen.ui rename to musicus/res/ui/recording_screen.ui diff --git a/res/ui/recording_selector.ui b/musicus/res/ui/recording_selector.ui similarity index 100% rename from res/ui/recording_selector.ui rename to musicus/res/ui/recording_selector.ui diff --git a/res/ui/recording_selector_screen.ui b/musicus/res/ui/recording_selector_screen.ui similarity index 100% rename from res/ui/recording_selector_screen.ui rename to musicus/res/ui/recording_selector_screen.ui diff --git a/res/ui/section_editor.ui b/musicus/res/ui/section_editor.ui similarity index 100% rename from res/ui/section_editor.ui rename to musicus/res/ui/section_editor.ui diff --git a/res/ui/server_dialog.ui b/musicus/res/ui/server_dialog.ui similarity index 100% rename from res/ui/server_dialog.ui rename to musicus/res/ui/server_dialog.ui diff --git a/res/ui/track_editor.ui b/musicus/res/ui/track_editor.ui similarity index 100% rename from res/ui/track_editor.ui rename to musicus/res/ui/track_editor.ui diff --git a/res/ui/tracks_editor.ui b/musicus/res/ui/tracks_editor.ui similarity index 100% rename from res/ui/tracks_editor.ui rename to musicus/res/ui/tracks_editor.ui diff --git a/res/ui/window.ui b/musicus/res/ui/window.ui similarity index 100% rename from res/ui/window.ui rename to musicus/res/ui/window.ui diff --git a/res/ui/work_editor.ui b/musicus/res/ui/work_editor.ui similarity index 100% rename from res/ui/work_editor.ui rename to musicus/res/ui/work_editor.ui diff --git a/res/ui/work_screen.ui b/musicus/res/ui/work_screen.ui similarity index 100% rename from res/ui/work_screen.ui rename to musicus/res/ui/work_screen.ui diff --git a/res/ui/work_selector.ui b/musicus/res/ui/work_selector.ui similarity index 100% rename from res/ui/work_selector.ui rename to musicus/res/ui/work_selector.ui diff --git a/res/ui/work_selector_screen.ui b/musicus/res/ui/work_selector_screen.ui similarity index 100% rename from res/ui/work_selector_screen.ui rename to musicus/res/ui/work_selector_screen.ui diff --git a/src/backend/backend.rs b/musicus/src/backend/backend.rs similarity index 100% rename from src/backend/backend.rs rename to musicus/src/backend/backend.rs diff --git a/src/backend/client.rs b/musicus/src/backend/client.rs similarity index 100% rename from src/backend/client.rs rename to musicus/src/backend/client.rs diff --git a/src/backend/mod.rs b/musicus/src/backend/mod.rs similarity index 100% rename from src/backend/mod.rs rename to musicus/src/backend/mod.rs diff --git a/src/backend/secure.rs b/musicus/src/backend/secure.rs similarity index 100% rename from src/backend/secure.rs rename to musicus/src/backend/secure.rs diff --git a/src/config.rs.in b/musicus/src/config.rs.in similarity index 100% rename from src/config.rs.in rename to musicus/src/config.rs.in diff --git a/src/database/database.rs b/musicus/src/database/database.rs similarity index 100% rename from src/database/database.rs rename to musicus/src/database/database.rs diff --git a/src/database/mod.rs b/musicus/src/database/mod.rs similarity index 100% rename from src/database/mod.rs rename to musicus/src/database/mod.rs diff --git a/src/database/models.rs b/musicus/src/database/models.rs similarity index 100% rename from src/database/models.rs rename to musicus/src/database/models.rs diff --git a/src/database/schema.rs b/musicus/src/database/schema.rs similarity index 100% rename from src/database/schema.rs rename to musicus/src/database/schema.rs diff --git a/src/database/tables.rs b/musicus/src/database/tables.rs similarity index 100% rename from src/database/tables.rs rename to musicus/src/database/tables.rs diff --git a/src/dialogs/about.rs b/musicus/src/dialogs/about.rs similarity index 100% rename from src/dialogs/about.rs rename to musicus/src/dialogs/about.rs diff --git a/src/dialogs/ensemble_editor.rs b/musicus/src/dialogs/ensemble_editor.rs similarity index 100% rename from src/dialogs/ensemble_editor.rs rename to musicus/src/dialogs/ensemble_editor.rs diff --git a/src/dialogs/ensemble_selector.rs b/musicus/src/dialogs/ensemble_selector.rs similarity index 100% rename from src/dialogs/ensemble_selector.rs rename to musicus/src/dialogs/ensemble_selector.rs diff --git a/src/dialogs/instrument_editor.rs b/musicus/src/dialogs/instrument_editor.rs similarity index 100% rename from src/dialogs/instrument_editor.rs rename to musicus/src/dialogs/instrument_editor.rs diff --git a/src/dialogs/instrument_selector.rs b/musicus/src/dialogs/instrument_selector.rs similarity index 100% rename from src/dialogs/instrument_selector.rs rename to musicus/src/dialogs/instrument_selector.rs diff --git a/src/dialogs/login_dialog.rs b/musicus/src/dialogs/login_dialog.rs similarity index 100% rename from src/dialogs/login_dialog.rs rename to musicus/src/dialogs/login_dialog.rs diff --git a/src/dialogs/mod.rs b/musicus/src/dialogs/mod.rs similarity index 100% rename from src/dialogs/mod.rs rename to musicus/src/dialogs/mod.rs diff --git a/src/dialogs/person_editor.rs b/musicus/src/dialogs/person_editor.rs similarity index 100% rename from src/dialogs/person_editor.rs rename to musicus/src/dialogs/person_editor.rs diff --git a/src/dialogs/person_selector.rs b/musicus/src/dialogs/person_selector.rs similarity index 100% rename from src/dialogs/person_selector.rs rename to musicus/src/dialogs/person_selector.rs diff --git a/src/dialogs/preferences.rs b/musicus/src/dialogs/preferences.rs similarity index 100% rename from src/dialogs/preferences.rs rename to musicus/src/dialogs/preferences.rs diff --git a/src/dialogs/recording/mod.rs b/musicus/src/dialogs/recording/mod.rs similarity index 100% rename from src/dialogs/recording/mod.rs rename to musicus/src/dialogs/recording/mod.rs diff --git a/src/dialogs/recording/performance_editor.rs b/musicus/src/dialogs/recording/performance_editor.rs similarity index 100% rename from src/dialogs/recording/performance_editor.rs rename to musicus/src/dialogs/recording/performance_editor.rs diff --git a/src/dialogs/recording/recording_dialog.rs b/musicus/src/dialogs/recording/recording_dialog.rs similarity index 100% rename from src/dialogs/recording/recording_dialog.rs rename to musicus/src/dialogs/recording/recording_dialog.rs diff --git a/src/dialogs/recording/recording_editor.rs b/musicus/src/dialogs/recording/recording_editor.rs similarity index 100% rename from src/dialogs/recording/recording_editor.rs rename to musicus/src/dialogs/recording/recording_editor.rs diff --git a/src/dialogs/recording/recording_editor_dialog.rs b/musicus/src/dialogs/recording/recording_editor_dialog.rs similarity index 100% rename from src/dialogs/recording/recording_editor_dialog.rs rename to musicus/src/dialogs/recording/recording_editor_dialog.rs diff --git a/src/dialogs/recording/recording_selector.rs b/musicus/src/dialogs/recording/recording_selector.rs similarity index 100% rename from src/dialogs/recording/recording_selector.rs rename to musicus/src/dialogs/recording/recording_selector.rs diff --git a/src/dialogs/recording/recording_selector_person_screen.rs b/musicus/src/dialogs/recording/recording_selector_person_screen.rs similarity index 100% rename from src/dialogs/recording/recording_selector_person_screen.rs rename to musicus/src/dialogs/recording/recording_selector_person_screen.rs diff --git a/src/dialogs/recording/recording_selector_work_screen.rs b/musicus/src/dialogs/recording/recording_selector_work_screen.rs similarity index 100% rename from src/dialogs/recording/recording_selector_work_screen.rs rename to musicus/src/dialogs/recording/recording_selector_work_screen.rs diff --git a/src/dialogs/server_dialog.rs b/musicus/src/dialogs/server_dialog.rs similarity index 100% rename from src/dialogs/server_dialog.rs rename to musicus/src/dialogs/server_dialog.rs diff --git a/src/dialogs/track_editor.rs b/musicus/src/dialogs/track_editor.rs similarity index 100% rename from src/dialogs/track_editor.rs rename to musicus/src/dialogs/track_editor.rs diff --git a/src/dialogs/tracks_editor.rs b/musicus/src/dialogs/tracks_editor.rs similarity index 100% rename from src/dialogs/tracks_editor.rs rename to musicus/src/dialogs/tracks_editor.rs diff --git a/src/dialogs/work/mod.rs b/musicus/src/dialogs/work/mod.rs similarity index 100% rename from src/dialogs/work/mod.rs rename to musicus/src/dialogs/work/mod.rs diff --git a/src/dialogs/work/part_editor.rs b/musicus/src/dialogs/work/part_editor.rs similarity index 100% rename from src/dialogs/work/part_editor.rs rename to musicus/src/dialogs/work/part_editor.rs diff --git a/src/dialogs/work/section_editor.rs b/musicus/src/dialogs/work/section_editor.rs similarity index 100% rename from src/dialogs/work/section_editor.rs rename to musicus/src/dialogs/work/section_editor.rs diff --git a/src/dialogs/work/work_dialog.rs b/musicus/src/dialogs/work/work_dialog.rs similarity index 100% rename from src/dialogs/work/work_dialog.rs rename to musicus/src/dialogs/work/work_dialog.rs diff --git a/src/dialogs/work/work_editor.rs b/musicus/src/dialogs/work/work_editor.rs similarity index 100% rename from src/dialogs/work/work_editor.rs rename to musicus/src/dialogs/work/work_editor.rs diff --git a/src/dialogs/work/work_editor_dialog.rs b/musicus/src/dialogs/work/work_editor_dialog.rs similarity index 100% rename from src/dialogs/work/work_editor_dialog.rs rename to musicus/src/dialogs/work/work_editor_dialog.rs diff --git a/src/dialogs/work/work_selector.rs b/musicus/src/dialogs/work/work_selector.rs similarity index 100% rename from src/dialogs/work/work_selector.rs rename to musicus/src/dialogs/work/work_selector.rs diff --git a/src/dialogs/work/work_selector_person_screen.rs b/musicus/src/dialogs/work/work_selector_person_screen.rs similarity index 100% rename from src/dialogs/work/work_selector_person_screen.rs rename to musicus/src/dialogs/work/work_selector_person_screen.rs diff --git a/src/main.rs b/musicus/src/main.rs similarity index 100% rename from src/main.rs rename to musicus/src/main.rs diff --git a/src/meson.build b/musicus/src/meson.build similarity index 100% rename from src/meson.build rename to musicus/src/meson.build diff --git a/src/player.rs b/musicus/src/player.rs similarity index 100% rename from src/player.rs rename to musicus/src/player.rs diff --git a/src/resources.rs.in b/musicus/src/resources.rs.in similarity index 100% rename from src/resources.rs.in rename to musicus/src/resources.rs.in diff --git a/src/screens/ensemble_screen.rs b/musicus/src/screens/ensemble_screen.rs similarity index 100% rename from src/screens/ensemble_screen.rs rename to musicus/src/screens/ensemble_screen.rs diff --git a/src/screens/mod.rs b/musicus/src/screens/mod.rs similarity index 100% rename from src/screens/mod.rs rename to musicus/src/screens/mod.rs diff --git a/src/screens/person_screen.rs b/musicus/src/screens/person_screen.rs similarity index 100% rename from src/screens/person_screen.rs rename to musicus/src/screens/person_screen.rs diff --git a/src/screens/player_screen.rs b/musicus/src/screens/player_screen.rs similarity index 100% rename from src/screens/player_screen.rs rename to musicus/src/screens/player_screen.rs diff --git a/src/screens/recording_screen.rs b/musicus/src/screens/recording_screen.rs similarity index 100% rename from src/screens/recording_screen.rs rename to musicus/src/screens/recording_screen.rs diff --git a/src/screens/work_screen.rs b/musicus/src/screens/work_screen.rs similarity index 100% rename from src/screens/work_screen.rs rename to musicus/src/screens/work_screen.rs diff --git a/src/widgets/list.rs b/musicus/src/widgets/list.rs similarity index 100% rename from src/widgets/list.rs rename to musicus/src/widgets/list.rs diff --git a/src/widgets/mod.rs b/musicus/src/widgets/mod.rs similarity index 100% rename from src/widgets/mod.rs rename to musicus/src/widgets/mod.rs diff --git a/src/widgets/navigator.rs b/musicus/src/widgets/navigator.rs similarity index 100% rename from src/widgets/navigator.rs rename to musicus/src/widgets/navigator.rs diff --git a/src/widgets/person_list.rs b/musicus/src/widgets/person_list.rs similarity index 100% rename from src/widgets/person_list.rs rename to musicus/src/widgets/person_list.rs diff --git a/src/widgets/player_bar.rs b/musicus/src/widgets/player_bar.rs similarity index 100% rename from src/widgets/player_bar.rs rename to musicus/src/widgets/player_bar.rs diff --git a/src/widgets/poe_list.rs b/musicus/src/widgets/poe_list.rs similarity index 100% rename from src/widgets/poe_list.rs rename to musicus/src/widgets/poe_list.rs diff --git a/src/widgets/selector_row.rs b/musicus/src/widgets/selector_row.rs similarity index 100% rename from src/widgets/selector_row.rs rename to musicus/src/widgets/selector_row.rs diff --git a/src/window.rs b/musicus/src/window.rs similarity index 100% rename from src/window.rs rename to musicus/src/window.rs