#!/bin/sh
mkdir -p /tmp/logs/ibus-chewing
#################
# compile flags #
#################
export CFLAGS="-march=i486 -mtune=i686 -Os -pipe"
export CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe"
export LDFLAGS="-Wl,-O1"
#################
# load packages #
#################
echo Fetching build essentials ...
tce-load -w cmake compiletc gettext-dev git glib2-dev glibc_gconv gob2 gtk2-dev ibus-dev libX11-dev libchewing-dev squashfs-tools \
1> /tmp/logs/ibus-chewing/tce-load-w1 2> /tmp/logs/ibus-chewing/tce-load-w2
echo Loading build essentials ...
tce-load -i cmake compiletc gettext-dev git glib2-dev glibc_gconv gob2 gtk2-dev ibus-dev libX11-dev libchewing-dev squashfs-tools \
1> /tmp/logs/ibus-chewing/tce-load-i1 2> /tmp/logs/ibus-chewing/tce-load-i2
locale | grep -q "Cannot set" && echo Error. Please load your \"mylocale.tcz\" before continuing
##########################
# get source and compile #
##########################
cd /tmp && pwd && git clone https://github.com/definite/ibus-chewing.git
cd ibus-chewing && echo Updating modules ...
wget https://fedorahosted.org/releases/c/m/cmake-fedora/cmake-fedora-modules-only-latest.tar.gz
tar zxvf cmake-fedora-modules-only-latest.tar.gz
echo Configuring ...
cmake . -DCMAKE_INSTALL_PREFIX='/usr/local' -DLIBEXEC_DIR='/usr/local/lib/ibus-chewing' -DDATA_DIR='/usr/local/share' -DPRJ_DOC_DIR='/usr/local/share/doc/ibus-chewing' -DPRJ_DATA_DIR='/usr/local/share/ibus-chewing'
make -j
make DESTDIR=/tmp/ibus-chewing-base install
cd /tmp/ibus-chewing-base

# strip
pwd
echo stripping ...
find . -exec file {} + | grep "not stripped" | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || find . -exec file {} + | grep "not stripped" | cut -f 1 -d : | xargs strip -g 2> /dev/null

## tce.installedtce.installed
mkdir -p usr/local/tce.installed/
cat > usr/local/tce.installed/ibus-chewing << EOF1
#!/bin/sh
/usr/local/bin/gdk-pixbuf-query-loaders --update-cache
/usr/local/bin/gtk-query-immodules-2.0 > /usr/local/etc/gtk-2.0/gtk.immodules
/usr/local/bin/gtk-query-immodules-2.0 --update-cache
/usr/local/bin/gtk-query-immodules-3.0 > /usr/local/etc/gtk-3.0/gtk.immodules
/usr/local/bin/gtk-query-immodules-3.0 --update-cache
for TCUSER in \`busybox ls /home\`; do
  mkdir -p /home/\$TCUSER/.X.d
  touch /home/\$TCUSER/.X.d/ibus-chewing
  grep -q "ibus-daemon" /home/\$TCUSER/.X.d/ibus-chewing || {
    echo [ \\"\\\`cat /etc/sysconfig/desktop\\\`\\" = \\"openbox\\" ] \\&\\& { >> /home/\$TCUSER/.X.d/ibus-chewing
    echo '  'ibus-daemon -drx -n openbox \\& >> /home/\$TCUSER/.X.d/ibus-chewing
    echo } \|\| { >> /home/\$TCUSER/.X.d/ibus-chewing
    echo '  'ibus-daemon -drx \\& >> /home/\$TCUSER/.X.d/ibus-chewing
    echo } >> /home/\$TCUSER/.X.d/ibus-chewing
  } 
  grep -q "ibus engine chewing" /home/\$TCUSER/.X.d/ibus-chewing || echo ibus engine chewing \& >> /home/\$TCUSER/.X.d/ibus-chewing
  grep -q "gsettings" /home/\$TCUSER/.X.d/ibus-chewing || echo /usr/local/bin/gsettings set org.gnome.desktop.input-sources sources [\\(\\'ibus\\',\\'chewing\\'\\)] \& >> /home/\$TCUSER/.X.d/ibus-chewing
  chmod 755 /home/\$TCUSER/.X.d/ibus-chewing
  chown \$TCUSER:staff /home/\$TCUSER/.X.d/ibus-chewing
done
EOF1
chmod -R 775 usr/local/tce.installed/

## doc AUTHORS COPYING LICENCE etc.
[ ! "`find . -name doc -type d`" = '' ] && {
  echo ibus-chewing-doc
  for file in `find . -name doc -type d`; do
    path=${file#./}
    path=${path%/*}
    mkdir -p /tmp/ibus-chewing-doc/$path
    mv $file /tmp/ibus-chewing-doc/$path
  done 2> /dev/null
}

## locale *.mo
[ ! "`find . -name *.mo`" = '' ] && {
  echo ibus-chewing-locale
  for file in `find . -name *.mo`; do
    path=${file#./}
    path=${path%/*}
    mkdir -p /tmp/ibus-chewing-locale/$path
    mv $file /tmp/ibus-chewing-locale/$path
  done 2> /dev/null
}

## adjust .desktop file
for desktop in `find . -name *.desktop`; do
  echo X-FullPathIcon=/usr/local/share/ibus-chewing/icons/ibus-setup-chewing.png >> $desktop
  sed -i '/^[[:blank:]]*$/d' $desktop
done

## remove empty directories
echo remove empty directories
find . -depth -type d -exec rmdir {} + 2> /dev/null
cd /tmp
sudo chown -R root:root ibus-chewing-base ibus-chewing-doc ibus-chewing-locale
sudo chown -R root:staff ibus-chewing-base/usr/local/tce.installed/

## output
sudo rm -fr /tmp/output 2> /dev/null
mkdir /tmp/output

## mksquashfs
mksquashfs /tmp/ibus-chewing-base /tmp/output/ibus-chewing.tcz 2> /dev/null
mksquashfs /tmp/ibus-chewing-doc /tmp/output/ibus-chewing-doc.tcz 2> /dev/null
mksquashfs /tmp/ibus-chewing-locale /tmp/output/ibus-chewing-locale.tcz 2> /dev/null
cd /tmp/output
cat > ibus-chewing.tcz.dep << EOF2
gtk2.tcz
ibus.tcz
libXcomposite.tcz
libXcursor.tcz
libXinerama.tcz
libXrandr.tcz
libchewing.tcz
EOF2
echo ibus-chewing.tcz > ibus-chewing-locale.tcz.dep
