package main import ( "fmt" "os" ) func main() { if len(os.Args) < 2 { fmt.Fprintf(os.Stderr, "usage: mygit [...]\n") os.Exit(1) } switch command := os.Args[1]; command { case "init": for _, dir := range []string{".git", ".git/objects", ".git/refs"} { if err := os.MkdirAll(dir, 0755); err != nil { fmt.Fprintf(os.Stderr, "Error creating directory: %s\n", err) } } headFileContents := []byte("ref: refs/heads/main\n") if err := os.WriteFile(".git/HEAD", headFileContents, 0644); err != nil { fmt.Fprintf(os.Stderr, "Error writing file: %s\n", err) } fmt.Println("Initialized git directory") default: fmt.Fprintf(os.Stderr, "Unknown command %s\n", command) os.Exit(1) } }