forked from M-Labs/artiq
afws_client: improve UX of common build errors
This commit is contained in:
parent
c1474c134a
commit
757c00b0fe
|
@ -184,29 +184,10 @@ def main():
|
||||||
act_get_json.add_argument("-f", "--force", action="store_true", help="overwrite file if it already exists")
|
act_get_json.add_argument("-f", "--force", action="store_true", help="overwrite file if it already exists")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.action == "passwd":
|
|
||||||
password = getpass("Current password: ")
|
|
||||||
else:
|
|
||||||
password = getpass()
|
|
||||||
|
|
||||||
client = Client(args.server, args.port, args.cert)
|
client = Client(args.server, args.port, args.cert)
|
||||||
try:
|
try:
|
||||||
if not client.login(args.username, password):
|
if args.action == "build":
|
||||||
print("Login failed")
|
# do this before user enters password so errors are reported without unnecessary user action
|
||||||
sys.exit(1)
|
|
||||||
print("Logged in successfully.")
|
|
||||||
if args.action == "passwd":
|
|
||||||
print("Password must made of alphanumeric characters (a-z, A-Z, 0-9) and be at least 8 characters long.")
|
|
||||||
password = getpass("New password: ")
|
|
||||||
password_confirm = getpass("New password (again): ")
|
|
||||||
while password != password_confirm:
|
|
||||||
print("Passwords do not match")
|
|
||||||
password = getpass("New password: ")
|
|
||||||
password_confirm = getpass("New password (again): ")
|
|
||||||
if not client.passwd(password):
|
|
||||||
print("Failed to change password")
|
|
||||||
sys.exit(1)
|
|
||||||
elif args.action == "build":
|
|
||||||
try:
|
try:
|
||||||
os.mkdir(args.directory)
|
os.mkdir(args.directory)
|
||||||
except FileExistsError:
|
except FileExistsError:
|
||||||
|
@ -229,6 +210,29 @@ def main():
|
||||||
if rev is None:
|
if rev is None:
|
||||||
print("Unable to determine currently installed ARTIQ revision. Specify manually using --rev.")
|
print("Unable to determine currently installed ARTIQ revision. Specify manually using --rev.")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
if args.action == "passwd":
|
||||||
|
password = getpass("Current password: ")
|
||||||
|
else:
|
||||||
|
password = getpass()
|
||||||
|
if not client.login(args.username, password):
|
||||||
|
print("Login failed")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
print("Logged in successfully.")
|
||||||
|
if args.action == "passwd":
|
||||||
|
print("Password must made of alphanumeric characters (a-z, A-Z, 0-9) and be at least 8 characters long.")
|
||||||
|
password = getpass("New password: ")
|
||||||
|
password_confirm = getpass("New password (again): ")
|
||||||
|
while password != password_confirm:
|
||||||
|
print("Passwords do not match")
|
||||||
|
password = getpass("New password: ")
|
||||||
|
password_confirm = getpass("New password (again): ")
|
||||||
|
if not client.passwd(password):
|
||||||
|
print("Failed to change password")
|
||||||
|
sys.exit(1)
|
||||||
|
elif args.action == "build":
|
||||||
|
# build dir and version variables set up above
|
||||||
result, contents = client.build(major_ver, rev, args.variant, args.log, args.experimental)
|
result, contents = client.build(major_ver, rev, args.variant, args.log, args.experimental)
|
||||||
if result != "OK":
|
if result != "OK":
|
||||||
if result == "UNAUTHORIZED":
|
if result == "UNAUTHORIZED":
|
||||||
|
|
Loading…
Reference in New Issue