Skip to content

Commit

Permalink
add support for file header lines
Browse files Browse the repository at this point in the history
  • Loading branch information
JLaferri committed Jan 7, 2019
1 parent 857b109 commit ff52915
Showing 1 changed file with 22 additions and 16 deletions.
38 changes: 22 additions & 16 deletions gecko.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,15 @@ import (

type Config struct {
Settings GeckoSettings
OutputFiles []string
OutputFiles []FileDetails
Codes []CodeDescription
}

type FileDetails struct {
File string
Header []string
}

type CodeDescription struct {
Name string
Authors []string
Expand Down Expand Up @@ -86,7 +91,7 @@ func main() {
log.Panic("Must provide a command. Try typing 'gecko build'\n")
}

outputFilePaths := []string{}
outputFiles := []FileDetails{}

command := os.Args[1]
switch command {
Expand All @@ -106,7 +111,7 @@ func main() {

globalSettings = config.Settings
buildBody(config)
outputFilePaths = config.OutputFiles
outputFiles = config.OutputFiles
case "assemble":
assembleFlags := flag.NewFlagSet("assemble", flag.ExitOnError)
outputFilePtr := assembleFlags.String(
Expand Down Expand Up @@ -135,7 +140,7 @@ func main() {
assembleFlags.Parse(os.Args[2:])

globalSettings = GeckoSettings{AreIncludesRelativeFromFile: *irffPtr}
outputFilePaths = append(outputFilePaths, *outputFilePtr)
outputFiles = append(outputFiles, FileDetails{File: *outputFilePtr})
output = generateInjectionFolderLines(*assemblePathPtr, *isRecursivePtr)
case "-h":
// Print help information
Expand All @@ -150,7 +155,7 @@ func main() {
}

// Write output
for _, file := range outputFilePaths {
for _, file := range outputFiles {
writeOutput(file)
}
}
Expand Down Expand Up @@ -641,28 +646,29 @@ func buildTempAsmFile(sourceFilePath, targetFilePath string) {
}
}

func writeOutput(outputFile string) {
fmt.Printf("Writing to %s...\n", outputFile)
ext := filepath.Ext(outputFile)
func writeOutput(details FileDetails) {
fmt.Printf("Writing to %s...\n", details.File)
ext := filepath.Ext(details.File)
switch ext {
case ".gct":
writeGctOutput(outputFile)
writeGctOutput(details)
default:
writeTextOutput(outputFile)
writeTextOutput(details)
}

fmt.Printf("Successfuly wrote codes to %s\n", outputFile)
fmt.Printf("Successfuly wrote codes to %s\n", details.File)
}

func writeTextOutput(outputFile string) {
fullText := strings.Join(output, "\n")
err := ioutil.WriteFile(outputFile, []byte(fullText), 0644)
func writeTextOutput(details FileDetails) {
outputWithHeader := append(details.Header, output...)
fullText := strings.Join(outputWithHeader, "\n")
err := ioutil.WriteFile(details.File, []byte(fullText), 0644)
if err != nil {
log.Panic("Failed to write file\n", err)
}
}

func writeGctOutput(outputFile string) {
func writeGctOutput(details FileDetails) {
gctBytes := []byte{0x00, 0xD0, 0xC0, 0xDE, 0x00, 0xD0, 0xC0, 0xDE}

for _, line := range output {
Expand All @@ -681,7 +687,7 @@ func writeGctOutput(outputFile string) {
}

gctBytes = append(gctBytes, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
err := ioutil.WriteFile(outputFile, gctBytes, 0644)
err := ioutil.WriteFile(details.File, gctBytes, 0644)
if err != nil {
log.Panic("Failed to write file\n", err)
}
Expand Down

0 comments on commit ff52915

Please sign in to comment.