Skip to content

Commit 690a0ff

Browse files
authored
Augment report with --before and --after files (#6)
1 parent 09b4ea3 commit 690a0ff

6 files changed

Lines changed: 64 additions & 5 deletions

File tree

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,7 @@ bazel aquery //pkg:target-name --output proto > before.pb
2323
> The file extensions are relevant; the proto decoder will be `protojson` if
2424
`.json`, `prototext` if `.text.pb` and `proto` otherwise.
2525

26-
An HTML report and accessory files will be written to the given `--report_dir`.
26+
An HTML report and accessory files will be written to the given `--report_dir`
27+
that will look something like:
28+
29+
<img width="934" alt="image" src="https://user-images.githubusercontent.com/50580/209453563-064db4dd-4068-4d2f-8bb3-35c425bfb8b5.png">

pkg/report/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ go_library(
44
name = "report",
55
srcs = [
66
"assets.go",
7+
"files.go",
78
"html.go",
89
],
910
embedsrcs = [
@@ -23,5 +24,4 @@ go_test(
2324
name = "report_test",
2425
srcs = ["html_test.go"],
2526
embed = [":report"],
26-
deps = ["@com_github_google_go_cmp//cmp"],
2727
)

pkg/report/files.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package report
2+
3+
import (
4+
"io"
5+
"os"
6+
)
7+
8+
func copyFile(src string, dest string) error {
9+
srcFile, err := os.Open(src)
10+
if err != nil {
11+
return err
12+
}
13+
defer srcFile.Close()
14+
15+
destFile, err := os.Create(dest)
16+
if err != nil {
17+
return err
18+
}
19+
defer destFile.Close()
20+
21+
_, err = io.Copy(destFile, srcFile)
22+
if err != nil {
23+
return err
24+
}
25+
err = destFile.Sync()
26+
if err != nil {
27+
return err
28+
}
29+
return nil
30+
}

pkg/report/html.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,32 +26,48 @@ type Html struct {
2626
}
2727

2828
func (r *Html) Emit(dir string) error {
29+
if err := r.emitFile(dir, r.BeforeFile); err != nil {
30+
return err
31+
}
32+
r.BeforeFile = filepath.Base(r.BeforeFile)
33+
34+
if err := r.emitFile(dir, r.AfterFile); err != nil {
35+
return err
36+
}
37+
r.AfterFile = filepath.Base(r.AfterFile)
38+
2939
for _, action := range r.Before.Actions {
3040
if err := r.emitAction(dir, action); err != nil {
3141
return err
3242
}
3343
}
44+
3445
for _, action := range r.After.Actions {
3546
if err := r.emitAction(dir, action); err != nil {
3647
return err
3748
}
3849
}
50+
3951
for _, pair := range r.Equal {
4052
if err := r.emitOutputPairDiff(dir, pair); err != nil {
4153
return err
4254
}
4355
}
56+
4457
for _, pair := range r.NonEqual {
4558
if err := r.emitOutputPairDiff(dir, pair); err != nil {
4659
return err
4760
}
4861
}
62+
4963
if err := r.emitIndexHtml(dir); err != nil {
5064
return err
5165
}
66+
5267
if err := r.emitStyleCss(dir); err != nil {
5368
return err
5469
}
70+
5571
return nil
5672
}
5773

@@ -65,6 +81,15 @@ func (r *Html) emitAction(dir string, action *dipb.Action) error {
6581
return nil
6682
}
6783

84+
func (r *Html) emitFile(dir string, original string) error {
85+
filename := filepath.Join(dir, filepath.Base(original))
86+
basedir := filepath.Dir(filename)
87+
if err := os.MkdirAll(basedir, os.ModePerm); err != nil {
88+
return err
89+
}
90+
return copyFile(original, filename)
91+
}
92+
6893
func (r *Html) emitActionJson(dir string, action *dipb.Action) error {
6994
filename := filepath.Join(dir, action.Id+".json")
7095
basedir := filepath.Dir(filename)

pkg/report/index.html.tmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
<body class="markdown-body container-lg">
99
<h1><code>aquerydiff</code> report</h1>
1010
<ul>
11-
<li>before file: <code>{{.BeforeFile}}</code></li>
12-
<li>after file: <code>{{.AfterFile}}</code></li>
11+
<li><code>--before</code> <a href="{{.BeforeFile}}">{{.BeforeFile}}</a></li>
12+
<li><code>--after</code> <a href="{{.AfterFile}}">{{.AfterFile}}</a></li>
1313
</ul>
1414

1515
<h2>Actions present only in <code>--before</code>:</h2>

pkg/report/style.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
--color-border-muted: hsla(210, 18%, 87%, 1);
33
--color-neutral-muted: rgba(175, 184, 193, 0.2);
44
--color-accent-fg: #0969da;
5+
--color-success-fg: #1a7f37;
56
}
67

78
a {
@@ -92,7 +93,7 @@ th.outputfile {
9293
td.mnemonic {
9394
vertical-align: top;
9495
text-align: right;
95-
color: crimson;
96+
color: var(--color-success-fg);
9697
}
9798

9899
.links {

0 commit comments

Comments
 (0)