Skip to content

Commit

Permalink
refonte des flags
Browse files Browse the repository at this point in the history
  • Loading branch information
kpym committed Oct 24, 2020
1 parent d0557c2 commit 7cd9f59
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 82 deletions.
2 changes: 2 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,7 @@ go 1.15

require (
github.com/markbates/pkger v0.17.1
github.com/spf13/pflag v1.0.5
github.com/tdewolff/canvas v0.0.0-20201021153214-d9228b138ea8
golang.org/x/text v0.3.3 // indirect
)
22 changes: 1 addition & 21 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,10 @@ github.com/ByteArena/poly2tri-go v0.0.0-20170716161910-d102ad91854f/go.mod h1:vI
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
github.com/ajstarks/svgo v0.0.0-20200725142600-7a3c8b57fecb h1:EVl3FJLQCzSbgBezKo/1A4ADnJ4mtJZ0RvnNzDJ44nY=
github.com/ajstarks/svgo v0.0.0-20200725142600-7a3c8b57fecb/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
github.com/blend/go-sdk v2.0.0+incompatible h1:FL9X/of4ZYO5D2JJNI4vHrbXPfuSDbUa7h8JP9+E92w=
github.com/blend/go-sdk v2.0.0+incompatible/go.mod h1:3GUb0YsHFNTJ6hsJTpzdmCUl05o8HisKjx5OAlzYKdw=
github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dsnet/compress v0.0.1 h1:PlZu0n3Tuv04TzpfPbrnI0HW/YwodEXDS+oPKahKF0Q=
github.com/dsnet/compress v0.0.1/go.mod h1:Aw8dCMJ7RioblQeTqt88akK31OvO8Dhf5JflhBbQEHo=
Expand All @@ -21,11 +19,9 @@ github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/
github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8=
github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/go-fonts/dejavu v0.1.0 h1:JSajPXURYqpr+Cu8U9bt8K+XcACIHWqWrvWCKyeFmVQ=
github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-latex/latex v0.0.0-20200518072620-0806b477ea35 h1:uroDDLmuCK5Pz5J/Ef5vCL6F0sJmAtZFTm0/cF027F4=
github.com/go-latex/latex v0.0.0-20200518072620-0806b477ea35/go.mod h1:PNI+CcWytn/2Z/9f1SGOOYn0eILruVyp0v2/iAs8asQ=
github.com/gobuffalo/here v0.6.0 h1:hYrd0a6gDmWxBM4TnrGw8mQg24iSVoIkHEk7FodQcBI=
github.com/gobuffalo/here v0.6.0/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM=
Expand All @@ -41,14 +37,8 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
github.com/kpym/canvas v0.0.0-20201001125124-22ab9a5a4f3e h1:sKFw/UvyEPS+ZYbZHEEMudYWRAIqAK0VwNxu13b2Uv4=
github.com/kpym/canvas v0.0.0-20201001125124-22ab9a5a4f3e/go.mod h1:dsbLWOfWSGQTCtl+cqbM9/28QV3KrrfXCnvMZcJEz4s=
github.com/kpym/canvas v0.0.0-20201021144745-38347796a493 h1:ip7jdnmZzc0DWVK9BL50pgGb6gJ8vkS8rm3DQ74UTwg=
github.com/kpym/canvas v0.0.0-20201021144745-38347796a493/go.mod h1:dsbLWOfWSGQTCtl+cqbM9/28QV3KrrfXCnvMZcJEz4s=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/markbates/pkger v0.17.1 h1:/MKEtWqtc0mZvu9OinB9UzVN9iYCwLWuyUv4Bw+PCno=
github.com/markbates/pkger v0.17.1/go.mod h1:0JoVlrol20BSywW79rN3kdFFsE5xYM+rSCQDXbLhiuI=
Expand All @@ -58,24 +48,20 @@ github.com/paulmach/osm v0.1.1/go.mod h1:/UEV7XqKKTG3/46W+MtSmIl81yjV7cGoLkpol3S
github.com/phpdave11/gofpdi v1.0.7/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/remyoudompheng/bigfft v0.0.0-20190728182440-6a916e37a237/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/tdewolff/canvas v0.0.0-20201001125124-22ab9a5a4f3e h1:jMbro63dc+c9hHo/PLshiZZD2zVsuggS7S8aMx6k4uY=
github.com/tdewolff/canvas v0.0.0-20201001125124-22ab9a5a4f3e/go.mod h1:dsbLWOfWSGQTCtl+cqbM9/28QV3KrrfXCnvMZcJEz4s=
github.com/tdewolff/canvas v0.0.0-20201021153214-d9228b138ea8 h1:HwqyL7zpQ1NnhM1zDelKiZNEs4CRNKyR89NEO07qSW4=
github.com/tdewolff/canvas v0.0.0-20201021153214-d9228b138ea8/go.mod h1:dsbLWOfWSGQTCtl+cqbM9/28QV3KrrfXCnvMZcJEz4s=
github.com/tdewolff/minify/v2 v2.9.5 h1:+fHvqLencVdv14B+zgxQGhetF9qXl/nRTN/1mcyQwpM=
github.com/tdewolff/minify/v2 v2.9.5/go.mod h1:jshtBj/uUJH6JX1fuxTLnnHOA1RVJhF5MM+leJzDKb4=
github.com/tdewolff/parse/v2 v2.5.3 h1:fnPIstKgEfxd3+wwHnH73sAYydsR0o/jYhcQ6c5PkrA=
github.com/tdewolff/parse/v2 v2.5.3/go.mod h1:WzaJpRSbwq++EIQHYIRTpbYKNA3gn9it1Ik++q4zyho=
github.com/tdewolff/test v1.0.6 h1:76mzYJQ83Op284kMT+63iCNCI7NEERsIN8dLM+RiKr4=
github.com/tdewolff/test v1.0.6/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
github.com/ulikunitz/xz v0.5.6/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8=
github.com/wcharczuk/go-chart v2.0.2-0.20191206192251-962b9abdec2b+incompatible h1:ahpaSRefPekV3gcXot2AOgngIV8WYqzvDyFe3i7W24w=
Expand All @@ -89,7 +75,6 @@ golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE=
golang.org/x/exp v0.0.0-20200924195034-c827fd4f18b9 h1:0cRDak1hoWbor1hDM+mvD9xp3f1wcxvEubvb3AiP/5I=
golang.org/x/exp v0.0.0-20200924195034-c827fd4f18b9/go.mod h1:1phAWC201xIgDyaFpmDeZkgf70Q4Pd/CNqfRtVPtxNw=
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
Expand Down Expand Up @@ -131,24 +116,19 @@ golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapK
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
gonum.org/v1/gonum v0.8.1 h1:wGtP3yGpc5mCLOLeTeBdjeui9oZSz5De0eOjMLC/QuQ=
gonum.org/v1/gonum v0.8.1/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0=
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
gonum.org/v1/netlib v0.0.0-20200824093956-f0ca4b3a5ef5 h1:f+MwB6AfpSt3J5u5WH17TOx0eCa2sL26b8D9lfgoK04=
gonum.org/v1/netlib v0.0.0-20200824093956-f0ca4b3a5ef5/go.mod h1:btLGKT60dpW8TWRO6cDMdlFBmETiIjn20d9poIDla1k=
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
gonum.org/v1/plot v0.8.0 h1:dNgubmltsMoehfn6XgbutHpicbUfbkcGSxkICy1bC4o=
gonum.org/v1/plot v0.8.0/go.mod h1:3GH8dTfoceRTELDnv+4HNwbvM/eMfdDUGHFG2bo3NeE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo=
gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
modernc.org/strutil v1.1.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4=
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
131 changes: 70 additions & 61 deletions marianne.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package main

