51 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import grabCoderankSSHPrefix from "./grab-ssh-prefix";
 | 
						|
import { execSync, type ExecSyncOptions } from "child_process";
 | 
						|
 | 
						|
type Param = {
 | 
						|
    filePath: string;
 | 
						|
    debug?: boolean;
 | 
						|
    server?: any;
 | 
						|
    options?: ExecSyncOptions;
 | 
						|
};
 | 
						|
 | 
						|
export default function bunExecSSH({
 | 
						|
    filePath,
 | 
						|
    debug,
 | 
						|
    server,
 | 
						|
    options,
 | 
						|
}: Param): string | undefined {
 | 
						|
    try {
 | 
						|
        let cmdPrefix = grabCoderankSSHPrefix();
 | 
						|
 | 
						|
        let finalCmd = `${cmdPrefix}`;
 | 
						|
 | 
						|
        if (server) {
 | 
						|
            finalCmd += ` ${server.username}@${server.ip}`;
 | 
						|
        }
 | 
						|
 | 
						|
        finalCmd += ` bun < ${filePath}`;
 | 
						|
 | 
						|
        if (debug) {
 | 
						|
            console.log("DEBUG:::", finalCmd);
 | 
						|
        }
 | 
						|
 | 
						|
        const str = execSync(finalCmd, {
 | 
						|
            stdio: "pipe",
 | 
						|
            ...options,
 | 
						|
            encoding: "utf-8",
 | 
						|
        });
 | 
						|
 | 
						|
        if (debug) {
 | 
						|
            console.log("DEBUG:::", str);
 | 
						|
        }
 | 
						|
 | 
						|
        return str.trim();
 | 
						|
    } catch (error: any) {
 | 
						|
        if (debug) {
 | 
						|
            console.log(`DEBUG::: Raw SSh Error: ${error.message}`);
 | 
						|
        }
 | 
						|
 | 
						|
        return undefined;
 | 
						|
    }
 | 
						|
}
 |