dolt/{bats,go}: git dolt errors on unknown commands

This commit is contained in:
Matt Jesuele
2019-06-06 17:33:40 -07:00
parent 9b80f3c787
commit decf29f807
2 changed files with 37 additions and 24 deletions

View File

@@ -59,6 +59,12 @@ teardown() {
[[ "$output" =~ "It looks like Dolt is not installed on your system" ]]
}
@test "git dolt errors on unknown commands" {
run git dolt nonsense
[ "$status" -eq 1 ]
[[ "$output" =~ "Unknown command" ]] || false
}
@test "git dolt prints usage information with no arguments" {
run git dolt
[[ "$output" =~ Usage ]] || false

View File

@@ -27,31 +27,38 @@ func main() {
if cmd == "link" {
remote := os.Args[2]
dirname := lastSegment(remote)
_, err := exec.Command("dolt", "clone", remote, "--insecure").Output()
check(err)
revision := currentRevision(dirname)
ptrFile, err := os.Create(fmt.Sprintf("%s.git-dolt", dirname))
check(err)
defer ptrFile.Close()
_, err = ptrFile.WriteString(fmt.Sprintf("version %d\nremote %s\nrevision %s\n", gitDoltVersion, remote, revision))
check(err)
giFile, err := os.OpenFile(".gitignore", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
check(err)
defer giFile.Close()
_, err = giFile.WriteString(fmt.Sprintf("%s\n", dirname))
check(err)
fmt.Printf("\nSuccess!\n\n")
fmt.Printf("* Dolt repository cloned to %s at revision %s\n", dirname, revision)
fmt.Printf("* Pointer file created at %s.git-dolt\n", dirname)
fmt.Printf("* %s added to .gitignore\n\nYou should git commit these results.\n", dirname)
link(remote)
return
}
die("Unknown command " + cmd)
}
func link(remote string) {
dirname := lastSegment(remote)
_, err := exec.Command("dolt", "clone", remote, "--insecure").Output()
check(err)
revision := currentRevision(dirname)
ptrFile, err := os.Create(fmt.Sprintf("%s.git-dolt", dirname))
check(err)
defer ptrFile.Close()
_, err = ptrFile.WriteString(fmt.Sprintf("version %d\nremote %s\nrevision %s\n", gitDoltVersion, remote, revision))
check(err)
giFile, err := os.OpenFile(".gitignore", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
check(err)
defer giFile.Close()
_, err = giFile.WriteString(fmt.Sprintf("%s\n", dirname))
check(err)
fmt.Printf("\nSuccess!\n\n")
fmt.Printf("* Dolt repository cloned to %s at revision %s\n", dirname, revision)
fmt.Printf("* Pointer file created at %s.git-dolt\n", dirname)
fmt.Printf("* %s added to .gitignore\n\nYou should git commit these results.\n", dirname)
}
var hashRegex = regexp.MustCompile(`[0-9a-v]{32}`)