[mirror] Command-line application for uploading a site to a git-pages server

Display filesystem tree for `--upload-dir` if `--verbose`.

+29 -2
+29 -2
main.go
··· 39 39 return operations == 1 40 40 } 41 41 42 - func archiveFS(fs fs.FS) (result []byte, err error) { 42 + func displayFS(root fs.FS) error { 43 + return fs.WalkDir(root, ".", func(name string, entry fs.DirEntry, err error) error { 44 + if err != nil { 45 + return err 46 + } 47 + switch { 48 + case entry.Type() == 0: 49 + fmt.Fprintln(os.Stderr, "file", name) 50 + case entry.Type() == fs.ModeDir: 51 + fmt.Fprintln(os.Stderr, "dir", name) 52 + case entry.Type() == fs.ModeSymlink: 53 + fmt.Fprintln(os.Stderr, "symlink", name) 54 + default: 55 + fmt.Fprintln(os.Stderr, "other", name) 56 + } 57 + return nil 58 + }) 59 + } 60 + 61 + func archiveFS(root fs.FS) (result []byte, err error) { 43 62 buffer := bytes.Buffer{} 44 63 zstdWriter, _ := zstd.NewWriter(&buffer) 45 64 tarWriter := tar.NewWriter(zstdWriter) 46 - err = tarWriter.AddFS(fs) 65 + err = tarWriter.AddFS(root) 47 66 if err != nil { 48 67 return 49 68 } ··· 108 127 if err != nil { 109 128 fmt.Fprintf(os.Stderr, "error: invalid directory: %s\n", err) 110 129 os.Exit(1) 130 + } 131 + 132 + if *verboseFlag { 133 + err := displayFS(uploadDirFS.FS()) 134 + if err != nil { 135 + fmt.Fprintf(os.Stderr, "error: %s\n", err) 136 + os.Exit(1) 137 + } 111 138 } 112 139 113 140 requestBody, err := archiveFS(uploadDirFS.FS())