annotate benchmark/benchmark_utils.jl @ 1318:e883085a091a tooling/benchmarks

Improve docstring for run_benchmark(target,baseline)
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 28 Apr 2023 08:35:37 +0200
parents 7110851b9c87
children cb4d57ce2ed1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
1 import PkgBenchmark
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
2 import Markdown
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
3 import Mustache
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
4 import Dates
1172
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 import Sbplib
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
8 const sbplib_root = splitpath(pathof(Sbplib))[1:end-2] |> joinpath
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
9 const results_dir = mkpath(joinpath(sbplib_root, "benchmark/results"))
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
10 const template_path = joinpath(sbplib_root, "benchmark/result.tmpl")
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
11
1184
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
12 """
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
13 main(args...; kwargs...)
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
14
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
15 Calls `run_benchmark(args...; kwargs...)` and writes the results as an HTML file in `benchmark/results`.
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
16 See [`run_benchmark`](@ref) for possible arguments.
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
17 """
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
18 function main(args...; kwargs...)
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
19 r = run_benchmark(args...; kwargs...)
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
20 file_path = write_result_html(r)
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
21 open_in_default_browser(file_path)
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
22 end
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
23
1180
37f29a3a78dc Add some comments
Jonatan Werpers <jonatan@werpers.com>
parents: 1179
diff changeset
24
1184
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
25 """
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
26 run_benchmark()
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
27
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
28 Runs the benchmark suite for the current working directory and returns a `PkgBenchmark.BenchmarkResult`
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
29 """
1197
5e20c0815e07 Pass kwargs from main() and run_benchmarks() to benchmarkpkg()
Jonatan Werpers <jonatan@werpers.com>
parents: 1192
diff changeset
30 function run_benchmark(;kwargs...)
5e20c0815e07 Pass kwargs from main() and run_benchmarks() to benchmarkpkg()
Jonatan Werpers <jonatan@werpers.com>
parents: 1192
diff changeset
31 r = PkgBenchmark.benchmarkpkg(Sbplib; kwargs...)
1176
27ee001df3e5 Make run_benchmark include hg info
Jonatan Werpers <jonatan@werpers.com>
parents: 1175
diff changeset
32
1315
0551fd71682f Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents: 1313
diff changeset
33 rev = hg_rev() # Should be changed to hg_id() when the html can handle it.
1181
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
34
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
35 return add_rev_info(r, rev)
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
36 end
1176
27ee001df3e5 Make run_benchmark include hg info
Jonatan Werpers <jonatan@werpers.com>
parents: 1175
diff changeset
37
1184
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
38 """
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
39 run_benchmark(rev)
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
40
1305
7894d29ea8fa Improve docs for run_benchmark(rev)
Jonatan Werpers <jonatan@werpers.com>
parents: 1303
diff changeset
41 Updates the repository to the given revison and runs the benchmark suite. When
7894d29ea8fa Improve docs for run_benchmark(rev)
Jonatan Werpers <jonatan@werpers.com>
parents: 1303
diff changeset
42 done, reverts the repository to the original state. `rev` can be any
7894d29ea8fa Improve docs for run_benchmark(rev)
Jonatan Werpers <jonatan@werpers.com>
parents: 1303
diff changeset
43 identifier compatible with `hg update`.
1185
6fc0adcd5b97 Add info about supported rev identifiers
Jonatan Werpers <jonatan@werpers.com>
parents: 1184
diff changeset
44
1184
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
45 Returns a `PkgBenchmark.BenchmarkResult`
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
46 """
1197
5e20c0815e07 Pass kwargs from main() and run_benchmarks() to benchmarkpkg()
Jonatan Werpers <jonatan@werpers.com>
parents: 1192
diff changeset
47 function run_benchmark(rev; kwargs...)
1317
7110851b9c87 Change run_benchmark(rev) to use hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1315
diff changeset
48 return hg_at_revision(rev) do
7110851b9c87 Change run_benchmark(rev) to use hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1315
diff changeset
49 run_benchmark(;kwargs...)
7110851b9c87 Change run_benchmark(rev) to use hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1315
diff changeset
50 end
1181
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
51 end
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
52
1184
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
53 """
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
54 run_benchmark(target, baseline, f=minimum; judgekwargs=Dict())
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
55
1318
e883085a091a Improve docstring for run_benchmark(target,baseline)
Jonatan Werpers <jonatan@werpers.com>
parents: 1317
diff changeset
56 Runs the benchmark at revisions `target` and `baseline` and compares them
e883085a091a Improve docstring for run_benchmark(target,baseline)
Jonatan Werpers <jonatan@werpers.com>
parents: 1317
diff changeset
57 using `PkgBenchmark.judge`. `f` is the function used to compare. `judgekwargs`
e883085a091a Improve docstring for run_benchmark(target,baseline)
Jonatan Werpers <jonatan@werpers.com>
parents: 1317
diff changeset
58 are keyword arguments passed to `judge`.
1184
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
59
1185
6fc0adcd5b97 Add info about supported rev identifiers
Jonatan Werpers <jonatan@werpers.com>
parents: 1184
diff changeset
60 `target` and `baseline` can be any identifier compatible with `hg update`.
6fc0adcd5b97 Add info about supported rev identifiers
Jonatan Werpers <jonatan@werpers.com>
parents: 1184
diff changeset
61
1184
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
62 Returns a `PkgBenchmark.BenchmarkJudgement`
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
63 """
1197
5e20c0815e07 Pass kwargs from main() and run_benchmarks() to benchmarkpkg()
Jonatan Werpers <jonatan@werpers.com>
parents: 1192
diff changeset
64 function run_benchmark(target, baseline, f=minimum; judgekwargs=Dict(), kwargs...)
1188
d2e73d7b417d Fix bug in runbenchmark(t,b)
Jonatan Werpers <jonatan@werpers.com>
parents: 1187
diff changeset
65 rev_before = hg_rev()
d2e73d7b417d Fix bug in runbenchmark(t,b)
Jonatan Werpers <jonatan@werpers.com>
parents: 1187
diff changeset
66 hg_update(target)
1197
5e20c0815e07 Pass kwargs from main() and run_benchmarks() to benchmarkpkg()
Jonatan Werpers <jonatan@werpers.com>
parents: 1192
diff changeset
67 t = run_benchmark(;kwargs...)
1188
d2e73d7b417d Fix bug in runbenchmark(t,b)
Jonatan Werpers <jonatan@werpers.com>
parents: 1187
diff changeset
68 hg_update(baseline)
1197
5e20c0815e07 Pass kwargs from main() and run_benchmarks() to benchmarkpkg()
Jonatan Werpers <jonatan@werpers.com>
parents: 1192
diff changeset
69 b = run_benchmark(;kwargs...)
1188
d2e73d7b417d Fix bug in runbenchmark(t,b)
Jonatan Werpers <jonatan@werpers.com>
parents: 1187
diff changeset
70 hg_update(rev_before)
1184
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
71
1188
d2e73d7b417d Fix bug in runbenchmark(t,b)
Jonatan Werpers <jonatan@werpers.com>
parents: 1187
diff changeset
72 return PkgBenchmark.judge(t,b,f; judgekwargs...)
1184
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
73 end
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
74
c06d8eb8b0f0 Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents: 1183
diff changeset
75
1181
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
76 function add_rev_info(benchmarkresult, rev)
1315
0551fd71682f Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents: 1313
diff changeset
77 if endswith(rev,"+")
0551fd71682f Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents: 1313
diff changeset
78 revstr = "+$rev" # Workaround for the bad presentation of BenchmarkResults.
0551fd71682f Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents: 1313
diff changeset
79 else
0551fd71682f Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents: 1313
diff changeset
80 revstr = rev
0551fd71682f Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents: 1313
diff changeset
81 end
0551fd71682f Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents: 1313
diff changeset
82
1176
27ee001df3e5 Make run_benchmark include hg info
Jonatan Werpers <jonatan@werpers.com>
parents: 1175
diff changeset
83 return PkgBenchmark.BenchmarkResults(
1183
aefe4b551901 Fix add_rev_info
Jonatan Werpers <jonatan@werpers.com>
parents: 1181
diff changeset
84 benchmarkresult.name,
1315
0551fd71682f Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents: 1313
diff changeset
85 revstr,
1183
aefe4b551901 Fix add_rev_info
Jonatan Werpers <jonatan@werpers.com>
parents: 1181
diff changeset
86 benchmarkresult.benchmarkgroup,
aefe4b551901 Fix add_rev_info
Jonatan Werpers <jonatan@werpers.com>
parents: 1181
diff changeset
87 benchmarkresult.date,
aefe4b551901 Fix add_rev_info
Jonatan Werpers <jonatan@werpers.com>
parents: 1181
diff changeset
88 benchmarkresult.julia_commit,
aefe4b551901 Fix add_rev_info
Jonatan Werpers <jonatan@werpers.com>
parents: 1181
diff changeset
89 benchmarkresult.vinfo,
aefe4b551901 Fix add_rev_info
Jonatan Werpers <jonatan@werpers.com>
parents: 1181
diff changeset
90 benchmarkresult.benchmarkconfig,
1176
27ee001df3e5 Make run_benchmark include hg info
Jonatan Werpers <jonatan@werpers.com>
parents: 1175
diff changeset
91 )
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
92 end
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
93
1190
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
94
1177
68445e87fa93 Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents: 1176
diff changeset
95 function write_result_html(io, r)
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
96 iobuffer = IOBuffer()
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
97 PkgBenchmark.export_markdown(iobuffer, r)
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
98
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
99 parsed_md = Markdown.parse(String(take!(iobuffer)))
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
100 content = Markdown.html(parsed_md)
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
101
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
102 template = Mustache.load(template_path)
1177
68445e87fa93 Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents: 1176
diff changeset
103
68445e87fa93 Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents: 1176
diff changeset
104 dt = Dates.format(PkgBenchmark.date(r), "yyyy-mm-dd HH:MM:SS")
68445e87fa93 Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents: 1176
diff changeset
105 Mustache.render(io, template, Dict("title"=>dt, "content"=>content))
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
106 end
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
107
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
108 function write_result_html(r)
1179
d6038ceba882 Better file names för results
Jonatan Werpers <jonatan@werpers.com>
parents: 1178
diff changeset
109 dt = Dates.format(PkgBenchmark.date(r), "yyyy-mm-dd HHMMSS")
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
110 file_path = joinpath(results_dir, dt*".html")
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
111
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
112 open(file_path, "w") do io
1177
68445e87fa93 Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents: 1176
diff changeset
113 write_result_html(io, r)
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
114 end
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
115
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
116 return file_path
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
117 end
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
118
1190
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
119
1189
525015283843 Add the date function to BenchmarkJudment
Jonatan Werpers <jonatan@werpers.com>
parents: 1188
diff changeset
120 PkgBenchmark.date(j::PkgBenchmark.BenchmarkJudgement) = PkgBenchmark.date(PkgBenchmark.target_result(j))
525015283843 Add the date function to BenchmarkJudment
Jonatan Werpers <jonatan@werpers.com>
parents: 1188
diff changeset
121
1190
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
122
1175
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
123 function hg_id()
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
124 cmd = Cmd(`hg id`, dir=sbplib_root)
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
125 return readchomp(addenv(cmd, "HGPLAIN"=>""))
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
126 end
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
127
1178
5c34dfc73b37 Add function for getting the hg rev id
Jonatan Werpers <jonatan@werpers.com>
parents: 1177
diff changeset
128 function hg_rev()
5c34dfc73b37 Add function for getting the hg rev id
Jonatan Werpers <jonatan@werpers.com>
parents: 1177
diff changeset
129 cmd = Cmd(`hg id -i`, dir=sbplib_root)
5c34dfc73b37 Add function for getting the hg rev id
Jonatan Werpers <jonatan@werpers.com>
parents: 1177
diff changeset
130 return readchomp(addenv(cmd, "HGPLAIN"=>""))
5c34dfc73b37 Add function for getting the hg rev id
Jonatan Werpers <jonatan@werpers.com>
parents: 1177
diff changeset
131 end
5c34dfc73b37 Add function for getting the hg rev id
Jonatan Werpers <jonatan@werpers.com>
parents: 1177
diff changeset
132
1175
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
133 function hg_update(rev)
1186
ca26f0e7683e Make hg_update() more flexible
Jonatan Werpers <jonatan@werpers.com>
parents: 1185
diff changeset
134 cmd = Cmd(`hg update --check -r $rev`, dir=sbplib_root)
1175
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
135 run(addenv(cmd, "HGPLAIN"=>""))
1308
a8e76daaf2ae Better return for hg_update()
Jonatan Werpers <jonatan@werpers.com>
parents: 1307
diff changeset
136
a8e76daaf2ae Better return for hg_update()
Jonatan Werpers <jonatan@werpers.com>
parents: 1307
diff changeset
137 return nothing
1175
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
138 end
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
139
1307
27afd53511d4 Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents: 1306
diff changeset
140 """
27afd53511d4 Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents: 1306
diff changeset
141 hg_commit(msg; secret=false)
27afd53511d4 Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents: 1306
diff changeset
142
27afd53511d4 Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents: 1306
diff changeset
143 Make a hg commit with the provided message. If `secret` is true the commit is
27afd53511d4 Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents: 1306
diff changeset
144 in the secret phase stopping it from being pushed.
27afd53511d4 Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents: 1306
diff changeset
145 """
27afd53511d4 Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents: 1306
diff changeset
146 function hg_commit(msg; secret=false)
27afd53511d4 Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents: 1306
diff changeset
147 if secret
1309
7fc84c2f9e1d Fix flag issue in hg_commit
Jonatan Werpers <jonatan@werpers.com>
parents: 1308
diff changeset
148 cmd = Cmd(`hg commit --verbose --secret --message $msg`, dir=sbplib_root)
1307
27afd53511d4 Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents: 1306
diff changeset
149 else
1309
7fc84c2f9e1d Fix flag issue in hg_commit
Jonatan Werpers <jonatan@werpers.com>
parents: 1308
diff changeset
150 cmd = Cmd(`hg commit --verbose --message $msg`, dir=sbplib_root)
1307
27afd53511d4 Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents: 1306
diff changeset
151 end
27afd53511d4 Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents: 1306
diff changeset
152
1303
2d34290fdc58 Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents: 1302
diff changeset
153 out = readchomp(addenv(cmd, "HGPLAIN"=>""))
2d34290fdc58 Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents: 1302
diff changeset
154
2d34290fdc58 Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents: 1302
diff changeset
155 return only(match(r"committed changeset \d+:([0-9a-z]+)", out))
2d34290fdc58 Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents: 1302
diff changeset
156 end
2d34290fdc58 Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents: 1302
diff changeset
157
1310
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
158 """
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
159 hg_strip(rev; keep=false)
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
160
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
161 Strips the given commit from the repo. If `keep` is true, the changes of the
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
162 commit are kept in the working directory.
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
163 """
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
164 function hg_strip(rev; keep=false)
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
165 if keep
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
166 cmd = Cmd(`hg --config extensions.strip= strip --keep -r $rev`, dir=sbplib_root)
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
167 else
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
168 cmd = Cmd(`hg --config extensions.strip= strip -r $rev`, dir=sbplib_root)
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
169 end
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
170
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
171 run(addenv(cmd, "HGPLAIN"=>""))
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
172
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
173 return nothing
8754d0f06ce4 Add hg_strip()
Jonatan Werpers <jonatan@werpers.com>
parents: 1309
diff changeset
174 end
1311
5eb1d0ae0ac1 Add docs for hg_is_dirty
Jonatan Werpers <jonatan@werpers.com>
parents: 1310
diff changeset
175
5eb1d0ae0ac1 Add docs for hg_is_dirty
Jonatan Werpers <jonatan@werpers.com>
parents: 1310
diff changeset
176 """
5eb1d0ae0ac1 Add docs for hg_is_dirty
Jonatan Werpers <jonatan@werpers.com>
parents: 1310
diff changeset
177 hg_is_dirty()
5eb1d0ae0ac1 Add docs for hg_is_dirty
Jonatan Werpers <jonatan@werpers.com>
parents: 1310
diff changeset
178
5eb1d0ae0ac1 Add docs for hg_is_dirty
Jonatan Werpers <jonatan@werpers.com>
parents: 1310
diff changeset
179 Return true if the repositopry has uncommited changes.
5eb1d0ae0ac1 Add docs for hg_is_dirty
Jonatan Werpers <jonatan@werpers.com>
parents: 1310
diff changeset
180 """
1303
2d34290fdc58 Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents: 1302
diff changeset
181 function hg_is_dirty()
2d34290fdc58 Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents: 1302
diff changeset
182 cmd = Cmd(`hg identify --id`, dir=sbplib_root)
2d34290fdc58 Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents: 1302
diff changeset
183 out = readchomp(addenv(cmd, "HGPLAIN"=>""))
2d34290fdc58 Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents: 1302
diff changeset
184
2d34290fdc58 Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents: 1302
diff changeset
185 return endswith(out, "+")
2d34290fdc58 Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents: 1302
diff changeset
186 end
2d34290fdc58 Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents: 1302
diff changeset
187
1312
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
188 """
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
189 hg_at_revision(f, rev)
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
190
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
191 Update the repository to the given revision and run the function `f`. After
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
192 `f` is run the working directory is restored. If there are uncommited changes
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
193 a temporary commit will be used to save the state of the working directory.
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
194 """
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
195 function hg_at_revision(f, rev)
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
196 if hg_is_dirty()
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
197 hg_with_temporary_commit() do
1313
708dbfd5edb9 Make hg_at_revision() return the result of f
Jonatan Werpers <jonatan@werpers.com>
parents: 1312
diff changeset
198 return _hg_at_revision(f, rev)
1312
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
199 end
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
200 else
1313
708dbfd5edb9 Make hg_at_revision() return the result of f
Jonatan Werpers <jonatan@werpers.com>
parents: 1312
diff changeset
201 return _hg_at_revision(f, rev)
1312
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
202 end
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
203 end
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
204
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
205 function _hg_at_revision(f, rev)
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
206 @assert !hg_is_dirty()
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
207
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
208 origin_rev = hg_rev()
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
209
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
210 hg_update(rev)
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
211 try
1313
708dbfd5edb9 Make hg_at_revision() return the result of f
Jonatan Werpers <jonatan@werpers.com>
parents: 1312
diff changeset
212 return f()
1312
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
213 finally
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
214 hg_update(origin_rev)
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
215 end
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
216 end
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
217
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
218 """
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
219 hg_with_temporary_commit(f)
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
220
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
221 Run the function `f` after making a temporary commit with the current working
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
222 directory. After `f` has finished the working directory is restored to its
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
223 original state and the temporary commit stripped.
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
224 """
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
225 function hg_with_temporary_commit(f)
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
226 @assert hg_is_dirty()
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
227
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
228 origin_rev = hg_commit("[Automatic commit by julia]",secret=true)
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
229
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
230 try
1313
708dbfd5edb9 Make hg_at_revision() return the result of f
Jonatan Werpers <jonatan@werpers.com>
parents: 1312
diff changeset
231 return f()
1312
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
232 finally
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
233 hg_update(origin_rev)
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
234 hg_strip(origin_rev; keep=true)
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
235 end
f7621dd600e4 Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents: 1311
diff changeset
236 end
1303
2d34290fdc58 Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents: 1302
diff changeset
237
1190
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
238
1172
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
239 # From Pluto.jl/src/webserver/WebServer.jl (2023-01-24)
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
240 function open_in_default_browser(url::AbstractString)::Bool
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
241 try
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
242 if Sys.isapple()
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
243 Base.run(`open $url`)
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
244 true
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
245 elseif Sys.iswindows() || detectwsl()
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
246 Base.run(`powershell.exe Start "'$url'"`)
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
247 true
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
248 elseif Sys.islinux()
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
249 Base.run(`xdg-open $url`)
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
250 true
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
251 else
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
252 false
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
253 end
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
254 catch ex
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
255 false
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
256 end
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
257 end
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
258
1190
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
259
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
260 main
1172
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
261
1190
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
262 # TODO: Better logging of what is happening
1191
12b525cd3da6 More todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1190
diff changeset
263 # TODO: Improve the workflow? How?
1190
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
264
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
265 # TODO: Clean up the HTML output?
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
266 # TODO: Make the codeblocks in the table look nicer
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
267 # TODO: Change width of tables and code blocks so everything is visible
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
268 # TODO: Fix the commit id, it chops off all the important info
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
269 # TODO: Make title less verbose
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
270 # TBD: Do we have to replace export_markdown? Could use a template instead.
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
271
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
272
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
273 # TBD: How to compare against current working directory? Possible to create a temporary commit?
1302
68dd0c9f5cac Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 1197
diff changeset
274 # Make a secret temporary commit
68dd0c9f5cac Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 1197
diff changeset
275 # run benchmarkresult
68dd0c9f5cac Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 1197
diff changeset
276 # uncommit the temporary commit
68dd0c9f5cac Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 1197
diff changeset
277 # verbose flag on commit will print the revision id of the new commit.
1190
1aca445216b8 Clean up todos
Jonatan Werpers <jonatan@werpers.com>
parents: 1189
diff changeset
278 # TBD: What parts are PkgBenchmark contributing? Can it be stripped out?
1306
c14370f7c731 Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents: 1305
diff changeset
279
c14370f7c731 Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents: 1305
diff changeset
280
c14370f7c731 Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents: 1305
diff changeset
281 ## Catching the exit code and errors from a command can be done with code similar to
c14370f7c731 Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents: 1305
diff changeset
282 # proc = open(cmd)
c14370f7c731 Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents: 1305
diff changeset
283 # if success(proc)
c14370f7c731 Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents: 1305
diff changeset
284
c14370f7c731 Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents: 1305
diff changeset
285 # else
c14370f7c731 Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents: 1305
diff changeset
286
c14370f7c731 Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents: 1305
diff changeset
287 # end