Skip to content

Commit

Permalink
fix some errors during file saving
Browse files Browse the repository at this point in the history
  • Loading branch information
macdylan committed Jul 31, 2023
1 parent a24e2db commit 49a2d65
Showing 1 changed file with 14 additions and 21 deletions.
35 changes: 14 additions & 21 deletions smfix.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,30 +31,22 @@ func main() {
err error
)
if len(flag.Args()) > 0 {
in, err = os.Open(flag.Arg(0))
in, err = os.OpenFile(flag.Arg(0), os.O_RDONLY, 0666)
if err != nil {
log.Fatalln(err)
}
defer in.Close()
}

if in == nil {
flag_usage()
}

if OutputPath == "" {
OutputPath = in.Name()
}

var headers [][]byte
if headers, err = fix.ExtractHeader(in); err != nil {
log.Fatalf("Parse params failed: %s", err)
}

tmpfile, err := os.CreateTemp("", "smfix")
if err != nil {
log.Fatalf("Can not create temp file: %s", err)
}

gcodes := make([]string, 0, fix.Params.TotalLines+len(headers)+128)
sc := bufio.NewScanner(in)
for sc.Scan() {
Expand All @@ -76,24 +68,25 @@ func main() {
gcodes = fix.GcodeFixPreheat(gcodes)
}

// prepare for output file
if len(OutputPath) == 0 {
OutputPath = flag.Arg(0)
}
out, err := os.Create(OutputPath)
if err != nil {
log.Fatalln(err)
}
defer out.Close()

// write headers
if _, err := tmpfile.Write(bytes.Join(headers, []byte("\n"))); err != nil {
if _, err := out.Write(bytes.Join(headers, []byte("\n"))); err != nil {
log.Fatalln(err)
}

// write gcodes
for _, gcode := range gcodes {
if _, err := tmpfile.WriteString(gcode + "\n"); err != nil {
if _, err := out.WriteString(gcode + "\n"); err != nil {
log.Fatalln(err)
}
}

if err := tmpfile.Close(); err != nil {
log.Fatalf("Temp file error: %s", err)
}

// finally, move tmpfile to in
if err := os.Rename(tmpfile.Name(), OutputPath); err != nil {
log.Fatalf("Error: %s", err)
}
}

0 comments on commit 49a2d65

Please sign in to comment.