40 lines
591 B
Go
40 lines
591 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
"bytes"
|
|
|
|
"codeberg.org/danjones000/advent-of-code/2024-09/defrag"
|
|
)
|
|
|
|
func handleErr(err error) {
|
|
if err == nil {
|
|
return
|
|
}
|
|
|
|
fmt.Fprintln(os.Stderr, err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
func main() {
|
|
name := os.Args[0]
|
|
|
|
input, err := io.ReadAll(os.Stdin)
|
|
handleErr(err)
|
|
|
|
fmt.Fprintln(os.Stderr, "Welcome to ", name)
|
|
input = bytes.TrimSpace(input)
|
|
|
|
blocks, err := defrag.Blocks(input)
|
|
handleErr(err)
|
|
err = defrag.Defrag(blocks)
|
|
handleErr(err)
|
|
|
|
fmt.Println("From this")
|
|
fmt.Printf("%s\n", input)
|
|
|
|
fmt.Println("Got this")
|
|
fmt.Printf("%s\n", blocks)
|
|
}
|