tuya-ipc-terminal/tuya_auth_login.exp aktualisiert

This commit is contained in:
admin 2025-10-13 17:01:23 +00:00
parent 47a46209ae
commit 0d0e466ff3

View File

@ -1,39 +1,41 @@
#!/usr/bin/expect -f #!/usr/bin/expect -f
# Check if config directory exists # Check if the config directory already exists.
set config_dir "/config/.tuya-data" set config_dir "/config/.tuya-data"
if { [file isdirectory $config_dir] } { if { [file isdirectory $config_dir] } {
puts "Skipping authentication: Configuration directory already exists." puts "Skipping authentication: Configuration directory '$config_dir' already exists."
exit 0 exit 0
} }
puts "Configuration directory not found. Proceeding with email/password authentication..." puts "Configuration directory not found. Proceeding with authentication..."
set timeout 30 set timeout 30
# Read inputs # Read the region from the first line of standard input.
gets stdin region gets stdin region
if { [eof stdin] || $region eq "" } { if { [eof stdin] || $region eq "" } {
puts stderr "Error: Could not read region from stdin." puts stderr "Error: Could not read region from stdin or region is empty."
exit 1 exit 1
} }
# Read the email from the second line of standard input.
gets stdin email gets stdin email
if { [eof stdin] || $email eq "" } { if { [eof stdin] || $email eq "" } {
puts stderr "Error: Could not read email from stdin." puts stderr "Error: Could not read email from stdin or email is empty."
exit 1 exit 1
} }
# Read the password from the third line of standard input.
gets stdin password gets stdin password
if { [eof stdin] || $password eq "" } { if { [eof stdin] || $password eq "" } {
puts stderr "Error: Could not read password from stdin." puts stderr "Error: Could not read password from stdin or password is empty."
exit 1 exit 1
} }
# Start authentication without --qr flag # Spawn the tuya-ipc-terminal command WITH --password flag
spawn tuya-ipc-terminal auth add $region $email spawn tuya-ipc-terminal auth add $region $email --password $password
# Handle different prompts # Handle password prompt
expect { expect {
"Password:" { "Password:" {
send "$password\r" send "$password\r"
@ -43,11 +45,22 @@ expect {
send "$password\r" send "$password\r"
exp_continue exp_continue
} }
"Please enter your password:" {
send "$password\r"
exp_continue
}
"Authentication successful" { "Authentication successful" {
puts "Login successful!" puts "Authentication completed successfully!"
}
"Login successful" {
puts "Login completed successfully!"
}
"Invalid credentials" {
puts stderr "Authentication failed: Invalid credentials"
exit 1
} }
"Login failed" { "Login failed" {
puts stderr "Authentication failed - check credentials" puts stderr "Authentication failed: Login failed"
exit 1 exit 1
} }
timeout { timeout {