Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to use Child-Shell #153

Open
ribalraza009 opened this issue Oct 18, 2022 · 4 comments
Open

How to use Child-Shell #153

ribalraza009 opened this issue Oct 18, 2022 · 4 comments

Comments

@ribalraza009
Copy link

No description provided.

@rtarnaud
Copy link

Here is a working example of how you can use node-powershell or child-shell:

import { exit } from 'node:process';
import { PowerShell } from 'node-powershell';

(async () => {
    try {
        const output = await PowerShell.$$`echo "hello from PowerShell"`({
            executableOptions: {
                '-ExecutionPolicy': 'Bypass',
                '-NoProfile': true,
            },
        });
        if (!output.hadErrors) {
            console.log(output.stdout.toString());
        }
        else {
            console.error(output.stderr.toString());
        }
    }
    catch (error) {
        console.error(error);

        exit(1);
    }

    exit(0);
})();

@eugeneniemand
Copy link

I'm trying this but my stdout is undefined however the debug is showing output and there are no errors.

let result = await ps.invoke(command)
		if (!result.hadErrors) {
			console.log(result.stdout?.toString())
		}

@rtarnaud
Copy link

That is the syntax of the previous major version. The current one has changed a lot and there's hardly any info about it in the readme, hence the title of the issue and my answer.

@eugeneniemand
Copy link

eugeneniemand commented Mar 2, 2023

I'm trying the following

const result = await Bash.$$`echo "hello from Bash"`({
		debug: true,
		invocationTimeout: 1000,
		disposeTimeout: 3000,
		throwOnInvocationError: false,
	  });

	if (!result.hadErrors) {
		console.log(result?.stdout?.toString());
	}
	else {
		console.error(result?.stderr?.toString());
	}

and get this output

2023-03-02T16:28:35.173Z BASH:15484: # shell process started: "bash -s"
2023-03-02T16:28:35.176Z BASH:15484: # starting command invocation
2023-03-02T16:28:35.179Z BASH:15484: $ echo "hello from Bash"
2023-03-02T16:28:35.313Z BASH:15484: > N8yLS6keUkmuJ97u
2023-03-02T16:28:35.317Z BASH:15484: > N8yLS6keUkmuJ97u
2023-03-02T16:28:36.188Z BASH:15484: # command invocation timed out
2023-03-02T16:28:36.193Z BASH:15484: # shell process exited

This sort of works, except for the random strings (N8yLS6keUkmuJ97u) in the output, however when I try run docker --version I expect something like Docker version 20.10.14, build a224086 but I get this instead

2023-03-02T16:31:14.227Z BASH:11392: $ docker --version
2023-03-02T16:31:14.836Z BASH:11392: > 1IehtkaxTGUyKkf7
2023-03-02T16:31:14.838Z BASH:11392: > 1IehtkaxTGUyKkf7
unknown flag: --version
See 'docker --help'.

Usage:  docker [OPTIONS] COMMAND

and lastly when I run docker pull structurizr/lite I get this strange error invalid reference format

2023-03-02T16:33:39.272Z BASH:8720: $ docker pull structurizr/lite
2023-03-02T16:33:39.738Z BASH:8720: > S1jqaUKDPJgXOOAV
2023-03-02T16:33:39.740Z BASH:8720: > S1jqaUKDPJgXOOAV
invalid reference format

All these commands work in a normal Bash and Powershell shell so not entirely sure whats happening here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants