package commands import ( "io" "os" "git.cheetah.cat/cheetah/moto-flash-data/motolol/cpe" ) type DecryptDBFCommand struct { SourceFileName string `long:"src" alias:"i" required:"true" description:"input-filename"` DestFileName string `long:"dest" alias:"o" required:"true" description:"output-filename"` } func (command *DecryptDBFCommand) Execute(args []string) error { inputFile, err := os.Open(command.SourceFileName) if err != nil { return err } defer inputFile.Close() outputFile, err := os.Create(command.DestFileName) if err != nil { return err } defer outputFile.Close() inputFileStat, err := inputFile.Stat() if err != nil { return err } pdata := make([]byte, inputFileStat.Size()) _, err = io.ReadFull(inputFile, pdata) if err != nil { return err } decrypted := cpe.DecryptDBFFile(pdata) _, err = outputFile.Write(decrypted) if err != nil { return err } return nil }