Azure / azure-dev

A developer CLI that reduces the time it takes for you to get started on Azure. The Azure Developer CLI (azd) provides a set of developer-friendly commands that map to key stages in your workflow - code, build, deploy, monitor, repeat.
https://aka.ms/azd
MIT License
399 stars 191 forks source link

Can not display option and select option when run `azd init` by GoLand #4311

Open rujche opened 6 days ago

rujche commented 6 days ago

Describe the problem Can not display option and select option when run by GoLand

To Reproduce

  1. Use GoLand to open current project.
  2. Run cli/azd/main.go by GoLand.
  3. It outputs Initializing an app to run on Azure (azd init) How do you want to initialize your app?, but no option displayed.

image

Expected behavior Options displayed and can be selected.

Environment Information on your environment:

weikanglim commented 2 days ago

@rujche I haven't looked into how the goland terminal is implemented, but the auto-TTY detection behavior isn't working as expected.

With #4318, we'll give you the ability to specify AZD_FORCE_TTY=true to ignore the terminal detection logic. The private build should be available for you to test soon. I'll reply back when that's available.

If you have spare time and would love to help us, you can run the code snippet from the library we're using to investigate why the terminal detection logic isn't working as expected -- and what we may want to contribute upstream (issue or code) to fix this behavior.

package main

import (
    "fmt"
    "github.com/mattn/go-isatty"
    "os"
)

func main() {
    if isatty.IsTerminal(os.Stdout.Fd()) {
        fmt.Println("Is Terminal")
    } else if isatty.IsCygwinTerminal(os.Stdout.Fd()) {
        fmt.Println("Is Cygwin/MSYS2 Terminal")
    } else {
        fmt.Println("Is Not Terminal")
    }
}
weikanglim commented 2 days ago

@rujche Feel free to install a private build and set AZD_FORCE_TTY=true to get it working in the Goland terminal.

rujche commented 1 day ago

Hi, @weikanglim

Thanks for the reply. I tried the code above here is the result:

Is Not Terminal

Here is the related screenshot: image

rujche commented 1 day ago

@rujche Feel free to install a private build and set AZD_FORCE_TTY=true to get it working in the Goland terminal.

Hi, @weikanglim After adding the changed in your PR, it returns the new error:

image