Update Dockerfile handling to keep parser directives at the top
Signed-off-by: CrazyMax <google@crazymax.dev>
This commit is contained in:
2
main.go
2
main.go
@@ -296,6 +296,8 @@ var head = []string{
|
|||||||
"# encoding:", // Ruby encoding
|
"# encoding:", // Ruby encoding
|
||||||
"# frozen_string_literal:", // Ruby interpreter instruction
|
"# frozen_string_literal:", // Ruby interpreter instruction
|
||||||
"<?php", // PHP opening tag
|
"<?php", // PHP opening tag
|
||||||
|
"# escape", // Dockerfile directive https://docs.docker.com/engine/reference/builder/#parser-directives
|
||||||
|
"# syntax", // Dockerfile directive https://docs.docker.com/engine/reference/builder/#parser-directives
|
||||||
}
|
}
|
||||||
|
|
||||||
func hashBang(b []byte) []byte {
|
func hashBang(b []byte) []byte {
|
||||||
|
|||||||
@@ -242,6 +242,8 @@ func TestAddLicense(t *testing.T) {
|
|||||||
{"# encoding: UTF-8\ncontent", "# encoding: UTF-8\n// HYS\n\ncontent", true},
|
{"# encoding: UTF-8\ncontent", "# encoding: UTF-8\n// HYS\n\ncontent", true},
|
||||||
{"# frozen_string_literal: true\ncontent", "# frozen_string_literal: true\n// HYS\n\ncontent", true},
|
{"# frozen_string_literal: true\ncontent", "# frozen_string_literal: true\n// HYS\n\ncontent", true},
|
||||||
{"<?php\ncontent", "<?php\n// HYS\n\ncontent", true},
|
{"<?php\ncontent", "<?php\n// HYS\n\ncontent", true},
|
||||||
|
{"# escape: `\ncontent", "# escape: `\n// HYS\n\ncontent", true},
|
||||||
|
{"# syntax: docker/dockerfile:1.3\ncontent", "# syntax: docker/dockerfile:1.3\n// HYS\n\ncontent", true},
|
||||||
|
|
||||||
// ensure files with existing license or generated files are
|
// ensure files with existing license or generated files are
|
||||||
// skipped. No need to test all permutations of these, since
|
// skipped. No need to test all permutations of these, since
|
||||||
|
|||||||
17
testdata/expected/file2.Dockerfile
vendored
Normal file
17
testdata/expected/file2.Dockerfile
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# syntax=docker/dockerfile:1.3
|
||||||
|
# Copyright 2018 Google LLC
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
FROM scratch
|
||||||
|
CMD ["echo", "hello world"]
|
||||||
18
testdata/expected/file3.Dockerfile
vendored
Normal file
18
testdata/expected/file3.Dockerfile
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# escape=`
|
||||||
|
# Copyright 2018 Google LLC
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
FROM microsoft/nanoserver
|
||||||
|
COPY testfile.txt c:\
|
||||||
|
RUN dir c:\
|
||||||
3
testdata/initial/file2.Dockerfile
vendored
Normal file
3
testdata/initial/file2.Dockerfile
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# syntax=docker/dockerfile:1.3
|
||||||
|
FROM scratch
|
||||||
|
CMD ["echo", "hello world"]
|
||||||
4
testdata/initial/file3.Dockerfile
vendored
Normal file
4
testdata/initial/file3.Dockerfile
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# escape=`
|
||||||
|
FROM microsoft/nanoserver
|
||||||
|
COPY testfile.txt c:\
|
||||||
|
RUN dir c:\
|
||||||
Reference in New Issue
Block a user