X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=release.sh;h=247d8620e44c6263f9e92085c9dc0c446e14ac9c;hb=7b80cdb9faa1c21b5a6c2b70656df0dc859b6eab;hp=c29798ed17ea55d97352ac3ca2c77e7d737544af;hpb=bbb31346a108706660f3f4bbc355ff528bee36a3;p=pukiwiki%2Fpukiwiki_devel.git diff --git a/release.sh b/release.sh index c29798e..247d862 100755 --- a/release.sh +++ b/release.sh @@ -1,5 +1,5 @@ #!/bin/sh -# $Id: release.sh,v 1.19 2005/04/17 05:04:13 henoheno Exp $ +# $Id: release.sh,v 1.29 2009/03/22 14:15:01 henoheno Exp $ # $CVSKNIT_Id: release.sh,v 1.11 2004/05/28 14:26:24 henoheno Exp $ # Release automation script for PukiWiki # ========================================================== @@ -17,6 +17,8 @@ usage(){ warn " Options:" warn " --nopkg Suppress creating archive (Extract and chmod only)" warn " --norm --nopkg, and remove nothing (.cvsignore etc)" + warn " --co --norm, and use 'checkout' command instead of 'export'" + warn " --utf8 Create UTF-8 converted archive (EXPERIMENTAL)" warn " -z|--zip Create *.zip archive" warn " --move-dist Move *.ini.php => *.ini-dist.php" warn " --copy-dist Move, and Copy *.ini.php <= *.ini-dist.php" @@ -44,6 +46,7 @@ check_versiontag(){ [1-9].[0-9].[0-9] | [1-9].[0-9].[0-9][0-9] ) tag="r$1" ;; [1-9].[0-9].[0-9]_[a-z]* | [1-9].[0-9].[0-9][0-9]_[a-z]* ) tag="r$1" ;; [1-9].[0-9].[0-9]_[1-9] | [1-9].[0-9].[0-9][0-9]_[1-9] ) tag="r$1" ;; + [1-9].[0-9].[0-9]_[1-9]_[a-z]* | [1-9].[0-9].[0-9][0-9]_[1-9]_[a-z]* ) tag="r$1" ;; HEAD | r1_3_3_branch ) tag="$rel" ;; '' ) usage ; return 1 ;; * ) warn "Error: Invalid string: $1" ; usage ; return 1 ;; @@ -76,12 +79,14 @@ getopt(){ _arg=noarg case "$1" in '' ) echo 1 ;; -[hH]|--help ) echo _help _exit ;; - --debug ) echo _debug ;; - --nopkg ) echo _nopkg ;; - --norm|--noremove ) echo _noremove ;; - -z|--zip ) echo _zip ;; - --copy-dist ) echo _copy_dist ;; - --move-dist ) echo _move_dist ;; + --debug ) echo _debug 1 ;; + --nopkg ) echo _nopkg 1 ;; + --norm|--noremove ) echo _nopkg _noremove 1 ;; + --co|--checkout ) echo _nopkg _noremove _checkout 1 ;; + -z|--zip ) echo _zip 1 ;; + --ut|--utf|--utf8|--utf-8 ) echo _utf8 1 ;; + --copy-dist ) echo _copy_dist 1 ;; + --move-dist ) echo _move_dist 1 ;; -d ) echo _CVSROOT 2 ; _arg="$2" ;; -* ) warn "Error: Unknown option \"$1\"" ; return 1 ;; * ) echo OTHER ;; @@ -110,7 +115,7 @@ while [ $# -gt 0 ] ; do _CVSROOT) CVSROOT="$2" ;; - _* ) shift ; eval "_$ch"=on ;; + _* ) eval "_$ch"=on ;; * ) break 2 ;; esac done @@ -119,7 +124,40 @@ done # No argument if [ $# -eq 0 ] ; then usage ; exit ; fi -# Archiver check -------------------------------------------- +# Utility check --------------------------------------------- + +if [ "$__utf8" ] ; then + + # nkf + which nkf || err "nkf version 2.0 or later (UTF-8 enabled) not found" + nkf_version="` nkf -v 2>&1 | sed -e '/^Network Kanji Filter/!d' -e 's/.* Version \([1-9]\).*/\1/' `" + if [ "$nkf_version" = '1' -o "$nkf_version" = '0' ] ; then + err "nkf found but not seems 2.x (UTF-8 enabled) or later" + fi + + # encls.php + encls="./encls.php" + if [ ! -f "$encls" ] + then err "encls not found" + else + which php || err "php-cli not found" + encls="`pwd`/$encls" + fi + + convert(){ + for list in "$@" ; do + # NOTE: Specify '-E'(From EUC-JP) otherwise skin file will be collapsed + nkf -Ew "$list" > "$list.$$.tmp" && mv "$list.$$.tmp" "$list" && echo " $list" + done + } + convert_EUCJP2UTF8(){ + for list in "$@" ; do + # Very rough conversion! + #sed 's/EUC-JP/UTF-8/g' "$list" > "$list.$$.tmp" && mv "$list.$$.tmp" "$list" + sed 's#^//UTF-8:##' "$list" > "$list.$$.tmp" && mv "$list.$$.tmp" "$list" + done + } +fi > /dev/null if [ -z "$__zip" ] then @@ -132,20 +170,26 @@ fi > /dev/null # Argument check -------------------------------------------- rel="$1" -tag="` check_versiontag "$rel" `" +tag="` check_versiontag "$rel" `" || exit 1 pkg_dir="${mod}-${rel}" +if [ "$__utf8" ] ; then + pkg_dir="${pkg_dir}_utf8" +fi + # Export the module ----------------------------------------- test ! -d "$pkg_dir" || err "There's already a directory: $pkg_dir" -echo cvs -z3 -d "$CVSROOT" -q export -r "$tag" -d "$pkg_dir" "$mod" - cvs -z3 -d "$CVSROOT" -q export -r "$tag" -d "$pkg_dir" "$mod" +if [ -z "$__checkout" ] +then cmd="export" +else cmd="checkout" +fi -#echo cvs -z3 -d "$CVSROOT" -q co -r "$tag" -d "$pkg_dir" "$mod" -# cvs -z3 -d "$CVSROOT" -q co -r "$tag" -d "$pkg_dir" "$mod" +echo cvs -z3 -d "$CVSROOT" -q "$cmd" -r "$tag" -d "$pkg_dir" "$mod" + cvs -z3 -d "$CVSROOT" -q "$cmd" -r "$tag" -d "$pkg_dir" "$mod" -test -d "$pkg_dir" || err "There is'nt a directory: $pkg_dir" +test -d "$pkg_dir" || err "There isn't a directory: $pkg_dir" # Remove '.cvsignore' if exists ----------------------------- test -z "$__noremove" && { @@ -153,13 +197,44 @@ test -z "$__noremove" && { find "$pkg_dir" -type f -name '.cvsignore' | xargs rm -f } +# Conversion ------------------------------------------------ + +if [ "$__utf8" ] ; then + echo "Converting EUC-JP => UTF-8 ..." + find "$pkg_dir" -type f \( -name "*.txt" -or -name "*.php" -or -name "*.lng" -or -name "*.dat" -or -name "*.ref" \) | + while read line; do + convert "$line" + done + + # Replace 'EUC-JP' => 'UTF-8' + ( cd "$pkg_dir" && + convert_EUCJP2UTF8 lib/init.php skin/pukiwiki.skin*.php + ) + + # Filename encoded 'encoded-EUC-JP' to 'encoded-UTF-8' + echo "Renaming encoded-EUC-JP => encoded-UTF-8 ..." + ( cd "$pkg_dir" && + for dir in wiki wiki.en cache; do + ( cd "$dir" && + ls *.txt *.ref *.rel 2>/dev/null | while read line; do + target="`$encls "$line" 2>/dev/null`" || exit 1 + if [ "x$line" != "x$target" ] ; then + echo " " mv "$dir/$line" "$dir/$target" + mv "$line" "$target" || exit 1 + fi + done + ) || exit 1 + done + ) || err "stop." +fi + # chmod ----------------------------------------------------- chmod_pkg "$pkg_dir" # Create a package ------------------------------------------ -test ! -z "$__nopkg$__noremove" && exit 0 +test ! -z "$__nopkg" && exit 0 ( cd "$pkg_dir"