MCPcopy Create free account
hub / github.com/AnYanYi/Linux-app-installer / generateInstallScript

Function generateInstallScript

src/lib/generateInstallScript.ts:26–59  ·  view source on GitHub ↗
(options: ScriptOptions)

Source from the content-addressed store, hash-verified

24
25// The full fancy script with progress bars and all that jazz
26export function generateInstallScript(options: ScriptOptions): string {
27 perfMonitor.start(`generateScript-${options.distroId}`);
28
29 const { distroId, selectedAppIds, helper = 'yay' } = options;
30 const distro = distros.find(d => d.id === distroId);
31
32 if (!distro) {
33 perfMonitor.end(`generateScript-${options.distroId}`);
34 return '#!/bin/bash\necho "Error: Unknown distribution"\nexit 1';
35 }
36
37 const packages = getSelectedPackages(selectedAppIds, distroId);
38 if (packages.length === 0) {
39 perfMonitor.end(`generateScript-${options.distroId}`);
40 return '#!/bin/bash\necho "No packages selected"\nexit 0';
41 }
42
43 let script: string;
44 switch (distroId) {
45 case 'ubuntu': script = generateUbuntuScript(packages); break;
46 case 'debian': script = generateDebianScript(packages); break;
47 case 'arch': script = generateArchScript(packages, helper); break;
48 case 'fedora': script = generateFedoraScript(packages); break;
49 case 'opensuse': script = generateOpenSUSEScript(packages); break;
50 case 'nix': script = generateNixScript(packages); break;
51 case 'flatpak': script = generateFlatpakScript(packages); break;
52 case 'snap': script = generateSnapScript(packages); break;
53 case 'homebrew': script = generateHomebrewScript(packages); break;
54 default: script = '#!/bin/bash\necho "Unsupported distribution"\nexit 1';
55 }
56
57 perfMonitor.end(`generateScript-${options.distroId}`);
58 return script;
59}
60
61// Quick one-liner for copy-paste warriors
62export function generateSimpleCommand(selectedAppIds: Set<string>, distroId: DistroId): string {

Callers 2

CommandFooterFunction · 0.90

Calls 12

getSelectedPackagesFunction · 0.90
generateUbuntuScriptFunction · 0.90
generateDebianScriptFunction · 0.90
generateArchScriptFunction · 0.90
generateFedoraScriptFunction · 0.90
generateOpenSUSEScriptFunction · 0.90
generateNixScriptFunction · 0.90
generateFlatpakScriptFunction · 0.90
generateSnapScriptFunction · 0.90
generateHomebrewScriptFunction · 0.90
startMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected