mirror of
https://github.com/ralsina/tartrazine.git
synced 2024-11-10 13:32:24 +00:00
Merge pull request #86 from bzz/fix/panic-on-shebang
Fix LanguagesByShebang strategy on single shebang
This commit is contained in:
commit
116f9f7881
@ -284,14 +284,16 @@ func getInterpreter(data []byte) (interpreter string) {
|
|||||||
|
|
||||||
// skip shebang
|
// skip shebang
|
||||||
line = bytes.TrimSpace(line[2:])
|
line = bytes.TrimSpace(line[2:])
|
||||||
|
|
||||||
splitted := bytes.Fields(line)
|
splitted := bytes.Fields(line)
|
||||||
|
if len(splitted) == 0 {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
if bytes.Contains(splitted[0], []byte("env")) {
|
if bytes.Contains(splitted[0], []byte("env")) {
|
||||||
if len(splitted) > 1 {
|
if len(splitted) > 1 {
|
||||||
interpreter = string(splitted[1])
|
interpreter = string(splitted[1])
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
splittedPath := bytes.Split(splitted[0], []byte{'/'})
|
splittedPath := bytes.Split(splitted[0], []byte{'/'})
|
||||||
interpreter = string(splittedPath[len(splittedPath)-1])
|
interpreter = string(splittedPath[len(splittedPath)-1])
|
||||||
}
|
}
|
||||||
|
@ -212,6 +212,7 @@ println("The shell script says ",vm.arglist.concat(" "));`
|
|||||||
{name: "TestGetLanguagesByShebang_8", content: []byte(`#!bash`), expected: []string{"Shell"}},
|
{name: "TestGetLanguagesByShebang_8", content: []byte(`#!bash`), expected: []string{"Shell"}},
|
||||||
{name: "TestGetLanguagesByShebang_9", content: []byte(multilineExecHack), expected: []string{"Tcl"}},
|
{name: "TestGetLanguagesByShebang_9", content: []byte(multilineExecHack), expected: []string{"Tcl"}},
|
||||||
{name: "TestGetLanguagesByShebang_10", content: []byte(multilineNoExecHack), expected: []string{"Shell"}},
|
{name: "TestGetLanguagesByShebang_10", content: []byte(multilineNoExecHack), expected: []string{"Shell"}},
|
||||||
|
{name: "TestGetLanguagesByShebang_11", content: []byte(`#!`), expected: nil},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
Loading…
Reference in New Issue
Block a user