44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/*
 | 
						|
 *               dotfiles - subprocessRunner.ts
 | 
						|
 *
 | 
						|
 *   Created by Janis Hutz 03/22/2025, Licensed under the GPL V3 License
 | 
						|
 *           https://janishutz.com, development@janishutz.com
 | 
						|
 *
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
import { subprocess, execAsync, Process } from "astal/process";
 | 
						|
 | 
						|
// TODO: Get cwd and the likes to then use that to run JavaScript files with node / python with python, etc
 | 
						|
 | 
						|
/**
 | 
						|
 * Run a subprocess. If you simply want to run a command that doesn't need continuous updates
 | 
						|
 * run executeCommand instead.
 | 
						|
 * @param cmd - The command to be run
 | 
						|
 * @param onOut - Calback function for stdout of the subprocess
 | 
						|
 * @param onErr - [TODO:description]
 | 
						|
 * @returns [TODO:return]
 | 
						|
 */
 | 
						|
const startSubProcess = (
 | 
						|
    cmd: string | string[],
 | 
						|
    onOut: (stdout: string) => void,
 | 
						|
    onErr: (stderr: string) => void | undefined,
 | 
						|
): Process => {
 | 
						|
    return subprocess( cmd, onOut, onErr );
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
 * Run a command. If you need continuous updates, run startSubProcess instead 
 | 
						|
 * @param cmd - The command to be run. Either a string or an array of strings
 | 
						|
 * @returns A Promise resolving to stdout of the command
 | 
						|
 */
 | 
						|
const executeCommand = (cmd: string | string[]): Promise<string> => {
 | 
						|
    return execAsync( cmd );
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
export default {
 | 
						|
    startSubProcess,
 | 
						|
    executeCommand
 | 
						|
}
 |