まさはる's Weblog

まさはる's Weblog
Macintoshとオーディオの話題

2003年8月 3日

ホームページをBlogで更新(その9)

Category : Web / Posted at 2003年8月 3日 15:58

● 生成されたhtmlファイルの修正
 Movable Typeで作られたhtmlファイルには、随所にアドレスを示す...href="http://localhost/~user-name/myblog/...という記述があり、このままプロバイダの自分の領域にアップロードするわけにはいきません。そこで、シェルスクリプトにより、全てのファイルを一度に修正できるようにします。

● アドレスを置き換えるスクリプト
#!/bin/bash
# ********************
# replace.sh
# ********************
sed 's;http://localhost/~user-name/myblog/;http://homepage-url/;g' $1 > $1.new
rm $1
mv $1.new $1
echo $1 is replaced.

● 上のスクリプトを呼び出して全てのhtmlファイル等のアドレスを置き換えるスクリプト
#!/bin/bash
# ********************
# myblog.sh
# ********************
cp -r ~/Sites/myblog ~/Documents/
find ~/Documents/myblog -name '*.html' -exec replace.sh {} \;
find ~/Documents/myblog -name '*.xml' -exec replace.sh {} \;
find ~/Documents/myblog -name '*.rdf' -exec replace.sh {} \;

 この例の場合は~/Documents/myblogに、置き換えられた*.html,*.xml,*.rdfファイルが作られますので、このディレクトリの中のファイル等をそっくりそのままアップロードすればOKです。

 上記のシェルスクリプトの場合、置き換える必要のないファイルも更新しているので、ちょっと改良しました。

● アドレスを置き換えるスクリプト

#!/bin/bash
# ********************
# replace.sh
# ********************
if [ $(grep -c http://localhost/~user-name/myblog/ $1) = 0 ]
then
    echo $1 is no replaced.
else
    sed 's;http://localhost/~user-name/myblog/;http://homepage-url/;g' $1 > $1.new
    rm $1
    mv $1.new $1
    echo $1 is replaced.
fi

● 上のスクリプトを呼び出して全てのhtmlファイル等のアドレスを置き換えるスクリプト
#!/bin/bash
# ********************
# myblog.sh
# ********************
rsync -vru ~/Sites/myblog/ ~/Documents/myblog/
find ~/Documents/myblog -name '*.html' -exec replace.sh {} \;
find ~/Documents/myblog -name '*.xml' -exec replace.sh {} \;
find ~/Documents/myblog -name '*.rdf' -exec replace.sh {} \;

 これで、更新されていないファイルには手を加えないので、不要なアップロードが行われなくなりました。

このページのトップに戻る