WIP: experimental bash support for windows
This commit is contained in:
parent
bbd756a99f
commit
f99b54a731
1 changed files with 20 additions and 12 deletions
|
|
@ -410,19 +410,27 @@ func ExpandAlias(args []string) (expanded []string, isShell bool, err error) {
|
|||
isShell = true
|
||||
expanded = []string{"sh", "-c", expansion[1:]}
|
||||
if runtime.GOOS == "windows" {
|
||||
argList := ""
|
||||
if len(args[2:]) > 0 {
|
||||
argList = " -ArgumentList @("
|
||||
for i, arg := range args[2:] {
|
||||
argList += fmt.Sprintf("'%s'", arg)
|
||||
if i < len(args[2:])-1 {
|
||||
argList += ","
|
||||
}
|
||||
}
|
||||
argList += ")"
|
||||
//argList := ""
|
||||
//if len(args[2:]) > 0 {
|
||||
// argList = " -ArgumentList @("
|
||||
// for i, arg := range args[2:] {
|
||||
// argList += fmt.Sprintf("'%s'", arg)
|
||||
// if i < len(args[2:])-1 {
|
||||
// argList += ","
|
||||
// }
|
||||
// }
|
||||
// argList += ")"
|
||||
//}
|
||||
//invoke := fmt.Sprintf("Invoke-Command -ScriptBlock { %s } %s", expansion[1:], argList)
|
||||
//expanded = []string{"pwsh", "-Command", invoke}
|
||||
executable, err := os.Executable()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
invoke := fmt.Sprintf("Invoke-Command -ScriptBlock { %s } %s", expansion[1:], argList)
|
||||
expanded = []string{"pwsh", "-Command", invoke}
|
||||
invoke := fmt.Sprintf("gh () { %s \"$@\" }; %s", executable, expansion[1:])
|
||||
|
||||
expanded = []string{"bash", "--posix", "-c", invoke, "--"}
|
||||
expanded = append(expanded, args[2:]...)
|
||||
} else {
|
||||
if len(args[2:]) > 0 {
|
||||
expanded = append(expanded, "--")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue