57 lines
1.1 KiB
Go
57 lines
1.1 KiB
Go
package main
|
||
|
||
import (
|
||
"flag"
|
||
"fmt"
|
||
"os"
|
||
|
||
"git.mousesoft.ru/ms/drawio-export/pkg/drawio"
|
||
)
|
||
|
||
var (
|
||
appname string // Наименование приложения
|
||
version string // Версия приложения
|
||
)
|
||
|
||
type flags struct {
|
||
flagHelp bool // Вывести справку о приложении и выйти
|
||
flagVersion bool // Вывести информацию о версии приложения и выйти
|
||
flagIgnoreErrors bool // Игнорировать ошибки
|
||
}
|
||
|
||
func main() {
|
||
var (
|
||
opts drawio.Options // Аргументы командной строки приложения
|
||
flags flags // Флаги командной строки
|
||
)
|
||
|
||
initFlags(&opts, &flags)
|
||
|
||
flag.Parse()
|
||
|
||
if flags.flagHelp {
|
||
flag.Usage()
|
||
|
||
os.Exit(0)
|
||
}
|
||
|
||
if flags.flagVersion {
|
||
_, _ = fmt.Println(appname, version)
|
||
|
||
os.Exit(0)
|
||
}
|
||
|
||
if flag.NArg() < 1 {
|
||
flag.Usage()
|
||
|
||
os.Exit(1)
|
||
}
|
||
|
||
exporter := drawio.NewWithOptions(&opts)
|
||
if err := exporter.Export(flag.Args()...); err != nil && !flags.flagIgnoreErrors {
|
||
fmt.Fprintln(os.Stderr, "Error:", err)
|
||
|
||
os.Exit(1)
|
||
}
|
||
}
|