-
Notifications
You must be signed in to change notification settings - Fork 6
/
load.go
96 lines (83 loc) · 2.13 KB
/
load.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package ups
import (
"encoding/xml"
"fmt"
"path/filepath"
"simonwaldherr.de/go/golibs/as"
"simonwaldherr.de/go/golibs/csv"
"simonwaldherr.de/go/golibs/file"
"strings"
)
func CreateDeviceMap() *Devices {
dev := make(map[string]*Device)
return &Devices{
Devs: dev,
}
}
func (devices *Devices) Set(Mandant, Name, IP, Port, Info string, DPI int, PeelOff bool) {
devices.Devs[Name] = &Device{
Mandt: Mandant,
Name: Name,
IP: IP,
Port: Port,
Info: Info,
DPI: DPI,
Peel: PeelOff,
}
}
func ParseLabels(labeldir string) ([]string, map[string]string) {
var labelsLocal []string
var ltemplateLocal = make(map[string]string)
labelsLocal, _ = file.ReadDir(filepath.Join(homedir, labeldir))
fmt.Println("###### Labels ######")
for _, name := range labelsLocal {
if strings.Contains(name, ".200zpl") || strings.Contains(name, ".300zpl") || strings.Contains(name, ".zpl") {
fmt.Printf("* %v\n", name)
str, _ := file.Read(filepath.Join(homedir, labeldir, name))
name = normalizeLabelName(name)
ltemplateLocal[name] = str
}
}
fmt.Println()
return labelsLocal, ltemplateLocal
}
func LoadPrinter(filename string) *Devices {
dev := CreateDeviceMap()
csvdata, k := csv.LoadCSVfromFile(filename)
fmt.Println("###### Printer ######")
for _, data := range csvdata {
mndt := as.String(data[k["mndt"]])
name := as.String(data[k["name"]])
ip := as.String(data[k["ip"]])
port := as.String(data[k["port"]])
info := as.String(data[k["info"]])
dpi := int(as.Int(data[k["dpi"]]))
peel := as.Bool(data[k["peel"]])
fmt.Printf("* %v\n", name)
dev.Set(mndt, name, ip, port, info, dpi, peel)
}
fmt.Println()
return dev
}
func (c *classAccessesMap) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
c.Map = map[string]string{}
val := ""
for {
t, _ := d.Token()
switch tt := t.(type) {
case xml.StartElement:
case xml.EndElement:
if tt.Name == start.Name {
return nil
}
c.Map[tt.Name.Local] = val
default:
val = strings.TrimSpace(fmt.Sprintf("%s", tt))
}
}
}
func ParseDocumentXML(xmlString string) Variables {
m := Variables{}
xml.Unmarshal([]byte(xmlString), &m)
return m
}