annotate benchmark/run_and_view.jl @ 1184:c06d8eb8b0f0 tooling/benchmarks

Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 27 Jan 2023 11:58:02 +0100
parents aefe4b551901
children 6fc0adcd5b97
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 # TBD: What parts are PkgBenchmark contributing? Can it be stripped out? Can we replace the html output part?
37f29a3a78dc Add some comments
Jonatan Werpers <jonatan@werpers.com>
parents: 1179
diff changeset
25
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
26 """
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 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
28
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 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
30 """
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
31 function run_benchmark()
1176
27ee001df3e5 Make run_benchmark include hg info
Jonatan Werpers <jonatan@werpers.com>
parents: 1175
diff changeset
32 r = PkgBenchmark.benchmarkpkg(Sbplib)
27ee001df3e5 Make run_benchmark include hg info
Jonatan Werpers <jonatan@werpers.com>
parents: 1175
diff changeset
33
1181
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
34 rev = hg_id()
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
35
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
36 return add_rev_info(r, rev)
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
37 end
1176
27ee001df3e5 Make run_benchmark include hg info
Jonatan Werpers <jonatan@werpers.com>
parents: 1175
diff changeset
38
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
39 """
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 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
41
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
42 Updates the repository to the given revison and runs the benchmark suite. When done, updates the repository to the origianl state.
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
43
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
44 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
45 """
1181
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
46 function run_benchmark(rev)
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
47 rev_before = hg_rev()
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
48 hg_update(rev)
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
49 r = run_benchmark()
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
50 hg_update(rev_before)
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
51
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
52 return run_benchmark()
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
53 end
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
54
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
55 """
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
56 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
57
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
58 Runs the benchmark at revisions `target` and `baseline` and compares them using `PkgBenchmark.judge`.
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 `f` is the function used to compare. `judgekwargs` are keyword arguments passed to `judge`.
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
60
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
61 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
62 """
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 function 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
64 t = run_benchmark(target)
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
65 b = run_benchmark(baseline)
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
66
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
67 judged = PkgBenchmark.judge(t,b,f; judgekwargs...)
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
68
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
69 return BenchmarkJudgement(t,b,judged)
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
70 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
71
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
72 # TBD: How to compare against current working directory? Possible to create a temporary commit?
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
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
1181
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
75 function add_rev_info(benchmarkresult, rev)
1176
27ee001df3e5 Make run_benchmark include hg info
Jonatan Werpers <jonatan@werpers.com>
parents: 1175
diff changeset
76 return PkgBenchmark.BenchmarkResults(
1183
aefe4b551901 Fix add_rev_info
Jonatan Werpers <jonatan@werpers.com>
parents: 1181
diff changeset
77 benchmarkresult.name,
1181
f49bac53e72b Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents: 1180
diff changeset
78 rev,
1183
aefe4b551901 Fix add_rev_info
Jonatan Werpers <jonatan@werpers.com>
parents: 1181
diff changeset
79 benchmarkresult.benchmarkgroup,
aefe4b551901 Fix add_rev_info
Jonatan Werpers <jonatan@werpers.com>
parents: 1181
diff changeset
80 benchmarkresult.date,
aefe4b551901 Fix add_rev_info
Jonatan Werpers <jonatan@werpers.com>
parents: 1181
diff changeset
81 benchmarkresult.julia_commit,
aefe4b551901 Fix add_rev_info
Jonatan Werpers <jonatan@werpers.com>
parents: 1181
diff changeset
82 benchmarkresult.vinfo,
aefe4b551901 Fix add_rev_info
Jonatan Werpers <jonatan@werpers.com>
parents: 1181
diff changeset
83 benchmarkresult.benchmarkconfig,
1176
27ee001df3e5 Make run_benchmark include hg info
Jonatan Werpers <jonatan@werpers.com>
parents: 1175
diff changeset
84 )
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
85 end
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
86
1177
68445e87fa93 Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents: 1176
diff changeset
87 function write_result_html(io, r)
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
88 iobuffer = IOBuffer()
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
89 PkgBenchmark.export_markdown(iobuffer, r)
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
90
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
91 parsed_md = Markdown.parse(String(take!(iobuffer)))
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
92 content = Markdown.html(parsed_md)
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
93
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
94 template = Mustache.load(template_path)
1177
68445e87fa93 Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents: 1176
diff changeset
95
68445e87fa93 Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents: 1176
diff changeset
96 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
97 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
98 end
1180
37f29a3a78dc Add some comments
Jonatan Werpers <jonatan@werpers.com>
parents: 1179
diff changeset
99 ## Fix the writing of the commit, it chops off all the important info
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
100
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
101 function write_result_html(r)
1179
d6038ceba882 Better file names för results
Jonatan Werpers <jonatan@werpers.com>
parents: 1178
diff changeset
102 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
103 file_path = joinpath(results_dir, dt*".html")
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
104
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
105 open(file_path, "w") do io
1177
68445e87fa93 Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents: 1176
diff changeset
106 write_result_html(io, r)
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
107 end
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
108
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
109 return file_path
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
110 end
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
111
1175
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
112 function hg_id()
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
113 cmd = Cmd(`hg id`, dir=sbplib_root)
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
114 return readchomp(addenv(cmd, "HGPLAIN"=>""))
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
115 end
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
116
1178
5c34dfc73b37 Add function for getting the hg rev id
Jonatan Werpers <jonatan@werpers.com>
parents: 1177
diff changeset
117 function hg_rev()
5c34dfc73b37 Add function for getting the hg rev id
Jonatan Werpers <jonatan@werpers.com>
parents: 1177
diff changeset
118 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
119 return readchomp(addenv(cmd, "HGPLAIN"=>""))
5c34dfc73b37 Add function for getting the hg rev id
Jonatan Werpers <jonatan@werpers.com>
parents: 1177
diff changeset
120 end
5c34dfc73b37 Add function for getting the hg rev id
Jonatan Werpers <jonatan@werpers.com>
parents: 1177
diff changeset
121
1175
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
122 function hg_update(rev)
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
123 cmd = Cmd(`hg update --check $rev`, dir=sbplib_root)
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
124 run(addenv(cmd, "HGPLAIN"=>""))
a0ab801b62c2 Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents: 1174
diff changeset
125 end
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
126
1172
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
127 # From Pluto.jl/src/webserver/WebServer.jl (2023-01-24)
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
128 function open_in_default_browser(url::AbstractString)::Bool
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
129 try
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
130 if Sys.isapple()
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
131 Base.run(`open $url`)
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
132 true
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
133 elseif Sys.iswindows() || detectwsl()
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
134 Base.run(`powershell.exe Start "'$url'"`)
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
135 true
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
136 elseif Sys.islinux()
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
137 Base.run(`xdg-open $url`)
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
138 true
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
139 else
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
140 false
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
141 end
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
142 catch ex
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
143 false
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
144 end
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
145 end
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
146
1174
50c31500eb97 Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents: 1172
diff changeset
147 main
1172
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
148
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
149 # TODO: Change color of codeblocks
34446df5733f Add run_and_view script
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
150 # TODO: Change width of tables and code blocks