started muld
							parent
							
								
									9edf7d613c
								
							
						
					
					
						commit
						0a9924e96c
					
				@ -1,7 +0,0 @@
 | 
				
			|||||||
package main
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import "fmt"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func main() {
 | 
					 | 
				
			||||||
	fmt.Println("not ready yet")
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -0,0 +1,70 @@
 | 
				
			|||||||
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"bufio"
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
 | 
						"io"
 | 
				
			||||||
 | 
						"log"
 | 
				
			||||||
 | 
						"os"
 | 
				
			||||||
 | 
						"runtime"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/RageCage64/multilinediff"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func main() {
 | 
				
			||||||
 | 
						if err := run(); err != nil {
 | 
				
			||||||
 | 
							log.Fatal(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func run() error {
 | 
				
			||||||
 | 
						if (len(os.Args) - 1) != 2 {
 | 
				
			||||||
 | 
							return fmt.Errorf("requires exactly two arguments, got %d", len(os.Args))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leftPath := os.Args[1]
 | 
				
			||||||
 | 
						rightPath := os.Args[2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						leftContent, err := readContent(leftPath)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						rightContent, err := readContent(rightPath)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						lineSep := "\n"
 | 
				
			||||||
 | 
						if runtime.GOOS == "windows" {
 | 
				
			||||||
 | 
							lineSep = "\r\n"
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						fmt.Println(multilinediff.Diff(leftContent, rightContent, lineSep))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func readContent(path string) (string, error) {
 | 
				
			||||||
 | 
						if path == "-" {
 | 
				
			||||||
 | 
							return readFromStdin()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						content, err := os.ReadFile(path)
 | 
				
			||||||
 | 
						return string(content), err
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func readFromStdin() (string, error) {
 | 
				
			||||||
 | 
						stdin := bufio.NewReader(os.Stdin)
 | 
				
			||||||
 | 
						data := []byte{}
 | 
				
			||||||
 | 
						for {
 | 
				
			||||||
 | 
							b, err := stdin.ReadByte()
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								if err == io.EOF {
 | 
				
			||||||
 | 
									break
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
 | 
									return "", err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							data = append(data, b)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return string(data), nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,24 +0,0 @@
 | 
				
			|||||||
package main
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/RageCage64/multilinediff"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func main() {
 | 
					 | 
				
			||||||
	a := `a
 | 
					 | 
				
			||||||
b
 | 
					 | 
				
			||||||
c
 | 
					 | 
				
			||||||
diff`
 | 
					 | 
				
			||||||
	b := `a b
 | 
					 | 
				
			||||||
c
 | 
					 | 
				
			||||||
f
 | 
					 | 
				
			||||||
f
 | 
					 | 
				
			||||||
f
 | 
					 | 
				
			||||||
diff`
 | 
					 | 
				
			||||||
	diff, count := multilinediff.Diff(a, b, "\n")
 | 
					 | 
				
			||||||
	fmt.Println(count)
 | 
					 | 
				
			||||||
	fmt.Println("--------")
 | 
					 | 
				
			||||||
	fmt.Println(diff)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
					Loading…
					
					
				
		Reference in New Issue