OpenHarmony开发者论坛

标题: ohpm publish xxx.har 发布第三方库,无法自动化发布 [打印本页]

作者: xiehui    时间: 2024-5-16 19:27
标题: ohpm publish xxx.har 发布第三方库,无法自动化发布
【问题描述】
发布第三方库需求部署jenkins上
ohpm publish xxx.har 需要输入密码,如何自动输入密码或者免密发布


手动发布,正常上传
(, 下载次数: 1)

自动化脚本输入密码,报错:
(, 下载次数: 0)


自动上传脚本:
output, error = subprocess.run(["ohpm", "publish", har_file], input="abcd\n", text=True)


作者: xiehui    时间: 2024-5-17 10:09
或者使用这个脚本也不行
  1. import pexpect

  2. password_key = '.*assphrase of the private ke.*'
  3. password = "abcd"
  4. command = f'ohpm  publish /xxx/xxx/xxx.har'

  5. execute = pexpect.spawn(command)
  6. execute.expect(password_key)
  7. execute.sendline(password)
  8. execute.expect(pexpect.EOF)
复制代码

作者: 椰青    时间: 2024-5-22 09:05
由于公开仓推包后是所有用户都能下载使用的,所以当前并不建议使用自动化的方式进行推包

如果确实有自动化推包的需求,可以尝试在输入密钥时,一个一个字符输入,每个字符输入的间隔穿插1s的等待,让程序能够正确读取到密码

  1. execute.expect(password_key)
  2. sleep 1
  3. execute.sendline(a)
  4. sleep 1
  5. execute.sendline(b)
  6. sleep 1
  7. execute.sendline(c)
  8. sleep 1
  9. execute.sendline(d)
  10. sleep 1
复制代码

作者: xiehui    时间: 2024-5-22 16:08
回复 椰青: 嗯嗯,谢谢,我已经解决了,我也发现要sleep了,不过没有所以python模块
  1. #!/usr/bin/expect

  2. set har_file [lindex $argv 0]
  3. set passwd  [lindex $argv 1]

  4. #spawn ohpm  publish
  5. spawn ohpm  publish $har_file
  6. expect "*what is your passphrase of the private key:*"
  7. send $passwd
  8. sleep 2
  9. send "\r"
  10. sleep 10
  11. send "exit\r"
  12. expect eof
复制代码


作者: lord_voldemort    时间: 2024-8-1 16:38
回复 椰青: 能给一份详细的吗?我发现Python版本的不行,楼下shell的可以
作者: 椰青    时间: 2024-8-5 09:10
回复 lord_voldemort: python我也不会哦,这里我只是给出一个解决问题的方案(输入密码之间需要停顿),具体的实现脚本还需要你自己去写下
作者: lord_voldemort    时间: 2024-8-16 16:25
发现了一种新的方式AccessToken,可以跳过输入密码




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5