onepub-dev / dcli

An extensive library and tooling for building console/cli applications and scripts using the Dart programming language.
245 stars 26 forks source link

Unable to pick choice via `firebase init` #188

Closed cedvdb closed 2 years ago

cedvdb commented 2 years ago

when

    run(
      'firebase init',
      runInShell: true,
    );

The cli does not display the menus, making it impossible to go forward. To reproduce this you need the firebase-cli installed and just run the above code.

maybe related to https://github.com/noojee/dcli/issues/187

bsutton commented 2 years ago

Why did you using runInShell?

Try start https://pub.dev/documentation/dcli/latest/dcli/start.html

with the terminal = true option.

cedvdb commented 2 years ago

runInShell was used because without it the firebase command was said to not be in the path. I figured that maybe there was a restriction on using path executables without runInShell, ence why I used it. It correctly launch firebase with it but I'm not sure my reasoning is correct.

Here is are pictures of the different outputs I get depending if I run the command from git bash or from dcli:

image

Here with dcli run (or start with terminal true):

image

As you can see, there is no "Are you ready to proceed ?" on the one ran via dcli. It seems like that read line by firebase is messing up the piping.

cedvdb commented 2 years ago

FYI why it works with runInShell is maybe bug on windows https://github.com/dart-lang/sdk/issues/38974

and it works when using this:

  return Process.start(
    'firebase',
    ['init'],
    workingDirectory: 'firebase',
    runInShell: true,
    mode: ProcessStartMode.inheritStdio,
  );
bsutton commented 2 years ago

Instead you should call the dcli which function to find the path and use the full path to run firebase.

On Mon, 14 Feb 2022, 1:12 am cedvdb, @.***> wrote:

FYI why it works with runInShell is maybe bug on windows dart-lang/sdk#38974 https://github.com/dart-lang/sdk/issues/38974

— Reply to this email directly, view it on GitHub https://github.com/noojee/dcli/issues/188#issuecomment-1038146054, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAG32OFYCFEAHA7INSSWPOTU2636JANCNFSM5OGIUHEA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

cedvdb commented 2 years ago

Running firebase is not the issue this issue is about. I provided pictures to be more precise in a comment above of the different outputs. This issue is about incorrect stdout of the command I'm running.

Anyway, since it works fine with : mode: ProcessStartMode.inheritStdio, I'll stick to that.

bsutton commented 2 years ago

that is what the terminal option does in the start command.

S. Brett Sutton Noojee Contact Solutions 03 8320 8100

On Mon, 14 Feb 2022 at 08:45, cedvdb @.***> wrote:

Running firebase is not the issue. I provided pictures to be more precise in a comment above.

Anyway, since it works fine with : mode: ProcessStartMode.inheritStdio, I'll stick to that.

— Reply to this email directly, view it on GitHub https://github.com/noojee/dcli/issues/188#issuecomment-1038444836, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAG32OGELPWH3PTX5TAOV4TU3AQ5VANCNFSM5OGIUHEA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>