Commit befe10e
Eric Bower
·
2023-06-19 00:08:50 -0400 EDT
parent 002fb3a
refactor: html links mostly working
10 files changed,
+135,
-105
+3,
-1
| ... | ... | @@ -12,6 +12,8 @@ | |
| 12 | 12 | ||
| 13 | 13 | <link rel="stylesheet" href="/main.css" /> | |
| 14 | 14 | </head> | |
| 15 | - | <body>{{template "content" .}}</body> | |
| 15 | + | <body> | |
| 16 | + | {{template "content" .}} | |
| 17 | + | </body> | |
| 16 | 18 | </html> | |
| 17 | 19 | {{end}} |
+48,
-47
| ... | ... | @@ -1,49 +1,50 @@ | |
| 1 | - | {{- template "base" . -}} | |
| 1 | + | {{template "base" .}} | |
| 2 | 2 | {{define "title"}}commit log{{end}} | |
| 3 | 3 | ||
| 4 | - | {{- define "content"}} | |
| 5 | - | ||
| 6 | - | <dl> | |
| 7 | - | <dt>commit</dt> | |
| 8 | - | <dd><a href="{{.Data.CommitURL}}">{{.Data.Commit.ID}}</a></dd> | |
| 9 | - | ||
| 10 | - | <dt>parent</dt> | |
| 11 | - | <dd><a href="{{.Data.ParentURL}}">parent {{.Data.Parent}}</a></dd> | |
| 12 | - | ||
| 13 | - | <dt>author</dt> | |
| 14 | - | <dd>{{.Data.Commit.Author.Name}}</dd> | |
| 15 | - | ||
| 16 | - | <dt>date</dt> | |
| 17 | - | <dd>{{.Data.Commit.Author.When}}</dd> | |
| 18 | - | </dl> | |
| 19 | - | ||
| 20 | - | <p> | |
| 21 | - | {{.Data.Commit.Message}} | |
| 22 | - | </p> | |
| 23 | - | ||
| 24 | - | <p> | |
| 25 | - | <strong>{{.Data.Diff.NumFiles}}</strong> files changed, | |
| 26 | - | <span class="color-green">+{{.Data.Diff.TotalAdditions}}</span>, | |
| 27 | - | <span class="color-red">-{{.Data.Diff.TotalDeletions}}</span> | |
| 28 | - | </p> | |
| 29 | - | ||
| 30 | - | {{range .Data.Diff.Files}} | |
| 31 | - | ||
| 32 | - | <p> | |
| 33 | - | {{.OldMode}} {{.OldName}} => {{.Mode}} {{.Name}} | |
| 34 | - | </p> | |
| 35 | - | ||
| 36 | - | <div> | |
| 37 | - | <span class="color-green">+{{.NumAdditions}}</span>, | |
| 38 | - | <span class="color-red">-{{.NumDeletions}}</span> | |
| 39 | - | </div> | |
| 40 | - | ||
| 41 | - | <pre> | |
| 42 | - | {{- range .Sections}} | |
| 43 | - | {{- range .Lines}} | |
| 44 | - | {{.Content}} | |
| 45 | - | {{- end}} | |
| 46 | - | {{- end}} | |
| 47 | - | </pre> | |
| 48 | - | {{- end}} | |
| 49 | - | {{- end }} | |
| 4 | + | {{define "content"}} | |
| 5 | + | {{template "header" .}} | |
| 6 | + | ||
| 7 | + | <dl> | |
| 8 | + | <dt>commit</dt> | |
| 9 | + | <dd><a href="{{.Data.CommitURL}}">{{.Data.Commit.ID}}</a></dd> | |
| 10 | + | ||
| 11 | + | <dt>parent</dt> | |
| 12 | + | <dd><a href="{{.Data.ParentURL}}">parent {{.Data.Parent}}</a></dd> | |
| 13 | + | ||
| 14 | + | <dt>author</dt> | |
| 15 | + | <dd>{{.Data.Commit.Author.Name}}</dd> | |
| 16 | + | ||
| 17 | + | <dt>date</dt> | |
| 18 | + | <dd>{{.Data.Commit.Author.When}}</dd> | |
| 19 | + | </dl> | |
| 20 | + | ||
| 21 | + | <p> | |
| 22 | + | {{.Data.Commit.Message}} | |
| 23 | + | </p> | |
| 24 | + | ||
| 25 | + | <p> | |
| 26 | + | <strong>{{.Data.Diff.NumFiles}}</strong> files changed, | |
| 27 | + | <span class="color-green">+{{.Data.Diff.TotalAdditions}}</span>, | |
| 28 | + | <span class="color-red">-{{.Data.Diff.TotalDeletions}}</span> | |
| 29 | + | </p> | |
| 30 | + | ||
| 31 | + | {{range .Data.Diff.Files}} | |
| 32 | + | ||
| 33 | + | <p> | |
| 34 | + | {{.OldMode}} {{.OldName}} => {{.Mode}} {{.Name}} | |
| 35 | + | </p> | |
| 36 | + | ||
| 37 | + | <div> | |
| 38 | + | <span class="color-green">+{{.NumAdditions}}</span>, | |
| 39 | + | <span class="color-red">-{{.NumDeletions}}</span> | |
| 40 | + | </div> | |
| 41 | + | ||
| 42 | + | <pre> | |
| 43 | + | {{range .Sections}} | |
| 44 | + | {{range .Lines}} | |
| 45 | + | {{.Content}} | |
| 46 | + | {{end}} | |
| 47 | + | {{end}} | |
| 48 | + | </pre> | |
| 49 | + | {{end}} | |
| 50 | + | {{end}} |
+7,
-7
| ... | ... | @@ -1,10 +1,10 @@ | |
| 1 | - | {{- template "base" . -}} | |
| 1 | + | {{template "base" .}} | |
| 2 | 2 | {{define "title"}}file{{end}} | |
| 3 | 3 | ||
| 4 | - | {{- define "content"}} | |
| 5 | - | <h1>{{.Name}}</h1> | |
| 4 | + | {{define "content"}} | |
| 5 | + | {{template "header" .}} | |
| 6 | 6 | ||
| 7 | - | <pre> | |
| 8 | - | {{.Data.Contents}} | |
| 9 | - | </pre> | |
| 10 | - | {{- end }} | |
| 7 | + | <h1>{{.Name}}</h1> | |
| 8 | + | ||
| 9 | + | <pre>{{.Data.Contents}}</pre> | |
| 10 | + | {{end }} |
+6,
-3
| ... | ... | @@ -1,5 +1,8 @@ | |
| 1 | - | {{- define "header" -}} | |
| 2 | - | <h1>{{.RepoName}}</h1> | |
| 1 | + | {{define "header"}} | |
| 2 | + | <h1> | |
| 3 | + | <a href="/">repos</a> | |
| 4 | + | <span> / {{.RepoName}}</span> | |
| 5 | + | </h1> | |
| 3 | 6 | ||
| 4 | 7 | <div> | |
| 5 | 8 | <a href="{{.Repo.SummaryURL}}">summary</a> | |
| ... | ... | @@ -11,4 +14,4 @@ | |
| 11 | 14 | <p>git clone {{.Repo.CloneURL}}</p> | |
| 12 | 15 | ||
| 13 | 16 | <hr /> | |
| 14 | - | {{end -}} | |
| 17 | + | {{end}} |
+9,
-7
| ... | ... | @@ -1,10 +1,12 @@ | |
| 1 | - | {{- template "base" . -}} | |
| 1 | + | {{template "base" .}} | |
| 2 | 2 | ||
| 3 | 3 | {{define "title"}}index{{end}} | |
| 4 | 4 | ||
| 5 | - | {{- define "content" -}} | |
| 6 | - | <h1>repos</h1> | |
| 7 | - | {{- range .RepoList}} | |
| 8 | - | <a href="{{.URL}}">{{.Name}}</a> | |
| 9 | - | {{- end}} | |
| 10 | - | {{- end -}} | |
| 5 | + | {{define "content"}} | |
| 6 | + | <h1>repos</h1> | |
| 7 | + | {{range .RepoList}} | |
| 8 | + | <div> | |
| 9 | + | <a href="{{.URL}}">{{.Name}}</a> | |
| 10 | + | </div> | |
| 11 | + | {{end}} | |
| 12 | + | {{end}} |
+10,
-8
| ... | ... | @@ -1,11 +1,13 @@ | |
| 1 | - | {{- template "base" . -}} | |
| 1 | + | {{template "base" .}} | |
| 2 | 2 | ||
| 3 | 3 | {{define "title"}}log{{end}} | |
| 4 | 4 | ||
| 5 | - | {{- define "content" -}} | |
| 6 | - | {{- range .Data.Log}} | |
| 7 | - | <p> | |
| 8 | - | {{.Author.When}} <a href="{{.URL}}">{{.Summary}}</a> {{.Author.Name}} | |
| 9 | - | </p> | |
| 10 | - | {{- end}} | |
| 11 | - | {{- end -}} | |
| 5 | + | {{define "content"}} | |
| 6 | + | {{template "header" .}} | |
| 7 | + | ||
| 8 | + | {{range .Data.Log}} | |
| 9 | + | <p> | |
| 10 | + | {{.Author.When}} <a href="{{.URL}}">{{.Summary}}</a> {{.Author.Name}} | |
| 11 | + | </p> | |
| 12 | + | {{end}} | |
| 13 | + | {{end}} |
+14,
-12
| ... | ... | @@ -1,15 +1,17 @@ | |
| 1 | - | {{- template "base" . -}} | |
| 1 | + | {{template "base" .}} | |
| 2 | 2 | ||
| 3 | 3 | {{define "title"}}refs{{end}} | |
| 4 | 4 | ||
| 5 | - | {{- define "content"}} | |
| 6 | - | <h2>branches</h2> | |
| 7 | - | {{- range .Data.Branches}} | |
| 8 | - | <p>{{.Refspec}}</p> | |
| 9 | - | {{- end}} | |
| 10 | - | ||
| 11 | - | <h2>tags</h2> | |
| 12 | - | {{- range .Data.Tags}} | |
| 13 | - | <p>{{.Refspec}}</p> | |
| 14 | - | {{- end}} | |
| 15 | - | {{- end -}} | |
| 5 | + | {{define "content"}} | |
| 6 | + | {{template "header" .}} | |
| 7 | + | ||
| 8 | + | <h2>branches</h2> | |
| 9 | + | {{range .Data.Branches}} | |
| 10 | + | <p>{{.Refspec}}</p> | |
| 11 | + | {{end}} | |
| 12 | + | ||
| 13 | + | <h2>tags</h2> | |
| 14 | + | {{range .Data.Tags}} | |
| 15 | + | <p>{{.Refspec}}</p> | |
| 16 | + | {{end}} | |
| 17 | + | {{end}} |
+5,
-4
| ... | ... | @@ -1,7 +1,8 @@ | |
| 1 | - | {{- template "base" . -}} | |
| 1 | + | {{template "base" .}} | |
| 2 | 2 | ||
| 3 | 3 | {{define "title"}}summary{{end}} | |
| 4 | 4 | ||
| 5 | - | {{- define "content" -}} | |
| 6 | - | <p>{{.Data.Readme}}</p> | |
| 7 | - | {{- end -}} | |
| 5 | + | {{define "content"}} | |
| 6 | + | {{template "header" .}} | |
| 7 | + | <p>{{.Data.Readme}}</p> | |
| 8 | + | {{end}} |
+11,
-6
| ... | ... | @@ -1,9 +1,14 @@ | |
| 1 | - | {{- template "base" . -}} | |
| 1 | + | {{template "base" .}} | |
| 2 | 2 | ||
| 3 | - | {{define "title"}}summary{{end}} | |
| 3 | + | {{define "title"}}tree{{end}} | |
| 4 | 4 | ||
| 5 | 5 | {{define "content"}} | |
| 6 | - | {{- range .Data.Tree}} | |
| 7 | - | <p>{{.URL}} {{.Path}} {{.NumLines}}</p> | |
| 8 | - | {{- end}} | |
| 9 | - | {{- end -}} | |
| 6 | + | {{template "header" .}} | |
| 7 | + | ||
| 8 | + | {{range .Data.Tree}} | |
| 9 | + | <div> | |
| 10 | + | <a href="{{.URL}}">{{.Path}}</a> | |
| 11 | + | <span> (lines: {{.NumLines}})</span> | |
| 12 | + | </div> | |
| 13 | + | {{end}} | |
| 14 | + | {{end}} |
M
main.go
+22,
-10
| ... | ... | @@ -63,16 +63,13 @@ type CommitPageData struct { | |
| 63 | 63 | CommitURL string | |
| 64 | 64 | } | |
| 65 | 65 | ||
| 66 | - | type WriteFile struct { | |
| 67 | - | Repo *RepoData | |
| 68 | - | } | |
| 69 | - | ||
| 70 | 66 | type WriteData struct { | |
| 71 | 67 | Name string | |
| 72 | 68 | Template string | |
| 73 | 69 | Data interface{} | |
| 74 | 70 | RepoName string | |
| 75 | 71 | Subdir string | |
| 72 | + | Repo *RepoData | |
| 76 | 73 | } | |
| 77 | 74 | ||
| 78 | 75 | func bail(err error) { |
| ... | ... | @@ -136,13 +133,13 @@ func writeHtml(data *WriteData) { | |
| 136 | 133 | bail(err) | |
| 137 | 134 | ||
| 138 | 135 | outdir := viper.GetString("outdir") | |
| 139 | - | dir := path.Join(outdir, "html", data.RepoName, data.Subdir) | |
| 136 | + | dir := path.Join(outdir, data.RepoName, data.Subdir) | |
| 140 | 137 | fmt.Println(dir) | |
| 141 | 138 | fmt.Println(data.Name) | |
| 142 | 139 | err = os.MkdirAll(dir, os.ModePerm) | |
| 143 | 140 | bail(err) | |
| 144 | 141 | ||
| 145 | - | w, err := os.OpenFile(path.Join(dir, data.Name), os.O_WRONLY|os.O_CREATE, 0600) | |
| 142 | + | w, err := os.OpenFile(path.Join(dir, data.Name), os.O_WRONLY|os.O_CREATE, 0755) | |
| 146 | 143 | bail(err) | |
| 147 | 144 | ||
| 148 | 145 | err = ts.Execute(w, data) |
| ... | ... | @@ -166,7 +163,7 @@ func writeIndex(data *IndexPage) { | |
| 166 | 163 | err = os.MkdirAll(dir, os.ModePerm) | |
| 167 | 164 | bail(err) | |
| 168 | 165 | ||
| 169 | - | w, err := os.OpenFile(path.Join(dir, "index.html"), os.O_WRONLY|os.O_CREATE, 0600) | |
| 166 | + | w, err := os.OpenFile(path.Join(dir, "index.html"), os.O_WRONLY|os.O_CREATE, 0755) | |
| 170 | 167 | bail(err) | |
| 171 | 168 | ||
| 172 | 169 | err = ts.Execute(w, data) |
| ... | ... | @@ -178,6 +175,7 @@ func writeSummary(data *PageData) { | |
| 178 | 175 | Template: "./html/summary.page.tmpl", | |
| 179 | 176 | Data: data, | |
| 180 | 177 | RepoName: data.Repo.Name, | |
| 178 | + | Repo: data.Repo, | |
| 181 | 179 | }) | |
| 182 | 180 | } | |
| 183 | 181 | func writeTree(data *PageData) { |
| ... | ... | @@ -186,6 +184,7 @@ func writeTree(data *PageData) { | |
| 186 | 184 | Template: "./html/tree.page.tmpl", | |
| 187 | 185 | Data: data, | |
| 188 | 186 | RepoName: data.Repo.Name, | |
| 187 | + | Repo: data.Repo, | |
| 189 | 188 | }) | |
| 190 | 189 | } | |
| 191 | 190 | func writeLog(data *PageData) { |
| ... | ... | @@ -194,6 +193,7 @@ func writeLog(data *PageData) { | |
| 194 | 193 | Template: "./html/log.page.tmpl", | |
| 195 | 194 | Data: data, | |
| 196 | 195 | RepoName: data.Repo.Name, | |
| 196 | + | Repo: data.Repo, | |
| 197 | 197 | }) | |
| 198 | 198 | } | |
| 199 | 199 | func writeRefs(data *PageData) { |
| ... | ... | @@ -202,6 +202,7 @@ func writeRefs(data *PageData) { | |
| 202 | 202 | Template: "./html/refs.page.tmpl", | |
| 203 | 203 | Data: data, | |
| 204 | 204 | RepoName: data.Repo.Name, | |
| 205 | + | Repo: data.Repo, | |
| 205 | 206 | }) | |
| 206 | 207 | } | |
| 207 | 208 |
| ... | ... | @@ -222,6 +223,7 @@ func writeHTMLTreeFiles(data *PageData) { | |
| 222 | 223 | Data: &FileData{Contents: string(b)}, | |
| 223 | 224 | RepoName: data.Repo.Name, | |
| 224 | 225 | Subdir: path.Join("tree", data.RevName, d), | |
| 226 | + | Repo: data.Repo, | |
| 225 | 227 | }) | |
| 226 | 228 | } | |
| 227 | 229 | } |
| ... | ... | @@ -277,6 +279,7 @@ func writeLogDiffs(project string, repo *git.Repository, data *PageData, cache m | |
| 277 | 279 | Data: commitData, | |
| 278 | 280 | RepoName: data.Repo.Name, | |
| 279 | 281 | Subdir: "commits", | |
| 282 | + | Repo: data.Repo, | |
| 280 | 283 | }) | |
| 281 | 284 | lastCommit = commit | |
| 282 | 285 | } |
| ... | ... | @@ -302,7 +305,9 @@ func writeRepo(root string) { | |
| 302 | 305 | tags, _ := repo.ShowRef(git.ShowRefOptions{Heads: false, Tags: true}) | |
| 303 | 306 | ||
| 304 | 307 | cache := make(map[string]bool) | |
| 305 | - | for _, rev := range heads { | |
| 308 | + | rev := findDefaultBranch(heads) | |
| 309 | + | if rev != nil { | |
| 310 | + | // for _, rev := range heads { | |
| 306 | 311 | _, revName := path.Split(rev.Refspec) | |
| 307 | 312 | data := &PageData{ | |
| 308 | 313 | Branches: heads, |
| ... | ... | @@ -334,7 +339,14 @@ func writeBranch(repo *git.Repository, pageData *PageData, cache map[string]bool | |
| 334 | 339 | entries := []*TreeItem{} | |
| 335 | 340 | treeEntries := walkTree(tree, pageData.RevName, "", entries) | |
| 336 | 341 | for _, entry := range treeEntries { | |
| 337 | - | entry.URL = path.Join("/", pageData.Repo.Name, "tree", pageData.RevName, entry.Path) | |
| 342 | + | entry.Path = strings.TrimPrefix(entry.Path, "/") | |
| 343 | + | entry.URL = path.Join( | |
| 344 | + | "/", | |
| 345 | + | pageData.Repo.Name, | |
| 346 | + | "tree", | |
| 347 | + | pageData.RevName, | |
| 348 | + | fmt.Sprintf("%s.html", entry.Path), | |
| 349 | + | ) | |
| 338 | 350 | } | |
| 339 | 351 | ||
| 340 | 352 | pageData.Log = logs |