github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/imageserver/httpd/listDirectories.go (about) 1 package httpd 2 3 import ( 4 "bufio" 5 "fmt" 6 "net/http" 7 8 "github.com/Cloud-Foundations/Dominator/lib/html" 9 "github.com/Cloud-Foundations/Dominator/lib/image" 10 ) 11 12 func (s state) listDirectoriesHandler(w http.ResponseWriter, 13 req *http.Request) { 14 writer := bufio.NewWriter(w) 15 defer writer.Flush() 16 directories := s.imageDataBase.ListDirectories() 17 image.SortDirectories(directories) 18 if req.URL.RawQuery == "output=text" { 19 for _, directory := range directories { 20 fmt.Fprintln(writer, directory.Name) 21 } 22 return 23 } 24 fmt.Fprintln(writer, "<title>imageserver directories</title>") 25 fmt.Fprintln(writer, `<style> 26 table, th, td { 27 border-collapse: collapse; 28 } 29 </style>`) 30 fmt.Fprintln(writer, "<body>") 31 fmt.Fprintln(writer, "<h3>") 32 fmt.Fprintln(writer, `<table border="1" style="width:100%">`) 33 tw, _ := html.NewTableWriter(writer, true, "Name", "Owner Group") 34 for _, directory := range directories { 35 tw.WriteRow("", "", directory.Name, directory.Metadata.OwnerGroup) 36 } 37 fmt.Fprintln(writer, "</table>") 38 fmt.Fprintln(writer, "</body>") 39 }