annotate .cms/lib/codemirror/mode/dockerfile/test.js @ 0:78edf6b517a0 draft

24.10
author Coffee CMS <info@coffee-cms.ru>
date Fri, 11 Oct 2024 22:40:23 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
2 // Distributed under an MIT license: https://codemirror.net/5/LICENSE
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
3
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
4 (function() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5 var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-dockerfile");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6 function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 MT("simple_nodejs_dockerfile",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 "[keyword FROM] node:carbon",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 "[comment # Create app directory]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 "[keyword WORKDIR] /usr/src/app",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 "[comment # Install app dependencies]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 "[comment # A wildcard is used to ensure both package.json AND package-lock.json are copied]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 "[comment # where available (npm@5+)]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 "[keyword COPY] package*.json ./",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 "[keyword RUN] npm install",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 "[keyword COPY] . .",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 "[keyword EXPOSE] [number 8080] [number 3000]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 "[keyword ENV] NODE_ENV development",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 "[keyword CMD] [[ [string \"npm\"], [string \"start\"] ]]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 // Ideally the last space should not be highlighted.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23 MT("instruction_without_args_1",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 "[keyword CMD] ");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 MT("instruction_without_args_2",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 "[comment # An instruction without args...]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 "[keyword ARG] [error #...is an error]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 MT("multiline",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31 "[keyword RUN] apt-get update && apt-get install -y \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 " mercurial \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 " subversion \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 " && apt-get clean \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35 " && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 MT("from_comment",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 " [keyword FROM] debian:stretch # I tend to use stable as that is more stable",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 " [keyword FROM] debian:stretch [keyword AS] stable # I am even more stable",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40 " [keyword FROM] [error # this is an error]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 MT("from_as",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 "[keyword FROM] golang:1.9.2-alpine3.6 [keyword AS] build",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44 "[keyword COPY] --from=build /bin/project /bin/project",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 "[keyword ENTRYPOINT] [[ [string \"/bin/project\"] ]]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 "[keyword CMD] [[ [string \"--help\"] ]]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 MT("arg",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49 "[keyword ARG] VERSION=latest",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50 "[keyword FROM] busybox:$VERSION",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51 "[keyword ARG] VERSION",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 "[keyword RUN] echo $VERSION > image_version");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54 MT("label",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 "[keyword LABEL] com.example.label-with-value=[string \"foo\"]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57 MT("label_multiline",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58 "[keyword LABEL] description=[string \"This text illustrates ]\\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 "[string that label-values can span multiple lines.\"]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61 MT("maintainer",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62 "[keyword MAINTAINER] Foo Bar [string \"foo@bar.com\"] ",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63 "[keyword MAINTAINER] Bar Baz <bar@baz.com>");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65 MT("env",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66 "[keyword ENV] BUNDLE_PATH=[string \"$GEM_HOME\"] \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 " BUNDLE_APP_CONFIG=[string \"$GEM_HOME\"]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69 MT("verify_keyword",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70 "[keyword RUN] add-apt-repository ppa:chris-lea/node.js");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72 MT("scripts",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 "[comment # Set an entrypoint, to automatically install node modules]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74 "[keyword ENTRYPOINT] [[ [string \"/bin/bash\"], [string \"-c\"], [string \"if [[ ! -d node_modules ]]; then npm install; fi; exec \\\"${@:0}\\\";\"] ]]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75 "[keyword CMD] npm start",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76 "[keyword RUN] npm run build && \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77 "[comment # a comment between the shell commands]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78 " npm run test");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80 MT("strings_single",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81 "[keyword FROM] buildpack-deps:stretch",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82 "[keyword RUN] { \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83 " echo [string 'install: --no-document']; \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84 " echo [string 'update: --no-document']; \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 " } >> /usr/local/etc/gemrc");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87 MT("strings_single_multiline",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88 "[keyword RUN] set -ex \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 " \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
90 " && buildDeps=[string ' ]\\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
91 "[string bison ]\\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
92 "[string dpkg-dev ]\\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
93 "[string libgdbm-dev ]\\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
94 "[string ruby ]\\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
95 "[string '] \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
96 " && apt-get update");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
97
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
98 MT("strings_single_multiline_2",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
99 "[keyword RUN] echo [string 'say \\' ]\\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
100 "[string it works'] ");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
101
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
102 MT("strings_double",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
103 "[keyword RUN] apt-get install -y --no-install-recommends $buildDeps \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
104 " \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
105 " && wget -O ruby.tar.xz [string \"https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz\"] \\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
106 " && echo [string \"$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz\"] | sha256sum -c - ");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
107
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
108 MT("strings_double_multiline",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
109 "[keyword RUN] echo [string \"say \\\" ]\\",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
110 "[string it works\"] ");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
111
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
112 MT("escape",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
113 "[comment # escape=`]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
114 "[keyword FROM] microsoft/windowsservercore",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
115 "[keyword RUN] powershell.exe -Command `",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
116 " $ErrorActionPreference = [string 'Stop']; `",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
117 " wget https://www.python.org/ftp/python/3.5.1/python-3.5.1.exe -OutFile c:\python-3.5.1.exe ; `",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
118 " Start-Process c:\python-3.5.1.exe -ArgumentList [string '/quiet InstallAllUsers=1 PrependPath=1'] -Wait ; `",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
119 " Remove-Item c:\python-3.5.1.exe -Force)");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
120
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
121 MT("escape_strings",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
122 "[comment # escape=`]",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
123 "[keyword FROM] python:3.6-windowsservercore [keyword AS] python",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
124 "[keyword RUN] $env:PATH = [string 'C:\\Python;C:\\Python\\Scripts;{0}'] -f $env:PATH ; `",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
125 // It should not consider \' as escaped.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
126 // " Set-ItemProperty -Path [string 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment\\'] -Name Path -Value $env:PATH ;");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
127 " Set-ItemProperty -Path [string 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment\\' -Name Path -Value $env:PATH ;]");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
128 })();