refactor: rename /musics dir in /data/musics

This commit is contained in:
Guillaume ARM 2026-06-20 12:04:46 +02:00
parent 22b51d94ee
commit 98eff109fc
8 changed files with 14 additions and 14 deletions

View File

@ -12,7 +12,7 @@ trapos *args: check-install stage
argv+=(--rom /Applications/CraftOS-PC.app/Contents/Resources) argv+=(--rom /Applications/CraftOS-PC.app/Contents/Resources)
fi fi
argv+=(--mount-ro "/trapos=$repo") argv+=(--mount-ro "/trapos=$repo")
for dir in apis programs daemons startup tests musics; do for dir in apis programs daemons startup tests data; do
if [ -d "$repo/.stage/$dir" ]; then if [ -d "$repo/.stage/$dir" ]; then
argv+=(--mount-ro "/$dir=$repo/.stage/$dir") argv+=(--mount-ro "/$dir=$repo/.stage/$dir")
fi fi
@ -79,7 +79,7 @@ trapos-exec code: stage
printf '%s\n' 'status.close()' printf '%s\n' 'status.close()'
printf '%s\n' 'os.shutdown()' printf '%s\n' 'os.shutdown()'
} > "$runner" } > "$runner"
mount_arg=(--mount-ro "/trapos=$repo" --mount-ro "/apis=$repo/.stage/apis" --mount-ro "/programs=$repo/.stage/programs" --mount-ro "/daemons=$repo/.stage/daemons" --mount-ro "/startup=$repo/.stage/startup" --mount-ro "/tests=$repo/.stage/tests" --mount-ro "/musics=$repo/.stage/musics" --mount-ro "/headless=$stage_dir") mount_arg=(--mount-ro "/trapos=$repo" --mount-ro "/apis=$repo/.stage/apis" --mount-ro "/programs=$repo/.stage/programs" --mount-ro "/daemons=$repo/.stage/daemons" --mount-ro "/startup=$repo/.stage/startup" --mount-ro "/tests=$repo/.stage/tests" --mount-ro "/data=$repo/.stage/data" --mount-ro "/headless=$stage_dir")
craftos --directory "$data_dir" --headless "${rom_arg[@]}" "${mount_arg[@]}" --exec "shell.run('/headless/exec.lua')" >"$tmp" 2>&1 & craftos --directory "$data_dir" --headless "${rom_arg[@]}" "${mount_arg[@]}" --exec "shell.run('/headless/exec.lua')" >"$tmp" 2>&1 &
pid="$!" pid="$!"
( sleep "$timeout_seconds"; kill -TERM "$pid" >/dev/null 2>&1 ) & ( sleep "$timeout_seconds"; kill -TERM "$pid" >/dev/null 2>&1 ) &

View File

@ -3,7 +3,7 @@
# '/apis/x') and ccpm installs files flat, but sources now live under # '/apis/x') and ccpm installs files flat, but sources now live under
# packages/<pkg>/{apis,programs,daemons,startup,tests}. This merges them back # packages/<pkg>/{apis,programs,daemons,startup,tests}. This merges them back
# into a gitignored .stage/ that the dev/test recipes mount as /apis, /programs, # into a gitignored .stage/ that the dev/test recipes mount as /apis, /programs,
# /daemons, /startup, /tests, /musics. Regenerated on every run so it always # /daemons, /startup, /tests, /data. Regenerated on every run so it always
# reflects the working tree. # reflects the working tree.
stage: stage:
#!/usr/bin/env bash #!/usr/bin/env bash
@ -12,7 +12,7 @@ stage:
cd "$repo" cd "$repo"
stage="$repo/.stage" stage="$repo/.stage"
rm -rf "$stage" rm -rf "$stage"
for dir in apis programs daemons startup tests musics; do for dir in apis programs daemons startup tests data; do
for pkgdir in packages/*/"$dir"; do for pkgdir in packages/*/"$dir"; do
[ -d "$pkgdir" ] || continue [ -d "$pkgdir" ] || continue
mkdir -p "$stage/$dir" mkdir -p "$stage/$dir"

