ユーザー入力が必要な ant スクリプトがあります。ユーザーが正しい入力タイプを入力したことを確認し、そうでない場合は、正しいものを入力するように求めます。
<input message="secure-input:" addproperty="the.password" >
</input>
入力が空白かどうかを確認する必要があります。その後、再入力するように求めます。
アリ入力タスクで可能ですか?
ほとんどの条件節では、条件が満たされない場合、せいぜいスクリプトを失敗させることができます。ユーザーからいくつかの入力を収集していると想像しているので、ユーザーが空のパスワードを入力した場合に失敗すると、すべてをもう一度入力する必要があるため、使い勝手が良くない可能性があります...
さらに、空の文字列をテストするだけでは検証が不十分に思えますが、ユーザーが大量のスペースを送信した場合はどうなりますか?
私の(確かにハックっぽい)提案は次のとおりです:
<target name="askPassword">
<local name="passwordToValidate"/>
<input message="secure-input:" addproperty="passwordToValidate"/>
<script language="javascript">
<![CDATA[
passwordToValidate = project.getProperty("passwordToValidate");
//You can add more validations here...
if(passwordToValidate.isEmpty()){
println("The password cannot be empty.");
project.executeTarget('askPassword');
}
]]>
</script>
<property name="the.password" value="${passwordToValidate}"/>
</target>
したがって、ハイライト:
私の2セント。
条件タスクを使用して入力が空でないかどうかを確認できますが、antcontrib を使用して if/else を追加し、ユーザーに適切なメッセージを表示することもできます。
<if>
<not>
<length string="${the.password}" trim="true" when="greater" length="0" />
</not>
</if>
<then>
<echo>Your password is empty!</echo>
</then>
条件-condition
タスクを見てください。