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

Configure Feed

Select the types of activity you want to include in your feed.

Add `--debug-manifest` option, to retrieve site manifest as ProtoJSON.

+57 -7
+28
README.md
··· 65 65 ``` 66 66 67 67 68 + Advanced usage 69 + -------------- 70 + 71 + To retrieve the site manifest (for debugging only: manifest schema is **not versioned** and **subject to change**): 72 + 73 + ```console 74 + $ git-pages-cli https://example.org --password xyz --debug-manifest 75 + { 76 + "contents": { 77 + "": { 78 + "type": "Directory" 79 + }, 80 + "index.html": { 81 + "type": "InlineFile", 82 + "size": "5", 83 + "data": "bWVvdwo=", 84 + "contentType": "text/html; charset=utf-8" 85 + } 86 + }, 87 + "totalSize": "5", 88 + "storedSize": "0", 89 + "redirects": [], 90 + "headers": [], 91 + "problems": [] 92 + } 93 + ``` 94 + 95 + 68 96 License 69 97 ------- 70 98
+29 -7
main.go
··· 21 21 var uploadGitFlag = pflag.String("upload-git", "", "replace site with contents of specified git repository") 22 22 var uploadDirFlag = pflag.String("upload-dir", "", "replace site with contents of specified directory") 23 23 var deleteFlag = pflag.Bool("delete", false, "delete site") 24 + var debugManifestFlag = pflag.Bool("debug-manifest", false, "retrieve site manifest as ProtoJSON, for debugging") 24 25 var serverFlag = pflag.String("server", "", "hostname of server to connect to") 25 26 var verboseFlag = pflag.Bool("verbose", false, "display more information for debugging") 26 27 ··· 39 40 operations++ 40 41 } 41 42 if *deleteFlag { 43 + operations++ 44 + } 45 + if *debugManifestFlag { 42 46 operations++ 43 47 } 44 48 return operations == 1 ··· 166 170 os.Exit(1) 167 171 } 168 172 173 + case *debugManifestFlag: 174 + manifestURL := siteURL.ResolveReference(&url.URL{Path: ".git-pages/manifest.json"}) 175 + request, err = http.NewRequest("GET", manifestURL.String(), bytes.NewReader([]byte{})) 176 + if err != nil { 177 + fmt.Fprintf(os.Stderr, "error: %s\n", err) 178 + os.Exit(1) 179 + } 180 + 169 181 default: 170 182 panic("no operation chosen") 171 183 } ··· 191 203 if *verboseFlag { 192 204 fmt.Fprintf(os.Stderr, "server: %s\n", response.Header.Get("Server")) 193 205 } 194 - if response.StatusCode == 200 { 195 - fmt.Fprintf(os.Stdout, "result: %s\n", response.Header.Get("Update-Result")) 196 - os.Exit(0) 197 - } else { 198 - fmt.Fprintf(os.Stderr, "result: error\n") 199 - io.Copy(os.Stderr, response.Body) 200 - os.Exit(1) 206 + if *debugManifestFlag { 207 + if response.StatusCode == 200 { 208 + io.Copy(os.Stdout, response.Body) 209 + fmt.Fprintf(os.Stdout, "\n") 210 + } else { 211 + io.Copy(os.Stderr, response.Body) 212 + os.Exit(1) 213 + } 214 + } else { // an update operation 215 + if response.StatusCode == 200 { 216 + fmt.Fprintf(os.Stdout, "result: %s\n", response.Header.Get("Update-Result")) 217 + io.Copy(os.Stdout, response.Body) 218 + } else { 219 + fmt.Fprintf(os.Stderr, "result: error\n") 220 + io.Copy(os.Stderr, response.Body) 221 + os.Exit(1) 222 + } 201 223 } 202 224 }