Skip to content

Commit cec40cf

Browse files
authored
chore: fix distribution, bundle ffmpeg in app package (#67)
1 parent c390d11 commit cec40cf

File tree

18 files changed

+68
-174
lines changed

18 files changed

+68
-174
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
/.yarn/releases/* binary
33
/.yarn/plugins/**/* binary
44
/.pnp.* binary linguist-generated
5+
/packages/raga-app/bin/* binary
43.5 MB
Binary file not shown.

packages/raga-app/package.json

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,10 @@
2424
"@table-library/react-table-library": "^4.1.7",
2525
"@tinyhttp/app": "^2.2.3",
2626
"ansis": "^2.1.0",
27+
"app-root-dir": "^1.0.2",
2728
"classnames": "^2.5.1",
28-
"command-exists": "^1.2.9",
2929
"date-fns": "^3.3.1",
3030
"effection": "^3.0.2",
31-
"electron-squirrel-startup": "^1.0.0",
3231
"framer-motion": "^11.0.3",
3332
"immer": "^10.0.3",
3433
"milliparsec": "^2.3.0",
@@ -51,11 +50,9 @@
5150
"@blueprintjs/node-build-scripts": "^9.2.0",
5251
"@electron-forge/cli": "^7.2.0",
5352
"@electron-forge/maker-deb": "^7.2.0",
54-
"@electron-forge/maker-rpm": "^7.2.0",
55-
"@electron-forge/maker-squirrel": "^7.2.0",
5653
"@electron-forge/maker-zip": "^7.2.0",
5754
"@electron-forge/plugin-vite": "^7.2.0",
58-
"@types/command-exists": "^1.2.3",
55+
"@types/app-root-dir": "^0.1.4",
5956
"@types/node": "^20.11.16",
6057
"@types/react": "^18.2.51",
6158
"@types/react-devtools": "^3.6.2",

packages/raga-app/src/client/components/common/tree.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@ export default function UncontrolledTree<T extends object>({
6969
});
7070
}
7171

72-
console.log(draft);
73-
7472
if (newSelected) {
7573
// apply our 'selected path' class at each level of the path
7674
for (let i = 0; i < nodePath.length; i++) {

packages/raga-app/src/client/store/slices/audioFilesServerSlice.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,10 @@ export const createAudioFilesServerSlice: AppStoreSliceCreator<
144144

145145
try {
146146
const res = yield* convertTrackToMP3Request(serverBaseURL, trackDef);
147+
const responseText = yield* call(res.text());
148+
147149
if (res.ok) {
148-
const outputFilePath = yield* call(res.text());
150+
const outputFilePath = responseText;
149151
log.debug(
150152
`[client] Successfully converted track ${trackID} to MP3 at: ${outputFilePath}`,
151153
);
@@ -159,7 +161,7 @@ export const createAudioFilesServerSlice: AppStoreSliceCreator<
159161

160162
return convertedFileURL;
161163
} else {
162-
log.error(`[client] Failed to convert ${trackDef.Location} to MP3: ${res.statusText}`);
164+
log.error(`[client] Failed to convert ${trackDef.Location} to MP3: ${responseText}`);
163165
}
164166
} catch (e) {
165167
log.error(

packages/raga-app/src/common/errorMessages.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export const ClientErrors = {
3333
export const ServerErrors = {
3434
AUDIO_FILE_NOT_FOUND: `Audio file not found`,
3535
AUDIO_FILES_ROOT_FOLDER_NOT_FOUND: `Audio files root folder does not exist or is empty`,
36-
FFMPEG_NOT_INSTALLED: `ffmpeg is not installed on the system path`,
36+
FFMPEG_UNAVAILABLE: `ffmpeg is not available, cannot convert audio files`,
3737
MP3_CODEC_UNAVAILABLE: `No MP3 codec is available`,
3838
INVALID_CONVERSION_REQUEST: `Invalid MP3 conversion request`,
3939
CONVERTED_AUDIO_FILE_NOT_FOUND: `Converted audio file not found`,

packages/raga-app/src/main.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ import {
2020
} from "./common/events";
2121
import { createScopedLogger } from "./common/logUtils";
2222

23-
// Handle creating/removing shortcuts on Windows when installing/uninstalling.
24-
if (require("electron-squirrel-startup")) {
25-
app.quit();
26-
}
27-
2823
// see https://www.electronforge.io/config/plugins/vite#hot-module-replacement-hmr
2924
declare const MAIN_WINDOW_VITE_DEV_SERVER_URL: string;
3025
declare const MAIN_WINDOW_VITE_NAME: string;

packages/raga-app/src/server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ServerEventChannel } from "./common/events";
22
import { initAppServer } from "./server/appServer";
3-
import { log } from "./server/serverLogger";
3+
import { log } from "./server/common/serverLogger";
44

55
// HACKHACK: we can't use top-level await until we migrate to ESM, which is currently blocked by
66
// electron-vite support. Also, effection's main() function isn't running correctly for some reason,

packages/raga-app/src/server/appServer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ import {
2222
type WriteModifiedLibraryOptions,
2323
} from "../common/events";
2424
import { type AudioFilesServer, startAudioFilesServer } from "./audioFilesServer";
25+
import { log } from "./common/serverLogger";
2526
import { computeLibraryMetadata } from "./libraryMeta/computeLibraryMetadata";
26-
import { log } from "./serverLogger";
2727
import { writeAudioFileTag } from "./writeAudioFileTag";
2828

2929
let library: SwinsianLibraryPlist | undefined;

packages/raga-app/src/server/audioFilesServer.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ import { withTimeout } from "../common/asyncUtils";
1313
import { DEFAULT_AUDIO_FILES_SERVER_PORT } from "../common/constants";
1414
import { ServerErrors } from "../common/errorMessages";
1515
import { type AudioFilesServerStartedEventPayload } from "../common/events";
16+
import ffmpeg from "./common/ffmpeg";
17+
import { log } from "./common/serverLogger";
1618
import { getConvertToMP3RequestHandler } from "./handlers/convertToMP3Handler";
17-
import { log } from "./serverLogger";
1819

1920
let audioFilesServer: AudioFilesServer | undefined;
2021

@@ -67,7 +68,7 @@ function* createAudioFileConverterAndInitServer(
6768
validateRootFolderOrThrow(options.audioFilesRootFolder);
6869

6970
log.debug(`Initializing audio files converter...`);
70-
const converter = new AudioFileConverter();
71+
const converter = new AudioFileConverter({ ffmpeg });
7172
const app = initServerApp(converter, options);
7273

7374
const httpServer = yield* waitForHTTPServerToStart(app);

0 commit comments

Comments
 (0)