import (
"bytes"
"flag"
"fmt"
"image"
"image/color"
Expand All @@ -12,9 +11,10 @@ import (
"math"
"os"
"regexp"
"strconv"
"strings"

flag "github.com/spf13/pflag"

"github.com/markbates/pkger"
"github.com/tdewolff/canvas"
"github.com/tdewolff/canvas/eps"
Expand All @@ -34,16 +34,17 @@ var (

// les flags (pour la description voir dans la fonction main)
var (
nom *string
institution *string
direction *string
eol *string
hauteurs *string
formats *string
avecMarges *bool
sansMarges *bool
pourSignature *bool
silence *bool
nom string
institution string
direction string
eol string
hauteurs []int
formats []string
avecMarges bool
sansMarges bool
pourSignature bool
silence bool
aide bool
)

// panique en cas d'erreur
Expand All @@ -58,23 +59,6 @@ var log = func(msg ...interface{}) {
fmt.Fprint(os.Stderr, msg...)
}

// conversion des hauteurs en liste d'entiers
func stoi(h string) []int {
var n int

r := make([]int, 0, 7)
ah := strings.Split(h, ",")
for i := 0; i < len(ah); i++ {
n, err = strconv.Atoi(ah[i])
check(err)
if n > 0 {
r = append(r, n)
}
}

return r
}

// affiche un texte multilingue dans le context ctx
// - fontFamily : la police Marianne-Bold
// - txt : la texte à afficher
Expand All @@ -91,7 +75,7 @@ func drawText(ctx *canvas.Context, fontFamily *canvas.FontFamily, txt string, xP
const fontScale = 72 / 25.4 * 100 / 70

// préparation du texte
txt = strings.ReplaceAll(txt, *eol, "\n")
txt = strings.ReplaceAll(txt, eol, "\n")
ta := strings.Split(txt, "\n")

// affichage du texte
Expand Down Expand Up @@ -152,7 +136,7 @@ func draw(ctx *canvas.Context, institution, direction string) {
if len(direction) > 0 {
// détermine les espacement horizontaux entre le trait vertical et les textes
dx1, dx2 := x, x
if *pourSignature {
if pourSignature {
dx1, dx2 = 3*x, x/2
}
// affiche l'intitulé de la direction
Expand Down Expand Up @@ -230,7 +214,7 @@ func writeImages(c *canvas.Canvas, zp, formats string) {

// Création du SVG
if strings.Contains(formats, "svg") {
name = fmt.Sprintf("%s%s.svg", *nom, zp)
name = fmt.Sprintf("%s%s.svg", nom, zp)
// au lieu de fichier on utilise un Buffer
var memoryFile = new(bytes.Buffer)
err = svg.Writer(memoryFile, c)
Expand All @@ -249,14 +233,14 @@ func writeImages(c *canvas.Canvas, zp, formats string) {

// Création du PDF
if strings.Contains(formats, "pdf") {
name := fmt.Sprintf("%s%s.pdf", *nom, zp)
name := fmt.Sprintf("%s%s.pdf", nom, zp)
c.WriteFile(name, pdf.Writer)
log("PDF fait.\n")
}

// Création du EPS
if strings.Contains(formats, "eps") {
name := fmt.Sprintf("%s%s.eps", *nom, zp)
name := fmt.Sprintf("%s%s.eps", nom, zp)
c.WriteFile(name, eps.Writer)
log("EPS fait.\n")
}
Expand All @@ -267,17 +251,16 @@ func writeImages(c *canvas.Canvas, zp, formats string) {

if doPNG || doGIF || doJPG {
// les hauteurs des images
heights := stoi(*hauteurs)

// pour chaque hauteur ...
for i := 0; i < len(heights); i++ {
log("Image de hauteur ", heights[i], ".")
for i := 0; i < len(hauteurs); i++ {
log("Image de hauteur ", hauteurs[i], ".")
// la base du nom (sans l'extension)
name := fmt.Sprintf("%s%s_%d.", *nom, zp, heights[i])
name := fmt.Sprintf("%s%s_%d.", nom, zp, hauteurs[i])

// Création PNG et GIF (en 8 couleurs)
if doPNG || doGIF {
img := CanvasToIndexedImg(c, heights[i], MariannePalette8)
img := CanvasToIndexedImg(c, hauteurs[i], MariannePalette8)
if doPNG {
dstFile, err := os.Create(name + "png")
check(err)
Expand All @@ -296,7 +279,7 @@ func writeImages(c *canvas.Canvas, zp, formats string) {

// création JPG
if doJPG {
c.WriteFile(name+"jpg", rasterizer.JPGWriter(canvas.DPMM(float64(heights[i])/c.H), nil))
c.WriteFile(name+"jpg", rasterizer.JPGWriter(canvas.DPMM(float64(hauteurs[i])/c.H), nil))
log("..jpg.")
}

Expand All @@ -306,6 +289,18 @@ func writeImages(c *canvas.Canvas, zp, formats string) {

}

var traductions = map[string]string{
"default": "par défaut",
"strings": " ",
"string": " ",
"ints": " ",
// "bad flag syntax:": "mauvaise syntaxe du paramètre :",
// "unknown flag:": "paramètre inconnu :",
// "unknown shorthand flag:": "paramètre court inconnu :",
// " in ": " dans ",
// "flag needs an argument:": "Le paramètre nécessite d'un argument :",
}

// Affiche l'aide d'utilisation
// C'est un peut plus compliqué que ce que ça devrait être
// car on doit remplacer "default" avec "par défaut"
Expand All @@ -321,52 +316,66 @@ func Aide() {
flag.CommandLine.SetOutput(buf)
defer flag.CommandLine.SetOutput(os.Stderr)
flag.PrintDefaults()
// on remplace "default" avec "par défaut" et on affiche le résultats dans la console
os.Stderr.Write(bytes.Replace(buf.Bytes(), []byte("default"), []byte("par défaut"), -1))

// le message avant les ajustements
msg := string(buf.Bytes())
// traduction en français
for from, to := range traductions {
msg = strings.ReplaceAll(msg, from, to)
}
// on affiche finalement le message d'aide
fmt.Fprintf(os.Stderr, msg)
fmt.Fprintf(os.Stderr, "\n")
}

func main() {
// déclare les flags
nom = flag.String("nom", "logo", "Le nom du fichier.")
institution = flag.String("institution", "RÉPUBLIQUE\\FRANÇAISE", "Le nom du ministère, ambassade, ...")
direction = flag.String("direction", "", "Intitulé de de direction, service ou délégations interministérielles.")
eol = flag.String("eol", "\\", "Le passage à la ligne, en plus du EOL standard.")
hauteurs = flag.String("hauteurs", "100,300,700", "Les hauteurs pour les logos en PNG et JPG.")
formats = flag.String("formats", "SVG", "Les formats parmi SVG, PDF, PNG, GIF et JPG.")
avecMarges = flag.Bool("avec-marges", false, "Avec zone de protection autour du logo. Ce paramètre est compatible avec -sans-marges.")
sansMarges = flag.Bool("sans-marges", false, "Sans zone de protection autour du logo. Ce paramètre est compatible avec -avec-marges.")
pourSignature = flag.Bool("pour-signature", false, "Le logo est destiné à une signature mail.")
silence = flag.Bool("silence", false, "N'imprime rien.")
flag.StringVarP(&nom, "nom-du-logo", "o", "logo", "Le nom du logo = le début des noms des fichiers générés.")
flag.StringVarP(&institution, "institution", "i", "RÉPUBLIQUE\\FRANÇAISE", "Le nom du ministère, ambassade...")
flag.StringVarP(&direction, "direction", "d", "", "Intitulé de direction, service ou délégation interministérielles.")
flag.StringSliceVarP(&formats, "format", "f", []string{"SVG"}, "Le(s) format(s) parmi SVG, PDF, EPS, PNG, GIF et JPG.")
flag.IntSliceVarP(&hauteurs, "hauteur", "t", []int{100, 300, 700}, "La (ou les) hauteur(s) pour les logos en PNG, GIF et JPG.")
flag.BoolVarP(&avecMarges, "avec-marges", "M", false, "Avec zone de protection autour du logo. Ce paramètre est compatible avec -sans-marges.")
flag.BoolVarP(&sansMarges, "sans-marges", "m", false, "Sans zone de protection autour du logo ('_szp' est rajouté aux noms des fichiers).")
flag.BoolVarP(&pourSignature, "pour-signature", "g", false, "Le logo est destiné à une signature mail.")
flag.StringVar(&eol, "eol", "\\", "Le passage à la ligne, en plus du EOL standard.")
flag.BoolVarP(&silence, "silence", "q", false, "N'imprime rien.")
flag.BoolVarP(&aide, "aide", "h", false, "Imprime ce message d'aide.")
// Message d'aide
flag.CommandLine.SortFlags = false
flag.Usage = Aide
// récupère les flags
flag.Parse()
// affiche l'aide si demandé
if aide {
flag.Usage()
os.Exit(0)
}
// au moins une des versions doit être présente (avec marges par défaut)
if !*sansMarges {
*avecMarges = true
if !sansMarges {
avecMarges = true
}
// normalisation des formats
var formatstr = strings.ToLower(strings.Join(formats, ","))
// silence ?
if *silence {
if silence {
log = func(msg ...interface{}) {}
}

// le canevas et le contexte sur lesquels on va dessiner
c := canvas.New(1, 1) // la taille sera ajustée après avec Fit()
ctx := canvas.NewContext(c)
log("Création du logo ...")
draw(ctx, *institution, *direction)
draw(ctx, institution, direction)
log("fait.\n")

if *sansMarges {
if sansMarges {
c.Fit(0.0)
log("\nEnregistrement sans marges :\n")
writeImages(onWhite(c), "_szp", strings.ToLower(*formats))
writeImages(onWhite(c), "_szp", formatstr)
}
if *avecMarges {
if avecMarges {
c.Fit(x)
log("\nEnregistrement avec marges :\n")
writeImages(onWhite(c), "", strings.ToLower(*formats))
writeImages(onWhite(c), "", formatstr)
}
}

0 comments on commit 7cd9f59

Please sign in to comment.