1

Antビルドスクリプトを使用してroot権限を確認するにはどうすればよいですか?私は次のようなシェルスクリプトタスクでそれをやってみました

<shellscript shell="bash">
    if [[ `whoami` != 'root' ]]; then
        echo "You need to be root to install ooplss";
        exit 1
    fi
</shellscript>

ただし、これによってスクリプトの実行が停止することはありません。

他のアイデアはありますか?

4

3 に答える 3

4

シェルスクリプトタスクは、 execタスクの拡張です。failonerrorスクリプトが失敗した場合にビルドプロセスを失敗させるように指定できるはずです。

failonerror:コマンドが失敗を通知する戻りコードで終了した場合は、ビルドプロセスを停止します。デフォルトはfalseです。

<shellscript shell="bash" failonerror="true">
    if [[ `whoami` != 'root' ]]; then
        echo "You need to be root to install ooplss";
        exit 1
    fi
</shellscript>

ただし、シェルスクリプトなしで実行できるはずです。以下はテストされていません:

<fail message="You need to be root to install ooplss">
 <condition>
   <not>
     <equals arg1="root" arg2="${user.name}"/>
   </not>
 </condition>
</fail>
于 2011-06-14T18:32:28.507 に答える
0

javaプロパティを確認できますuser.name

<target name="checkroot">
  <condition property="isroot">
    <equals arg1="${os.user}" arg2="root"/>
  </condition>
</target>
<target name="dostuff" depends="checkroot" unless="isroot">
...
</target>

ant 1.7以降、上記<scriptcondition>の代わりにスクリプトで何か賢いことをするために使用することもできます<equals>

于 2011-06-14T18:40:34.410 に答える
0

AntプラグインFlakaを使用したスト​​レートアプローチ=

<project xmlns:fl="antlib:it.haefelinger.flaka">
  <fl:when test=" '${user.name}'.toupper eq 'ROOT' ">
    <!-- your tasks go here.. -->
  </fl:when>
</project>
于 2011-06-14T19:58:26.347 に答える