Skip to content

Commit 6fe8fba

Browse files
committed
ADD: cli runs
1 parent ee970db commit 6fe8fba

2 files changed

Lines changed: 47 additions & 12 deletions

File tree

cmd/svgan/main.go

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,47 @@
11
package main
22

33
import (
4+
"encoding/json"
45
"fmt"
56
"log/slog"
67
"os"
8+
9+
svgan "github.com/FileFormatInfo/svgan/lib"
710
)
811

912
func main() {
13+
var logger = slog.New(slog.NewTextHandler(os.Stderr, nil))
14+
1015
if len(os.Args) < 2 {
11-
fmt.Println("Please provide a file name")
16+
logger.Error("no files specified")
1217
os.Exit(1)
1318
}
1419

15-
fileName := os.Args[1]
16-
results, err := svgCheckFile(logger, fileName)
17-
if err != nil {
18-
fmt.Println(err)
19-
os.Exit(1)
20-
}
20+
for _, fileName := range os.Args[1:] {
21+
logger.Info("processing file", "filename", fileName)
22+
results, err := svgCheckFile(logger, fileName)
23+
if err != nil {
24+
logger.Error("unable to process file", "filename", fileName, "err", err)
25+
os.Exit(1)
26+
}
27+
28+
jsonData, err := json.MarshalIndent(results, "", " ")
29+
if err != nil {
30+
logger.Error("unable to convert results to JSON", "filename", fileName, "err", err)
31+
os.Exit(1)
32+
}
2133

22-
fmt.Printf("SVG info: %v\n", results)
34+
fmt.Fprintf(os.Stdout, "%s\n", string(jsonData))
35+
}
2336
}
2437

25-
func svgCheckFile(Logger *slog.Logger, fileName string) (*SvgInfoResult, error) {
38+
func svgCheckFile(logger *slog.Logger, fileName string) (*svgan.SvgCheckResult, error) {
2639

2740
raw, readErr := os.ReadFile(fileName)
2841
if readErr != nil {
29-
Logger.Error("msg", "Unable to read file", "fileName", fileName, "error", readErr)
42+
logger.Error("Unable to read file", "fileName", fileName, "error", readErr)
3043
return nil, readErr
3144
}
32-
text := string(raw)
3345

34-
return svgCheckText(Logger, text, raw)
46+
return svgan.SvgCheck(logger, raw)
3547
}

run-cli.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/usr/bin/env bash
2+
#
3+
# run Jekyll locally
4+
#
5+
6+
set -o errexit
7+
set -o pipefail
8+
set -o nounset
9+
10+
if [ -f ".env" ]; then
11+
export $(cat .env)
12+
else
13+
echo "WARNING: no .env file found"
14+
fi
15+
16+
if [ ! -d "tmp" ]; then
17+
mkdir tmp
18+
fi
19+
20+
go build -o ./tmp/svgan ./cmd/svgan
21+
22+
23+
tmp/svgan cmd/server/static/*.svg

0 commit comments

Comments
 (0)