#!/usr/bin/expect set timeout 5 spawn dolt sql expect { -re "> " { send "create database mydb;\r"; } timeout { exit 1; } failed { exit 1; } } expect { -re "> " { send "use mydb;\r"; } timeout { exit 1; } failed { exit 1; } } expect { -re ".*mydb.*/.*main.*> " { send "create table tbl (i int);\r"; } timeout { exit 1; } failed { exit 1; } } # Dirty workspace should show in prompt as a "*" before the ">" # (all the .* instances here are to account for ansi colors chars. expect { -re ".*mydb.*/.*main.*\\*.*> " { send "call dolt_commit('-Am', 'msg');\r"; } timeout { exit 1; } failed { exit 1; } } expect { -re ".*mydb.*/.*main.*> " { send "call dolt_checkout('-b','other','HEAD');\r"; } timeout { exit 1; } failed { exit 1; } } expect { -re ".*mydb.*/.*main.*> " { send "use mysql;\r"; } timeout { exit 1; } failed { exit 1; } } # using a non dolt db should result in a prompt without a slash. The brackets # are required to get expect to properly parse this regex. expect { -re {.*mysql[^\\/]*> } { send "exit;\r"; } timeout { exit 1; } failed { exit 1; } } expect eof