go-fds/cmd/fdslist.go

56 lines
752 B
Go

package main
import (
"fmt"
"os"
//"encoding/binary"
//"bufio"
//"bytes"
//"io"
"path/filepath"
"github.com/alexflint/go-arg"
"git.zorchenhimer.com/go-fds"
)
type Arguments struct {
Input string `arg:"positional,required"`
}
func main() {
args := &Arguments{}
arg.MustParse(args)
err := run(args)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}
func run(args *Arguments) error {
file, err := os.Open(args.Input)
if err != nil {
return err
}
defer file.Close()
blocks, err := fds.ReadRom(file, filepath.Ext(args.Input) == ".fds")
if err != nil {
return err
}
rom, err := fds.RomFromBlocks(filepath.Base(args.Input), blocks)
if err != nil {
return err
}
fmt.Println(rom.Info())
return nil
}