Let's talk about Flex, AIR, ActionScript, ColdFusion and more    

最新 Flex 4 用一発更新ビルドシェルを更新してみた


前のエントリーで Cygwin で Flex SDK を更新・ビルドする方法を書きましたけど、なんか、Flex 4 の SVN 更新処理で失敗することがあるみたい...そして、やっぱりリビジョンが同じ場合はビルド処理は不要だよね、っつうことで一発更新ビルドシェルを更新してみました。

最初はチョチョイでできるかなと、思ってたけど
シェルのコマンドや使い方を調べるのに意外に時間食ったよ orz

「updateFlex」シェル
#!/bin/sh
# Flex SDK HOME
export FLEX_HOME=/cygdrive/f/Softs/Adobe/Flex4/ws/FlexSDK4
cd /
if [ ! -f revision.log ]; then
   echo "0" > revision.log
fi

if [ -f svn.log ]; then
   rm svn.log
fi

if [ -f svn_error.log ]; then
   rm svn_error.log
fi

svn_error=1
while [ $svn_error -eq 1 ];
do
   svn up $FLEX_HOME > svn.log 2> svn_error.log
   tail -n 1 svn.log | grep revision > svn_tail.log
   if [ -s svn_error.log ] || [ ! -s svn_tail.log ]; then
      echo svn error
      cat svn_error.log
      svn_error=1
   else
      svn_error=0
   fi
done


oldRevision=`cat revision.log`
echo "old revision = $oldRevision"

declare -i rpos
rpos=`tail svn_tail.log | awk 'END{print index($0,"revision")}'`+9
newRevision=`tail svn_tail.log | awk -v b="$rpos" 'END{print substr($0,b)}' | sed -e 's/\.//'`
echo "new revision = $newRevision"
if [ "$oldRevision" != "$newRevision" ]; then
   echo "Flex SDK was updated!"
   echo $newRevision > revision.log

   cd $FLEX_HOME
   source setup.sh
   ant -q main

else
   echo "it's a same revision (skip build)"
fi

ダウンロードはこちら「updateFlex.zip

まぁ、シェルのこと知らないおいらが作ったので、
不細工だったり至らないところもあると思うけど、
要件を満たしてるから OK っつうことで ^_^;

標準出力をファイルにリダイレクトするだけでなく、
画面(コンソール)にも出力したかったんだけど、
そういうのってできないのかなぁ??

あと、「もっと、こうしたらスマートだよ」みたいな
アドバイスがあったら、コメントくださいな (^o^)/


そ・れ・と、
インターネットでシェルスクリプト調べるといろいろ出てくるんだけどさぁ、オプションとかの説明ばっかで、肝心の使い方が分かるサンプル・コードが少ないこと。そして、その説明はどのサイトも同じだったり...(どっかの転記?)
オプションの一個一個にサンプルコードも書いてくれぇ、
って叫びたくなったよ。あと、パイプを絡めたサンプルも
あるとすっげぇ便利なのになぁ、と思った ^_^;


コメント
ふく's Gravatar >標準出力をファイルにリダイレクトするだけでなく、
>画面(コンソール)にも出力したかったんだけど、
>そういうのってできないのかなぁ??

UNIXのteeコマンドで如何ですか?
# 投稿者 ふく | 10/01/04 16:28
BlogCFC was created by Raymond Camden. This blog is running version 5.5.005.