View File

@ -6,7 +6,7 @@
"trapos-ui": "0.2.4", "trapos-ui": "0.2.4",
"trapos-ai": "0.8.0", "trapos-ai": "0.8.0",
"trapos-cloud": "0.4.5", "trapos-cloud": "0.4.5",
"trapos-music": "0.1.0", "trapos-music": "0.1.1",
"trapos-sandbox-legacy": "0.3.2", "trapos-sandbox-legacy": "0.3.2",
"trapos": "0.12.6" "trapos": "0.12.6"
} }

View File

@ -6,7 +6,7 @@
-- unit-testable with an injected `fs`. Dependencies are injectable to keep the -- unit-testable with an injected `fs`. Dependencies are injectable to keep the
-- module testable outside the CC runtime (mirrors libccpm/libversion style). -- module testable outside the CC runtime (mirrors libccpm/libversion style).
local DEFAULT_DIR = '/musics'; local DEFAULT_DIR = '/data/musics';
local EXTENSION = '.dfpwm'; local EXTENSION = '.dfpwm';
local CHUNK_SIZE = 16 * 1024; local CHUNK_SIZE = 16 * 1024;

View File

@ -1,12 +1,12 @@
{ {
"name": "trapos-music", "name": "trapos-music",
"version": "0.1.0", "version": "0.1.1",
"description": "TrapOS music player: dfpwm playback through a speaker", "description": "TrapOS music player: dfpwm playback through a speaker",
"dependencies": ["trapos-core", "trapos-ui"], "dependencies": ["trapos-core", "trapos-ui"],
"files": [ "files": [
"apis/libmusic.lua", "apis/libmusic.lua",
"programs/music.lua", "programs/music.lua",
"musics/GrillControl.dfpwm" "data/musics/GrillControl.dfpwm"
], ],
"autostart": [] "autostart": []
} }

View File

@ -30,7 +30,7 @@ local music = createMusic();
local tracks = music.listTracks(); local tracks = music.listTracks();
if #tracks == 0 then if #tracks == 0 then
print('No music found in /musics'); print('No music found in /data/musics');
return; return;
end end

View File

@ -15,20 +15,20 @@ end
testlib.test('listTracks filters dfpwm, strips extension and sorts', function() testlib.test('listTracks filters dfpwm, strips extension and sorts', function()
local music = createMusic({ local music = createMusic({
dir = '/musics', dir = '/data/musics',
fs = fakeFs('/musics', { 'Zebra.dfpwm', 'notes.txt', 'Apple.dfpwm' }), fs = fakeFs('/data/musics', { 'Zebra.dfpwm', 'notes.txt', 'Apple.dfpwm' }),
}); });
local tracks = music.listTracks(); local tracks = music.listTracks();
testlib.assertEquals(#tracks, 2); testlib.assertEquals(#tracks, 2);
testlib.assertEquals(tracks[1].name, 'Apple'); testlib.assertEquals(tracks[1].name, 'Apple');
testlib.assertEquals(tracks[1].path, '/musics/Apple.dfpwm'); testlib.assertEquals(tracks[1].path, '/data/musics/Apple.dfpwm');
testlib.assertEquals(tracks[2].name, 'Zebra'); testlib.assertEquals(tracks[2].name, 'Zebra');
testlib.assertEquals(tracks[2].path, '/musics/Zebra.dfpwm'); testlib.assertEquals(tracks[2].path, '/data/musics/Zebra.dfpwm');
end); end);
testlib.test('listTracks returns empty when directory is missing', function() testlib.test('listTracks returns empty when directory is missing', function()
local music = createMusic({ local music = createMusic({
dir = '/musics', dir = '/data/musics',
fs = { isDir = function() return false; end }, fs = { isDir = function() return false; end },
}); });
testlib.assertEquals(#music.listTracks(), 0); testlib.assertEquals(#music.listTracks(), 0);