aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntoni Sawicki <tenox@google.com>2022-11-29 02:22:33 -0800
committerAntoni Sawicki <tenox@google.com>2022-11-29 02:22:33 -0800
commit79096a61b40513640ea8049e4a26ab418d3f15d2 (patch)
tree61a933f2226e84a7413e99f3bce6cb45d22e2551
parent5b0d716d023edfef5bd75cf0f9b36507d6d3a81b (diff)
downloadwfm-79096a61b40513640ea8049e4a26ab418d3f15d2.tar.gz
user archiverFS for zip files
-rw-r--r--fileio.go4
-rw-r--r--formats.go25
2 files changed, 1 insertions, 28 deletions
diff --git a/fileio.go b/fileio.go
index ab7ac72..76d6e1e 100644
--- a/fileio.go
+++ b/fileio.go
@@ -39,11 +39,9 @@ func (r *wfmRequest) dispFile() {
// expensive file handlers
switch ext {
- case ".zip":
- listZip(r.w, fp, r.fs)
case ".7z":
list7z(r.w, fp, r.fs)
- case ".tar", ".rar", ".gz", ".bz2", ".xz", ".tgz", ".tbz2", ".txz":
+ case ".zip", ".rar", ".tar", ".gz", ".bz2", ".xz", ".tgz", ".tbz2", ".txz", ".br", ".tbr":
listArchive(r.w, fp, r.fs)
case ".iso":
listIso(r.w, fp, r.fs)
diff --git a/formats.go b/formats.go
index c414674..de3d5e3 100644
--- a/formats.go
+++ b/formats.go
@@ -1,7 +1,6 @@
package main
import (
- "archive/zip"
"fmt"
"io"
"io/fs"
@@ -65,30 +64,6 @@ func gourl(w http.ResponseWriter, fp string, wfs afero.Fs) {
redirect(w, url)
}
-func listZip(w http.ResponseWriter, fp string, wfs afero.Fs) {
- f, err := wfs.Open(fp)
- if err != nil {
- htErr(w, "unzip: open: ", err)
- return
- }
- s, err := f.Stat()
- if err != nil {
- htErr(w, "unzip: stat: ", err)
- return
- }
- defer f.Close()
- z, err := zip.NewReader(f, s.Size())
- if err != nil {
- htErr(w, "unzip: reader: ", err)
- return
- }
- w.Header().Set("Content-Type", "text/plain")
- w.Header().Set("Cache-Control", *cacheCtl)
- for _, f := range z.File {
- fmt.Fprintf(w, "%v %v\n", f.Name, humanize.Bytes(f.UncompressedSize64))
- }
-}
-
func listIso(w http.ResponseWriter, fp string, wfs afero.Fs) {
// TODO: recursive file list
f, err := wfs.Open(fp)