diff --git a/cmd/root.go b/cmd/root.go index 3a75a71c318a48f34c8a143fd86c6ddb92e51af1..bf72649c51f60d2af23b144cf2463af94e76d12f 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -2,6 +2,7 @@ package cmd import ( "fmt" + "image/png" "log" "net/http" "os" @@ -27,6 +28,11 @@ var filePath string var appInfo *ipapk.AppInfo var manifestTemplate *template.Template +func iconHandler(w http.ResponseWriter, req *http.Request) { + w.Header().Set("Content-Type", "image/png") + png.Encode(w, appInfo.Icon) +} + func qrcodeHandler(w http.ResponseWriter, req *http.Request) { w.Header().Set("Content-Type", "image/png") url := fmt.Sprintf("itms-services://?action=download-manifest&url=%s://%s/manifest.plist", scheme, req.Host) @@ -55,6 +61,7 @@ var rootCmd = &cobra.Command{ var err error appInfo, err = ipapk.NewAppParser(file) filePath = fmt.Sprintf("/%s", path.Base(file)) + http.HandleFunc("/icon.png", iconHandler) http.HandleFunc("/qrcode.png", qrcodeHandler) http.HandleFunc("/manifest.plist", manifestHandler) http.HandleFunc(filePath, fileDownloadHandler)