Prepare Windows release and signing process (#16)

This commit is contained in:
2026-03-08 19:51:30 -07:00
committed by GitHub
parent 34d2dce8dc
commit c799a8de3c
113 changed files with 5042 additions and 386 deletions

View File

@@ -47,6 +47,14 @@ test('parseArgs ignores missing value after --log-level', () => {
assert.equal(args.start, true);
});
test('parseArgs captures launch-mpv targets and keeps it out of app startup', () => {
const args = parseArgs(['--launch-mpv', 'C:\\a.mkv', 'C:\\b.mkv']);
assert.equal(args.launchMpv, true);
assert.deepEqual(args.launchMpvTargets, ['C:\\a.mkv', 'C:\\b.mkv']);
assert.equal(hasExplicitCommand(args), true);
assert.equal(shouldStartApp(args), false);
});
test('parseArgs handles jellyfin item listing controls', () => {
const args = parseArgs([
'--jellyfin-items',
@@ -76,6 +84,12 @@ test('hasExplicitCommand and shouldStartApp preserve command intent', () => {
assert.equal(hasExplicitCommand(stopOnly), true);
assert.equal(shouldStartApp(stopOnly), false);
const launchMpv = parseArgs(['--launch-mpv']);
assert.equal(launchMpv.launchMpv, true);
assert.deepEqual(launchMpv.launchMpvTargets, []);
assert.equal(hasExplicitCommand(launchMpv), true);
assert.equal(shouldStartApp(launchMpv), false);
const toggle = parseArgs(['--toggle-visible-overlay']);
assert.equal(hasExplicitCommand(toggle), true);
assert.equal(shouldStartApp(toggle), true);

View File

@@ -1,6 +1,8 @@
export interface CliArgs {
background: boolean;
start: boolean;
launchMpv: boolean;
launchMpvTargets: string[];
stop: boolean;
toggle: boolean;
toggleVisibleOverlay: boolean;
@@ -68,6 +70,8 @@ export function parseArgs(argv: string[]): CliArgs {
const args: CliArgs = {
background: false,
start: false,
launchMpv: false,
launchMpvTargets: [],
stop: false,
toggle: false,
toggleVisibleOverlay: false,
@@ -123,6 +127,11 @@ export function parseArgs(argv: string[]): CliArgs {
if (arg === '--background') args.background = true;
else if (arg === '--start') args.start = true;
else if (arg === '--launch-mpv') {
args.launchMpv = true;
args.launchMpvTargets = argv.slice(i + 1).filter((value) => value && !value.startsWith('--'));
break;
}
else if (arg === '--stop') args.stop = true;
else if (arg === '--toggle') args.toggle = true;
else if (arg === '--toggle-visible-overlay') args.toggleVisibleOverlay = true;
@@ -297,6 +306,7 @@ export function hasExplicitCommand(args: CliArgs): boolean {
return (
args.background ||
args.start ||
args.launchMpv ||
args.stop ||
args.toggle ||
args.toggleVisibleOverlay ||
@@ -342,6 +352,7 @@ export function shouldStartApp(args: CliArgs): boolean {
if (
args.background ||
args.start ||
args.launchMpv ||
args.toggle ||
args.toggleVisibleOverlay ||
args.settings ||
@@ -361,6 +372,9 @@ export function shouldStartApp(args: CliArgs): boolean {
args.jellyfinPlay ||
args.texthooker
) {
if (args.launchMpv) {
return false;
}
return true;
}
return false;

View File

@@ -17,6 +17,7 @@ test('printHelp includes configured texthooker port', () => {
assert.match(output, /--help\s+Show this help/);
assert.match(output, /default: 7777/);
assert.match(output, /--launch-mpv/);
assert.match(output, /--refresh-known-words/);
assert.match(output, /--setup\s+Open first-run setup window/);
assert.match(output, /--anilist-status/);

View File

@@ -12,6 +12,7 @@ ${B}Usage:${R} subminer ${D}[command] [options]${R}
${B}Session${R}
--background Start in tray/background mode
--start Connect to mpv and launch overlay
--launch-mpv ${D}[targets...]${R} Launch mpv with the SubMiner mpv profile and exit
--stop Stop the running instance
--texthooker Start texthooker server only ${D}(no overlay)${R}
@@ -68,7 +69,7 @@ ${B}Jellyfin${R}
${B}Options${R}
--socket ${D}PATH${R} mpv IPC socket path
--backend ${D}BACKEND${R} Window tracker ${D}(auto, hyprland, sway, x11, macos)${R}
--backend ${D}BACKEND${R} Window tracker ${D}(auto, hyprland, sway, x11, macos, windows)${R}
--port ${D}PORT${R} Texthooker server port ${D}(default: ${defaultTexthookerPort})${R}
--log-level ${D}LEVEL${R} ${D}debug | info | warn | error${R}
--debug Enable debug mode ${D}(alias: --dev)${R}