Phing - 将密码从shell脚本传递到svn

时间:2015-03-25 15:12:00

标签: php bash svn pear phing

我不希望我的Phing部署脚本以明文形式回显输入的密码,因此我尝试创建一个读取密码而不显示输入字符的shell脚本。

我的脚本如下所示:

#!/bin/bash
read -s -p "" password;
echo "$password" 

(顺便说一下:这个解决方案归功于有人在Phing的票务跟踪器上发表评论:https://www.phing.info/trac/ticket/885

如果我直接从命令行调用它,这样可以正常工作:

svn up --username myusername --password `/bin/bash /path/to/script/getpassword.sh`

如果密码不包含特殊字符,它也可以在Phing内部使用。奇怪的是,如果我输入的密码恰好包含一个哈希(#)符号,则会导致svn身份验证错误。我无法从命令行重现此行为,如上例所示。

这里是Phing部分:

    <propertyprompt propertyname="svn.user" prompttext="Please tell me your svn username:"/>
    <echo>"Please tell me your svn password:[]</echo>
    <exec command="sh ${application.startdir}/path/to/script/getpassword.sh" outputProperty="svn.pass" />

    <svnupdate
       svnpath="/usr/bin/svn"
       username="${svn.user}"
       password="${svn.pass}"
       nocache="true"
       todir="${path-checkout}"/>

有没有人知道这个问题可能是什么原因?我浏览了PEAR/pear/php/phing/tasks/ext/svn中的来源,但没有发现任何可疑的内容。

提前感谢任何建议!

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用echo -n来打印尾部换行符?