Mercurial > gemma
comparison pkg/controllers/stretches.go @ 5206:23addd19a6e2 new-fwa
Simplified header generation for CSV output.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 11 May 2020 11:41:57 +0200 |
parents | 7ca9e6c9a203 |
children | c4e295b2d6a3 |
comparison
equal
deleted
inserted
replaced
5205:c7907715309f | 5206:23addd19a6e2 |
---|---|
385 rw.Header().Add("Content-Type", "text/csv") | 385 rw.Header().Add("Content-Type", "text/csv") |
386 | 386 |
387 out := csv.NewWriter(rw) | 387 out := csv.NewWriter(rw) |
388 | 388 |
389 // label, lnwl, classes | 389 // label, lnwl, classes |
390 record := make([]string, 1+2+len(breaks)+1) | 390 record := makeHeaderStretches(useDepth && useWidth, breaks, 'd') |
391 record[0] = "# time" | |
392 record[1] = "# < LDC [d]" | |
393 record[2] = "# >= LDC [d]" | |
394 for i, v := range breaks { | |
395 if useDepth && useWidth { | |
396 if i == 0 { | |
397 record[3] = "# < break_1 [d]" | |
398 } | |
399 record[i+4] = fmt.Sprintf("# >= break_%d", i+1) | |
400 } else { | |
401 if i == 0 { | |
402 record[3] = fmt.Sprintf("# < %.1f [d]", v) | |
403 } | |
404 record[i+4] = fmt.Sprintf("# >= %.1f [d]", v) | |
405 } | |
406 } | |
407 | 391 |
408 if err := out.Write(record); err != nil { | 392 if err := out.Write(record); err != nil { |
409 // Too late for HTTP status message. | 393 // Too late for HTTP status message. |
410 log.Printf("error: %v\n", err) | 394 log.Printf("error: %v\n", err) |
411 return | 395 return |
652 rw.Header().Add("Content-Type", "text/csv") | 636 rw.Header().Add("Content-Type", "text/csv") |
653 | 637 |
654 out := csv.NewWriter(rw) | 638 out := csv.NewWriter(rw) |
655 | 639 |
656 // label, lnwl, classes | 640 // label, lnwl, classes |
657 record := make([]string, 1+2+len(breaks)+1) | 641 record := makeHeaderStretches(useDepth && useWidth, breaks, '%') |
658 record[0] = "# time" | |
659 record[1] = "# < LDC [%%]" | |
660 record[2] = "# >= LDC [%%]" | |
661 for i, v := range breaks { | |
662 if useDepth && useWidth { | |
663 if i == 0 { | |
664 record[3] = "# < break_1 [%%]" | |
665 } | |
666 record[i+4] = fmt.Sprintf("# >= break_%d [%%]", i+1) | |
667 } else { | |
668 if i == 0 { | |
669 record[3] = fmt.Sprintf("# < %.3f [%%]", v) | |
670 } | |
671 record[i+4] = fmt.Sprintf("# >= %.3f [%%]", v) | |
672 } | |
673 } | |
674 | 642 |
675 if err := out.Write(record); err != nil { | 643 if err := out.Write(record); err != nil { |
676 // Too late for HTTP status message. | 644 // Too late for HTTP status message. |
677 log.Printf("error: %v\n", err) | 645 log.Printf("error: %v\n", err) |
678 return | 646 return |
705 if err := out.Error(); err != nil { | 673 if err := out.Error(); err != nil { |
706 // Too late for HTTP status message. | 674 // Too late for HTTP status message. |
707 log.Printf("error: %v\n", err) | 675 log.Printf("error: %v\n", err) |
708 } | 676 } |
709 } | 677 } |
678 | |
679 func makeHeaderStretches(flag bool, breaks []float64, unit rune) []string { | |
680 record := make([]string, 1+2+len(breaks)+1) | |
681 record[0] = "# time" | |
682 record[1] = fmt.Sprintf("# < LDC [%c]", unit) | |
683 record[2] = fmt.Sprintf("# >= LDC [%c]", unit) | |
684 for i, v := range breaks { | |
685 if flag { | |
686 if i == 0 { | |
687 record[3] = fmt.Sprintf("# < break_1 [%c]", unit) | |
688 } | |
689 record[i+4] = fmt.Sprintf("# >= break_%d [%c]", i+1, unit) | |
690 } else { | |
691 if i == 0 { | |
692 record[3] = fmt.Sprintf("# < %.3f [%c]", v, unit) | |
693 } | |
694 record[i+4] = fmt.Sprintf("# >= %.3f [%c]", v, unit) | |
695 } | |
696 } | |
697 return record | |
698 } |