Implement logging, console window
This commit is contained in:
@@ -50,19 +50,23 @@ func handleRoot(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
}{jobsInfo})
|
||||
if err != nil {
|
||||
logger.LogError("Handle Root", fmt.Sprintf("Error executing template: %v", err))
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
}
|
||||
}
|
||||
|
||||
func handleUpload(w http.ResponseWriter, r *http.Request) {
|
||||
logger.LogInfo("Handle Upload", "Starting file upload")
|
||||
err := r.ParseMultipartForm(32 << 20)
|
||||
if err != nil {
|
||||
logger.LogError("Handle Upload", fmt.Sprintf("Error parsing multipart form: %v", err))
|
||||
http.Error(w, err.Error(), http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
files := r.MultipartForm.File["files"]
|
||||
if len(files) == 0 {
|
||||
logger.LogError("Handle Upload", "No files uploaded")
|
||||
http.Error(w, "No files uploaded", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@@ -72,6 +76,7 @@ func handleUpload(w http.ResponseWriter, r *http.Request) {
|
||||
for _, fileHeader := range files {
|
||||
file, err := fileHeader.Open()
|
||||
if err != nil {
|
||||
logger.LogError("Handle Upload", fmt.Sprintf("Error opening file: %v", err))
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@@ -79,6 +84,7 @@ func handleUpload(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
tempFile, err := os.CreateTemp(uploadDir, fileHeader.Filename)
|
||||
if err != nil {
|
||||
logger.LogError("Handle Upload", fmt.Sprintf("Error creating temporary file: %v", err))
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@@ -86,6 +92,7 @@ func handleUpload(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
_, err = io.Copy(tempFile, file)
|
||||
if err != nil {
|
||||
logger.LogError("Handle Upload", fmt.Sprintf("Error copying file: %v", err))
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@@ -94,6 +101,7 @@ func handleUpload(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
_, err = parseInputFile(tempFile.Name())
|
||||
if err != nil {
|
||||
logger.LogError("Handle Upload", fmt.Sprintf("Error parsing input file: %v", err))
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@@ -107,10 +115,12 @@ func handleUpload(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
if len(validFiles) == 0 {
|
||||
logger.LogError("Handle Upload", "No valid files were uploaded")
|
||||
http.Error(w, "No valid files were uploaded", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
logger.LogInfo("Handle Upload", fmt.Sprintf("Redirecting to select with files: %v", validFiles))
|
||||
http.Redirect(w, r, "/select?files="+url.QueryEscape(strings.Join(validFiles, ",")), http.StatusSeeOther)
|
||||
}
|
||||
|
||||
@@ -127,11 +137,13 @@ func handleSelect(w http.ResponseWriter, r *http.Request) {
|
||||
fullPath := filepath.Join(uploadDir, filename)
|
||||
|
||||
if _, err := os.Stat(fullPath); os.IsNotExist(err) {
|
||||
logger.LogError("Handle Select", fmt.Sprintf("File does not exist: %s", fullPath))
|
||||
continue
|
||||
}
|
||||
|
||||
items, err := parseInputFile(fullPath)
|
||||
if err != nil {
|
||||
logger.LogError("Handle Select", fmt.Sprintf("Error parsing input file: %v", err))
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -142,6 +154,7 @@ func handleSelect(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
if len(allItems) == 0 {
|
||||
logger.LogError("Handle Select", "No valid files were processed")
|
||||
http.Error(w, "No valid files were processed", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@@ -154,18 +167,22 @@ func handleSelect(w http.ResponseWriter, r *http.Request) {
|
||||
AllItems: allItems,
|
||||
})
|
||||
if err != nil {
|
||||
logger.LogError("Handle Select", fmt.Sprintf("Error executing template: %v", err))
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
}
|
||||
}
|
||||
|
||||
func handleProcess(w http.ResponseWriter, r *http.Request) {
|
||||
logger.LogInfo("Handle Process", "Starting process")
|
||||
if err := r.ParseForm(); err != nil {
|
||||
logger.LogError("Handle Process", fmt.Sprintf("Error parsing form: %v", err))
|
||||
http.Error(w, err.Error(), http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
selectedItems := r.Form["items"]
|
||||
if len(selectedItems) == 0 {
|
||||
logger.LogError("Handle Process", "No items selected")
|
||||
http.Error(w, "No items selected", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@@ -174,6 +191,7 @@ func handleProcess(w http.ResponseWriter, r *http.Request) {
|
||||
for _, item := range selectedItems {
|
||||
parts := strings.SplitN(item, ":", 2)
|
||||
if len(parts) != 2 {
|
||||
logger.LogError("Handle Process", "Invalid item format")
|
||||
continue
|
||||
}
|
||||
filename, itemName := parts[0], parts[1]
|
||||
@@ -181,9 +199,11 @@ func handleProcess(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
for filename, items := range itemsByFile {
|
||||
logger.LogInfo("Handle Process", fmt.Sprintf("Processing file: %s", filename))
|
||||
fullPath := filepath.Join(uploadDir, filename)
|
||||
allItems, err := parseInputFile(fullPath)
|
||||
if err != nil {
|
||||
logger.LogError("Handle Process", fmt.Sprintf("Error parsing input file: %v", err))
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@@ -226,6 +246,7 @@ func handleProgress(w http.ResponseWriter, r *http.Request) {
|
||||
func handlePause(w http.ResponseWriter, r *http.Request) {
|
||||
filename := r.URL.Query().Get("filename")
|
||||
if filename == "" {
|
||||
logger.LogError("Pause Handler", "Filename is required")
|
||||
http.Error(w, "Filename is required", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@@ -235,12 +256,14 @@ func handlePause(w http.ResponseWriter, r *http.Request) {
|
||||
jobsMutex.Unlock()
|
||||
|
||||
if !exists {
|
||||
logger.LogError("Pause Handler", "Job not found")
|
||||
http.Error(w, "Job not found", http.StatusNotFound)
|
||||
return
|
||||
}
|
||||
|
||||
jobInfo.Paused = true
|
||||
if jobInfo.Cmd != nil && jobInfo.Cmd.Process != nil {
|
||||
logger.LogJobState(filename, "pausing")
|
||||
jobInfo.Cmd.Process.Kill()
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user