Использую модуль pexpect для автозаполнения приглашений на ввод. Хочу написать скрипт, который автоматизирует работу ./build-key-pkcs12 (пакет OpenVPN).
import pexpect
import sys
gen = pexpect.spawn('./build-key-pkcs12 client2')
gen.expect('Country Name (2 letter code)*')
gen.sendline('\n')
gen.expect('State or Province Name*')
gen.sendline('\n')
gen.expect('Locality Name (eg, city)*')
gen.sendline('\n')
gen.expect('Organization Name (eg, company)*')
gen.sendline('\n')
gen.expect('Organizational Unit Name*')
gen.sendline('\n')
gen.expect('Common Name*')
gen.sendline('\n')
gen.expect('Email Address*')
gen.sendline('\n')
gen.expect('A challenge password*')
gen.sendline('\n')
gen.expect('An optional company name*')
gen.sendline('\n')
gen.expect('Sign the certificate?.*', timeout=2)
gen.sendline("y\n")
gen.expect('1 out of 1 certificate requests certified, commit?.*', timeout=2)
gen.sendline('y\r')
gen.expect('Enter Export Password')
gen.sendline('lalala')
gen.expect('Verifying - Enter Export Password')
gen.sendline('lalala')
gen.interact()
args:Подскажите пожалуйста, как исправить этот косяк, чувствую, что это может быть связано с переводами строк при запросе …:
searcher: searcher_re:
0: re.compile(“1 out of 1 certificate requests certified, commit?.*”)
buffer (last 100 chars):
before (last 100 chars):
y
after: pexpect.EOF
match: None
match_index: None
exitstatus: 0
flag_eof: True
pid: 25793
child_fd: 3
closed: False
timeout: 30
delimiter: pexpect.EOF
logfile: None
logfile_read: None
logfile_send: None
maxread: 2000
ignorecase: False
searchwindowsize: None
delaybeforesend: 0.05
delayafterclose: 0.1
delayafterterminate: 0.1
#
Certificate is to be certified until Nov 17 01:15:52 2019 GMT (3650 days)
Sign the certificate? :y
1 out of 1 certificate requests certified, commit? y
Write out database with 1 new entries
Data Base Updated
Enter Export Password: