convert to pflag for better help page, actually close input file
This commit is contained in:
4
go.mod
4
go.mod
@@ -2,4 +2,6 @@ module github.com/amberisvibin/rgb2rgb8
|
|||||||
|
|
||||||
go 1.23.5
|
go 1.23.5
|
||||||
|
|
||||||
require github.com/wayneashleyberry/truecolor v1.0.1 // indirect
|
require github.com/wayneashleyberry/truecolor v1.0.1
|
||||||
|
|
||||||
|
require github.com/ogier/pflag v0.0.1
|
||||||
|
2
go.sum
2
go.sum
@@ -1,2 +1,4 @@
|
|||||||
|
github.com/ogier/pflag v0.0.1 h1:RW6JSWSu/RkSatfcLtogGfFgpim5p7ARQ10ECk5O750=
|
||||||
|
github.com/ogier/pflag v0.0.1/go.mod h1:zkFki7tvTa0tafRvTBIZTvzYyAu6kQhPZFnshFFPE+g=
|
||||||
github.com/wayneashleyberry/truecolor v1.0.1 h1:REnJBycjnvg0AFErbLx2GCmLLar8brlqm62kOKnRsGs=
|
github.com/wayneashleyberry/truecolor v1.0.1 h1:REnJBycjnvg0AFErbLx2GCmLLar8brlqm62kOKnRsGs=
|
||||||
github.com/wayneashleyberry/truecolor v1.0.1/go.mod h1:fyL3jRES70g94n+Eu+XLhXYvcseza55ph8zlkmUKW7Q=
|
github.com/wayneashleyberry/truecolor v1.0.1/go.mod h1:fyL3jRES70g94n+Eu+XLhXYvcseza55ph8zlkmUKW7Q=
|
||||||
|
72
rgb2rgb8.go
72
rgb2rgb8.go
@@ -3,47 +3,59 @@ package main
|
|||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"flag"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/ogier/pflag"
|
||||||
"github.com/wayneashleyberry/truecolor/pkg/color"
|
"github.com/wayneashleyberry/truecolor/pkg/color"
|
||||||
"math"
|
"math"
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
var outputFile string
|
var (
|
||||||
var verbose bool
|
outputFile string
|
||||||
var version bool
|
verbose bool
|
||||||
var colors bool
|
version bool
|
||||||
|
colors bool
|
||||||
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
const (
|
pflag.StringVarP(
|
||||||
outputDefault = "out.hex"
|
&outputFile,
|
||||||
outputUsage = "output file"
|
"output",
|
||||||
verboseDefault = false
|
"o",
|
||||||
verboseUsage = "verbose output"
|
"out.hex",
|
||||||
versionDefault = false
|
"output file",
|
||||||
versionUsage = "version info"
|
)
|
||||||
colorsDefault = false
|
pflag.BoolVarP(
|
||||||
colorsUsage = "print colors to terminal (needs 24 bit color support)"
|
&verbose,
|
||||||
|
"verbose",
|
||||||
|
"v",
|
||||||
|
false,
|
||||||
|
"verbose output",
|
||||||
|
)
|
||||||
|
|
||||||
|
pflag.BoolVarP(
|
||||||
|
&colors,
|
||||||
|
"colors",
|
||||||
|
"c",
|
||||||
|
false,
|
||||||
|
"print colors to terminal (needs 24 bit color support)",
|
||||||
|
)
|
||||||
|
pflag.BoolVar(
|
||||||
|
&version,
|
||||||
|
"version",
|
||||||
|
false,
|
||||||
|
"version info",
|
||||||
)
|
)
|
||||||
flag.StringVar(&outputFile, "output", outputDefault, outputUsage)
|
|
||||||
flag.StringVar(&outputFile, "o", outputDefault, outputUsage+" (shorthand)")
|
|
||||||
flag.BoolVar(&verbose, "verbose", verboseDefault, verboseUsage)
|
|
||||||
flag.BoolVar(&verbose, "v", verboseDefault, verboseUsage+" (shorthand)")
|
|
||||||
flag.BoolVar(&colors, "colors", colorsDefault, colorsUsage)
|
|
||||||
flag.BoolVar(&colors, "c", colorsDefault, colorsUsage)
|
|
||||||
flag.BoolVar(&version, "version", versionDefault, versionUsage)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
flag.Usage = func() {
|
pflag.Usage = func() {
|
||||||
w := flag.CommandLine.Output()
|
fmt.Fprintf(os.Stderr, "%s is a utility that converts RGB24 hex palette files to 8bit 3-3-2 RGB.\n", os.Args[0])
|
||||||
fmt.Fprintf(w, "%s is a utility that converts RGB24 hex palette files to 8bit 3-3-2 RGB.\n", os.Args[0])
|
fmt.Fprintf(os.Stderr, "Usage:\n")
|
||||||
fmt.Fprintf(w, "Usage:\n")
|
pflag.PrintDefaults()
|
||||||
flag.PrintDefaults()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
flag.Parse()
|
pflag.Parse()
|
||||||
|
|
||||||
if version {
|
if version {
|
||||||
fmt.Println("rgb2rgb8 v0.1")
|
fmt.Println("rgb2rgb8 v0.1")
|
||||||
@@ -52,12 +64,12 @@ func main() {
|
|||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(flag.Args()) == 0 {
|
if len(pflag.Args()) == 0 {
|
||||||
fmt.Println("Error: No file specified.")
|
fmt.Println("Error: No file specified.")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
var inputFile = flag.Args()[0]
|
var inputFile = pflag.Args()[0]
|
||||||
|
|
||||||
if verbose {
|
if verbose {
|
||||||
fmt.Println("outputFile:", outputFile)
|
fmt.Println("outputFile:", outputFile)
|
||||||
@@ -71,6 +83,8 @@ func main() {
|
|||||||
os.Exit(2)
|
os.Exit(2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defer input.Close()
|
||||||
|
|
||||||
//create output file
|
//create output file
|
||||||
output, err := os.OpenFile(outputFile, os.O_WRONLY|os.O_CREATE, 0644)
|
output, err := os.OpenFile(outputFile, os.O_WRONLY|os.O_CREATE, 0644)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Reference in New Issue
Block a user