#!/bin/sh
# test we are root
if [ "$(id -u)" != "0" ]; then
   echo "run as root now exitting"
   exit 1
fi

# build order is libfm-extra-dev menu-cache libfm then pcmanfm
export CFLAGS="-march=armv8-a+crc -mtune=cortex-a72 -Os -pipe" 
export CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a72 -Os -pipe \
-fno-exceptions -fno-rtti"

P=pcmanfm
V=1.3.1
SRC=$P-$V
USER=`cat /etc/sysconfig/tcuser`

LIST="libfm-dev shared-mime-info desktop-file-utils libX11-dev pango-dev \
gdk-pixbuf-dev atk-dev"
for Z in $LIST
    do
    su -c "tce-load -i $Z" $USER
done

cd /tmp
su -c "/usr/local/bin/wget -nc --no-check-certificate \
https://downloads.sourceforge.net/$P/$SRC.tar.xz   "  $USER
mkdir $P
xz -d $P*xz && tar xvf $P*tar
cd $SRC
./configure --prefix=/usr/local --sysconfdir=/etc --with-gtk=2
make -j5  # takes seconds
make install-strip DESTDIR=/tmp/$P
cd /tmp

# locale
#########
mkdir -p $P-locale/usr/local/share
mv $P/usr/local/share/locale $P-locale/usr/local/share

# no doc
#####
rm -rf $P/usr/local/share/man 

# no dev
#####
rm -rf $P/usr/local/include
rm -rf $P/usr/local/lib

# main
#####
mkdir -p $P/usr/local/share/pixmaps
ICON=/tmp/tcloop/adwaita-icon-theme/usr/local/share/icons/Adwaita/48x48/apps/system-file-manager-symbolic.symbolic.png
cp $ICON $P/usr/local/share/pixmaps/pcmanfm.png

APP=$P/usr/local/share/applications/$P.desktop
echo 'X-FullPathIcon=/usr/local/share/pixmaps/pcmanfm.png' >> $APP

# gvfs not compiled into libfm so remove its GUI
rm -rf $P/usr/local/share/$P/ui/connect.ui

mkdir -p $P/usr/local/bin
echo '#!/bin/sh
sudo update-desktop-database /usr/local/share/applications/
sudo update-mime-database /usr/local/share/mime
' > $P/usr/local/bin/update-desktops
chmod 755 $P/usr/local/bin/update-desktops

# create template
##################
mkdir -p $P/usr/local/share/$P
echo 'file:///home/tc/Downloads Downloads
file:///home/tc/.config .config
file:///home/tc/.local .local ' > $P/usr/local/share/$P/.gtk-bookmarks

# tce.install
#############
mkdir -p $P/usr/local/tce.installed
echo '#!/bin/sh
# create bookmarks if missing
USER=`cat /etc/sysconfig/tcuser`
LOOP=/tmp/tcloop/pcmanfm/usr/local/share/pcmanfm/.gtk-bookmarks
HOME=/home/$USER
[ -f $HOME/.gtk-bookmarks ] ||  cp $LOOP $HOME
chown $USER:staff $HOME/.gtk-bookmarks
chmod 644 $HOME/.gtk-bookmarks

# assist mime handling
update-desktop-database /usr/local/share/applications/
update-mime-database /usr/local/share/mime
' > $P/usr/local/tce.installed/$P
chown -R root:staff $P/usr/local/tce.installed
chmod -R 775 $P/usr/local/tce.installed

# TCZ them
###########
LIST="$P $P-locale "
for Z in $LIST
do
	mksquashfs $Z $Z.tcz
	md5sum $Z.tcz > $Z.tcz.md5.txt
	cd $Z
	find usr -not -type d > /tmp/$Z.tcz.list
        find etc -not -type d >> /tmp/$Z.tcz.list
        sed 's|usr|/usr|g' -i /tmp/$Z.tcz.list
        sed 's|etc|/etc|g' -i /tmp/$Z.tcz.list
	cd /tmp
done

ls -hal

echo 'Title:          pcmanfm-locale.tcz
Description:    locales for pcmanfm
Version:        1.3.1
Author:         many see doc TCE for AUTHORS
Original-site:  https://downloads.sourceforge.net/pcmanfm
Copying-policy: GPL v2
Size:           324K
Extension_by:   aus9
Tags:           locale file manager
Comments:       locales untested by me

Change-log:     2020/09/28 v 1.3.1 for 12x
Current:        2020/09/28     ' > $P-locale.tcz.info

echo 'Title:          pcmanfm.tcz
Description:    Graphical File Manager
Version:        1.3.1
Author:         many see doc TCE for AUTHORS
Original-site:  https://downloads.sourceforge.net/pcmanfm
Copying-policy: GPL v2
Size:           100K
Extension_by:   aus9
Tags:           file manager gtk2
Comments:       Warning: all partitions may be automounted  read only
                but no umount in this app. Use the mount tool to un-mount.

                Config will auto-create at ~/.config/pcmanfm/default/pcmanfm.conf
                Original /etc/xdg/pcmanfm/pcmanfm.conf

                Change by pulldown Edit -> Preferences.
                Where you can change off Single click if you prefer, or others etc
                If pcmanfm run in desktop mode, other preferences can be activated
                see   https://tinyurl.com/y3ouvb94

                Bookmarks at ~/.gtk-bookmarks

                gvfs and trash can support disabled. pcmanfm has trashcan/network
                settings but do not try to use please.

                Read libfm please.

                Open apps with (context menu RH click for right mouse user)
                ##############
                mime types include txt mp3 mp4 pdf html and so on
                On first load, pcmanfm attempts to update some mimes
                If you load a TCE after pcmanfm, run
                $ update-desktops
                No need to restart pcmanfm for new mimes to appear,
                subject to mimetypes listed in new TCE desktop file

                update-desktops was added to pcmanfm

Change-log:     2020/09/28 v 1.3.1 for 12x
Current:        2020/09/28   ' > $P.tcz.info

echo 'man-db.tcz ' > $P-doc.tcz.dep
echo 'pcmanfm.tcz ' > $P-locale.tcz.dep
echo 'libfm.tcz
menu-cache.tcz
libexif.tcz
gtk2.tcz
shared-mime-info.tcz
desktop-file-utils.tcz ' > $P.tcz.dep

