108 lines
2.1 KiB
Bash
Executable file
108 lines
2.1 KiB
Bash
Executable file
#!/bin/bash
|
|
# zipjs
|
|
#
|
|
#{{IS_NOTE
|
|
# Purpose:
|
|
# Copy and compress Javascript
|
|
# Description:
|
|
#
|
|
# History:
|
|
# Thu Jan 26 14:17:26 2006, Created by tomyeh
|
|
#}}IS_NOTE
|
|
#
|
|
#Copyright (C) 2006 Potix Corporation. All Rights Reserved.
|
|
#
|
|
#{{IS_RIGHT
|
|
# This program is distributed under GPL Version 2.0 in the hope that
|
|
# it will be useful, but WITHOUT ANY WARRANTY.
|
|
#}}IS_RIGHT
|
|
#
|
|
if [ $# != 3 ] ; then
|
|
echo "Usage:"
|
|
echo " zipjs jarfl srcdir dstdir"
|
|
echo
|
|
echo "All files are copied from one directory to another."
|
|
echo "The JavaScript files are compressed during copying."
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d "$2" ] ; then #nothing to copy
|
|
exit 0
|
|
fi
|
|
|
|
jarfl="$1"
|
|
if [ "${jarfl#/}" = "$jarfl" ] ; then
|
|
jarfl="$(pwd)/$jarfl"
|
|
fi
|
|
dstdir="$3"
|
|
if [ "${dstdir#/}" = "$dstdir" ] ; then
|
|
dstdir="$(pwd)/$dstdir"
|
|
fi
|
|
|
|
if [ ! -f "$jarfl" ] ; then
|
|
echo "$jarfl not found"
|
|
exit 1
|
|
fi
|
|
|
|
#convert jarfl to window format
|
|
if [ "$TERM" = "cygwin" ] ; then
|
|
jarfl=$(cygpath -wa $jarfl)
|
|
fi
|
|
|
|
failed=false
|
|
|
|
function zips
|
|
{
|
|
local dst="$1"
|
|
local parent=$2
|
|
for f in *; do
|
|
if [ "$f" != "CVS" ] ; then
|
|
dstfl=$dst/$f
|
|
if [ -d "$f" ] ; then
|
|
(
|
|
cd "$f"
|
|
zips "$dstfl" "$f"
|
|
)
|
|
elif [ -f "$f" ] ; then
|
|
mkdir -p "$dst"
|
|
|
|
if [ ! -f "$dstfl" ] || [ "$f" -nt "$dstfl" ] ; then
|
|
local cvt=false
|
|
if [ "${f%.js}" != "$f" ] ; then
|
|
cvt=true
|
|
fi
|
|
if [ $cvt = true ] ; then
|
|
echo Compress $f
|
|
if [ "$TERM" = "cygwin" ] ; then
|
|
dstfl=$(cygpath -wa $dstfl)
|
|
fi
|
|
java -jar $jarfl --charset UTF-8 "$f" -o "$dstfl" 2>&1
|
|
if [ $? != 0 ] ; then
|
|
echo "Warning failed to compress, use copy instead: $f"
|
|
cvt=false
|
|
else
|
|
cp -p ./"$f" $dst/${f%.js}.org.js
|
|
#always make a copy so we can use them if we want to debug them
|
|
fi
|
|
fi
|
|
if [ $cvt = false ] ; then
|
|
echo copy $f
|
|
cp -p ./"$f" $dst
|
|
#$f might starts with -
|
|
if [ $? != 0 ] ; then
|
|
echo "Failed:"
|
|
echo " cp -p $f $dst"
|
|
failed=true
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
cd ..
|
|
}
|
|
cd $2
|
|
zips "$dstdir"
|
|
if [ $failed = true ] ; then
|
|
exit 1
|
|
fi
|