From e8c2f7b3b0aa486ed5de7599ddd33022971fa01f Mon Sep 17 00:00:00 2001 From: Anurag Sharma Date: Thu, 6 Mar 2025 15:33:18 +0530 Subject: [PATCH] fix: take only first line from the script --- provisioner/shell/provisioner.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/provisioner/shell/provisioner.go b/provisioner/shell/provisioner.go index acc31b71e..49ae38579 100644 --- a/provisioner/shell/provisioner.go +++ b/provisioner/shell/provisioner.go @@ -113,7 +113,12 @@ func (p *Provisioner) Prepare(raws ...interface{}) error { if p.config.InlineShebang == "" { if p.config.Inline != nil && len(p.config.Inline) > 0 && strings.HasPrefix(p.config.Inline[0], "#!") { - p.config.InlineShebang = strings.TrimPrefix(p.config.Inline[0], "#!") + newLineIndex := strings.Index(p.config.Inline[0], "\n") + if newLineIndex == -1 { + newLineIndex = len(p.config.Inline[0]) + } + firstLine := strings.TrimRight(p.config.Inline[0][:newLineIndex], "\r") + p.config.InlineShebang = strings.TrimPrefix(firstLine, "#!") } else { p.config.InlineShebang = "/bin/sh -e" }