From 404386194b9492b29b03d4e1e65558c545a70b51 Mon Sep 17 00:00:00 2001 From: Nikolaus Gotsche Date: Fri, 19 Oct 2018 12:30:46 +0200 Subject: Trys in Auto-Documentation --- texify.go | 395 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 197 insertions(+), 198 deletions(-) (limited to 'texify.go') diff --git a/texify.go b/texify.go index 4e9015e..358047a 100644 --- a/texify.go +++ b/texify.go @@ -1,217 +1,216 @@ package main import ( - "fmt" - "strings" - "os/exec" - "os" - "text/template" + "fmt" + "os" + "os/exec" + "strings" + "text/template" ) -type FeeItem struct{ - Task string - Timeframe string - Hours float64 - Price float64 +type FeeItem struct { + Task string + Timeframe string + Hours float64 + Price float64 } -type Filenames struct{ - Data string - Invoice string - Main string +type Filenames struct { + Data string + Invoice string + Main string } type Data struct { - InvDate string - WorkDate string - InvNo string - ProjName string - - CustComp string - CustName string - CustStr string - CustZip string - CustCity string - CustCountry string - - TaxID string - MyName string - MyStr string - MyZip string - MyCity string - MyCountry string - MyTel string - MyMob string - MyMail string - MyUrl string - - BankNum string - BankLZ string - BankName string - Iban string - Bic string + InvDate string + WorkDate string + InvNo string + ProjName string + + CustComp string + CustName string + CustStr string + CustZip string + CustCity string + CustCountry string + + TaxID string + MyName string + MyStr string + MyZip string + MyCity string + MyCountry string + MyTel string + MyMob string + MyMail string + MyUrl string + + BankNum string + BankLZ string + BankName string + Iban string + Bic string } -func billTemplate(billdata bill, cust customer) (Filenames) { - billid := billdata.id - custr,cuzip,cucity,cucou := "","","","" - addr := string2StringArray(cust.address,";") - for i,a := range addr { - switch i { - case 0: - custr=a - case 1: - cuzip=a - case 2: - cucity=a - case 3: - cucou=a - default: - break - } - } - dat := Data{billdata.date.UTC().Format("2006-01-02"), - billdata.timerange, - billdata.identity, - billdata.projectname, - - cust.company, - cust.name, - custr, - cuzip, - cucity, - cucou, - - config.Taxid, - config.Name, - config.Street, - config.Zip, - config.City, - config.Country, - config.Telefon, - config.Mobile, - config.Mail, - config.Url, - - config.Bankacc, - config.Banklz, - config.Bankname, - config.Iban, - config.Bic, - } - - inv := billdata.items - - filenamedata := fmt.Sprintf("%v_data",billid) - filenameinv := fmt.Sprintf("%v_invoice",billid) - filenamemain := fmt.Sprintf("%v_main.tex",billid) - fnames := Filenames{filenamedata,filenameinv,filenamemain} - - //Parse Templates - tmpl, err := template.New("invoice").Delims("[[","]]").ParseGlob("templates/*.tex") - checkErr(err) - filenamedata = fmt.Sprintf("outtex/%v_data.tex",billid) - filenameinv = fmt.Sprintf("outtex/%v_invoice.tex",billid) - filenamemain = fmt.Sprintf("outtex/%v_main.tex",billid) - - //Open File - datf, err := os.Create(filenamedata) - checkErr(err) - invf, err := os.Create(filenameinv) - checkErr(err) - maif, err := os.Create(filenamemain) - checkErr(err) - defer datf.Close() - defer invf.Close() - defer maif.Close() - - //Execute Template - //err = tmpl.ExecuteTemplate(os.Stdout, "invoice.tex", td) - err = tmpl.ExecuteTemplate(datf, "_data.tex", dat) - checkErr(err) - err = tmpl.ExecuteTemplate(invf, "_invoice.tex", inv) - checkErr(err) - err = tmpl.ExecuteTemplate(maif, "_main.tex", fnames) - checkErr(err) - - return fnames +func billTemplate(billdata bill, cust customer) Filenames { + billid := billdata.id + custr, cuzip, cucity, cucou := "", "", "", "" + addr := string2StringArray(cust.address, ";") + for i, a := range addr { + switch i { + case 0: + custr = a + case 1: + cuzip = a + case 2: + cucity = a + case 3: + cucou = a + default: + break + } + } + dat := Data{billdata.date.UTC().Format("2006-01-02"), + billdata.timerange, + billdata.identity, + billdata.projectname, + + cust.company, + cust.name, + custr, + cuzip, + cucity, + cucou, + + config.Taxid, + config.Name, + config.Street, + config.Zip, + config.City, + config.Country, + config.Telefon, + config.Mobile, + config.Mail, + config.Url, + + config.Bankacc, + config.Banklz, + config.Bankname, + config.Iban, + config.Bic, + } + + inv := billdata.items + + filenamedata := fmt.Sprintf("%v_data", billid) + filenameinv := fmt.Sprintf("%v_invoice", billid) + filenamemain := fmt.Sprintf("%v_main.tex", billid) + fnames := Filenames{filenamedata, filenameinv, filenamemain} + + //Parse Templates + tmpl, err := template.New("invoice").Delims("[[", "]]").ParseGlob("templates/*.tex") + checkErr(err) + filenamedata = fmt.Sprintf("outtex/%v_data.tex", billid) + filenameinv = fmt.Sprintf("outtex/%v_invoice.tex", billid) + filenamemain = fmt.Sprintf("outtex/%v_main.tex", billid) + + //Open File + datf, err := os.Create(filenamedata) + checkErr(err) + invf, err := os.Create(filenameinv) + checkErr(err) + maif, err := os.Create(filenamemain) + checkErr(err) + defer datf.Close() + defer invf.Close() + defer maif.Close() + + //Execute Template + //err = tmpl.ExecuteTemplate(os.Stdout, "invoice.tex", td) + err = tmpl.ExecuteTemplate(datf, "_data.tex", dat) + checkErr(err) + err = tmpl.ExecuteTemplate(invf, "_invoice.tex", inv) + checkErr(err) + err = tmpl.ExecuteTemplate(maif, "_main.tex", fnames) + checkErr(err) + + return fnames } -func runLatex(inputfilename,outputfilename string) (error) { - fmt.Printf("Rendering: %s -> Output File: outpdf/Rechnung%s.pdf\n",inputfilename,cleanString(outputfilename)) - pref := strings.TrimSuffix(inputfilename,"_main.tex") - //cmdArgs := []string{"-synctex=1", "-interaction=nonstopmode", filename} - - binary, err := exec.LookPath("pdflatex") - checkErr(err) - - //env := os.Environ() - mainpdf := strings.Replace(inputfilename,".tex",".pdf",1) - cmd := fmt.Sprintf("cd outtex; %v -interaction=nonstopmode -output-directory='../outpdf' %s; cd ../outpdf; cp %s 'Rechnung%s.pdf'; rm %s_*",binary,inputfilename,mainpdf,cleanString(outputfilename),pref) - //fmt.Println(cmd) - //docmd := exec.Command(binary,cmdArgs[0], cmdArgs[1],cmdArgs[2]) - docmd := exec.Command("bash","-c",cmd) - //err = docmd.Run() - err = docmd.Start() - //out,err := docmd.Output() - //checkErr(err) - err = docmd.Wait() - //fmt.Println(string(out)) - //fmt.Printf("Finished with Error:%v\n",err) - return err +func runLatex(inputfilename, outputfilename string) error { + fmt.Printf("Rendering: %s -> Output File: outpdf/Rechnung%s.pdf\n", inputfilename, cleanString(outputfilename)) + pref := strings.TrimSuffix(inputfilename, "_main.tex") + //cmdArgs := []string{"-synctex=1", "-interaction=nonstopmode", filename} + + binary, err := exec.LookPath("pdflatex") + checkErr(err) + + //env := os.Environ() + mainpdf := strings.Replace(inputfilename, ".tex", ".pdf", 1) + cmd := fmt.Sprintf("cd outtex; %v -interaction=nonstopmode -output-directory='../outpdf' %s; cd ../outpdf; cp %s 'Rechnung%s.pdf'; rm %s_*", binary, inputfilename, mainpdf, cleanString(outputfilename), pref) + //fmt.Println(cmd) + //docmd := exec.Command(binary,cmdArgs[0], cmdArgs[1],cmdArgs[2]) + docmd := exec.Command("bash", "-c", cmd) + //err = docmd.Run() + err = docmd.Start() + //out,err := docmd.Output() + //checkErr(err) + err = docmd.Wait() + //fmt.Println(string(out)) + //fmt.Printf("Finished with Error:%v\n",err) + return err } - func tmpltest() { - //Sampledata - dat := Data{"17.6.18", - "3.4.-7.6.18", - "HN 07/18", - "Testkopfstrasse 132", - "Somecompany", - "Jemand Wiadschosei", - "Fakestreet 123", - "6996", - "Busenhausen", - "Tittania", - "6575-6544", - "Meinam Sauluschtig", - "Saubastrasse 86", - "1111", - "Nicetown", - "Niceland", - "+43 (1) 655 555 23", - "+43 (0) 650 555 32", - "Meinam@sauluscht.ig", - "www.saulust.com", - "7272626272", - "20220", - "Might Bank Inc.", - "IB47 2382 4338 2822 1222", - "BICBICBIC"} - var inv []FeeItem - - inv = append(inv,FeeItem{"Modellierung Dachkonstruktion", "1.4.-27.4.18",13,325}) - inv = append(inv,FeeItem{"Dokument Vorbereitung", "9.4.-5.5.18",15,375}) - inv = append(inv,FeeItem{"Begehungen und Besprechungen", "1.4.-19.4.18",12,300}) - inv = append(inv,FeeItem{"Wichtig aussehen", "5.5.-5.5.18",2,50}) - - //Parse Templates - tmpl, err := template.New("invoice").Delims("[[","]]").ParseGlob("templates/*.tex") - checkErr(err) - //Open File - datf, err := os.Create("outtex/1_data.tex") - checkErr(err) - invf, err := os.Create("outtex/1_invoice.tex") - checkErr(err) - defer datf.Close() - defer invf.Close() - - //Execute Template - //err = tmpl.ExecuteTemplate(os.Stdout, "invoice.tex", td) - err = tmpl.ExecuteTemplate(datf, "_data.tex", dat) - checkErr(err) - err = tmpl.ExecuteTemplate(invf, "_invoice.tex", inv) - checkErr(err) + //Sampledata + dat := Data{"17.6.18", + "3.4.-7.6.18", + "HN 07/18", + "Testkopfstrasse 132", + "Somecompany", + "Jemand Wiadschosei", + "Fakestreet 123", + "6996", + "Busenhausen", + "Tittania", + "6575-6544", + "Meinam Sauluschtig", + "Saubastrasse 86", + "1111", + "Nicetown", + "Niceland", + "+43 (1) 655 555 23", + "+43 (0) 650 555 32", + "Meinam@sauluscht.ig", + "www.saulust.com", + "7272626272", + "20220", + "Might Bank Inc.", + "IB47 2382 4338 2822 1222", + "BICBICBIC"} + var inv []FeeItem + + inv = append(inv, FeeItem{"Modellierung Dachkonstruktion", "1.4.-27.4.18", 13, 325}) + inv = append(inv, FeeItem{"Dokument Vorbereitung", "9.4.-5.5.18", 15, 375}) + inv = append(inv, FeeItem{"Begehungen und Besprechungen", "1.4.-19.4.18", 12, 300}) + inv = append(inv, FeeItem{"Wichtig aussehen", "5.5.-5.5.18", 2, 50}) + + //Parse Templates + tmpl, err := template.New("invoice").Delims("[[", "]]").ParseGlob("templates/*.tex") + checkErr(err) + //Open File + datf, err := os.Create("outtex/1_data.tex") + checkErr(err) + invf, err := os.Create("outtex/1_invoice.tex") + checkErr(err) + defer datf.Close() + defer invf.Close() + + //Execute Template + //err = tmpl.ExecuteTemplate(os.Stdout, "invoice.tex", td) + err = tmpl.ExecuteTemplate(datf, "_data.tex", dat) + checkErr(err) + err = tmpl.ExecuteTemplate(invf, "_invoice.tex", inv) + checkErr(err) } -- cgit v1.2.3