3f39ba8767
added support for the new PROMPT_TEXT data type id. it is simply treated like any other TEXT type for this application. added a hiddden progress bar below the main text body that will only kick in when it detects a string of the PROG/PROG_LAST data types. refactored "halt" to "yield" on the client's internal command. also refactored "text_settings" to "theme" on the json config file. the config file name will now also include the major version number as a way to verify compatibility as the client is updated. changed the client's versioning system to a 2 number system. more info about this new system was edited into the README.md file. synced the type_id and async_id values with MRCI host. added support for the new MRCI host 4 number versioning system. this client will only care about the tcp_rev part of this new system for now. any changes to the hosts' core commands shouldn't affect compatibility with this client.
220 lines
11 KiB
Bash
220 lines
11 KiB
Bash
#!/bin/sh
|
|
|
|
qt_dir="$1"
|
|
installer_file="$2"
|
|
|
|
src_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
bin_name="cmdr"
|
|
app_version="3.0"
|
|
app_name="Cmdr"
|
|
install_dir="/opt/$bin_name"
|
|
bin_dir="/usr/bin"
|
|
tmp_dir="$HOME/.cache/cmdr_build"
|
|
|
|
if [ ! -d "$qt_dir" ]; then
|
|
|
|
echo "a valid path to Qt was not provided, falling back to the default: /usr/lib/x86_64-linux-gnu/qt5/bin"
|
|
|
|
qt_dir="/usr/lib/x86_64-linux-gnu/qt5/bin"
|
|
|
|
else
|
|
|
|
PATH=$qt_dir:$PATH
|
|
|
|
fi
|
|
|
|
if [ "$installer_file" = "" ]; then
|
|
|
|
installer_file="$src_dir/$bin_name-$app_version.run"
|
|
|
|
fi
|
|
|
|
if [ -d "$tmp_dir" ]; then
|
|
|
|
rm -rf $tmp_dir
|
|
|
|
fi
|
|
|
|
if [ $? -eq 0 -a -d "$qt_dir" ]; then
|
|
|
|
mkdir -vp $tmp_dir
|
|
cp -r $src_dir/. $tmp_dir
|
|
cd $tmp_dir
|
|
qmake -config release
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
make
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
mkdir -v ./build
|
|
mkdir -v ./build/lib
|
|
mkdir -v ./build/platforms
|
|
ldd ./$bin_name | grep "libQt" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ./build/lib
|
|
ldd ./$bin_name | grep "libicu" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ./build/lib
|
|
ldd ./$bin_name | grep "libssl" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ./build/lib
|
|
ldd ./$bin_name | grep "libcrypto" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ./build/lib
|
|
ldd ./$bin_name | grep "libGL.so" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ./build/lib
|
|
ldd ./$bin_name | grep "libpcre16.so" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ./build/lib
|
|
ldd ./$bin_name | grep "libpcre.so" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ./build/lib
|
|
mv -v ./$bin_name ./build/$bin_name
|
|
cp -v $qt_dir/../plugins/platforms/libqxcb.so ./build/platforms/libqxcb.so
|
|
cp -rfv ./icons ./build
|
|
cp -rfv $qt_dir/../plugins/xcbglintegrations ./build
|
|
|
|
if [ "$qt_dir" = "/usr/lib/x86_64-linux-gnu/qt5/bin" ]; then
|
|
|
|
cp -fv $qt_dir/../../libQt5DBus.so.5 ./build/lib/libQt5DBus.so.5
|
|
cp -fv $qt_dir/../../libQt5XcbQpa.so.5 ./build/lib/libQt5XcbQpa.so.5
|
|
|
|
else
|
|
|
|
cp -fv $qt_dir/../lib/libQt5DBus.so.5 ./build/lib/libQt5DBus.so.5
|
|
cp -fv $qt_dir/../lib/libQt5XcbQpa.so.5 ./build/lib/libQt5XcbQpa.so.5
|
|
|
|
fi
|
|
|
|
startup_script="./build/$bin_name.sh"
|
|
setup_script="./build/setup.sh"
|
|
uninstall_script="./build/uninstall.sh"
|
|
desktop_file="./build/$bin_name.desktop"
|
|
|
|
echo "#!/bin/sh" > $startup_script
|
|
echo "export QTDIR=$install_dir" >> $startup_script
|
|
echo "export QT_PLUGIN_PATH=$install_dir" >> $startup_script
|
|
echo "export LD_LIBRARY_PATH=\"$install_dir/lib:\$LD_LIBRARY_PATH\"" >> $startup_script
|
|
echo "$install_dir/$bin_name" >> $startup_script
|
|
|
|
echo "[Desktop Entry]" > $desktop_file
|
|
echo "Type=Application" >> $desktop_file
|
|
echo "Exec=$bin_dir/$bin_name" >> $desktop_file
|
|
echo "Name=$app_name" >> $desktop_file
|
|
echo "GenericName=Terminal emulator for MRCI host." >> $desktop_file
|
|
echo "Icon=$bin_name" >> $desktop_file
|
|
echo "StartupWMClass=$bin_name" >> $desktop_file
|
|
echo "Terminal=false" >> $desktop_file
|
|
echo "Categories=Network;Terminal;MRCI;" >> $desktop_file
|
|
|
|
echo "#!/bin/sh" > $setup_script
|
|
echo "if [ -f \"$install_dir/uninstall.sh\" ]; then" >> $setup_script
|
|
echo " sh $install_dir/uninstall.sh" >> $setup_script
|
|
echo "fi" >> $setup_script
|
|
echo "if [ ! -d \"$install_dir\" ]; then" >> $setup_script
|
|
echo " sudo mkdir -p $install_dir" >> $setup_script
|
|
echo "fi" >> $setup_script
|
|
echo "sudo cp -rv ./lib $install_dir" >> $setup_script
|
|
echo "sudo cp -rv ./platforms $install_dir" >> $setup_script
|
|
echo "sudo cp -rv ./xcbglintegrations $install_dir" >> $setup_script
|
|
echo "sudo cp -v ./$bin_name $install_dir" >> $setup_script
|
|
echo "sudo cp -v ./$bin_name.sh $install_dir" >> $setup_script
|
|
echo "sudo cp -v ./uninstall.sh $install_dir" >> $setup_script
|
|
echo "sudo chmod 755 $install_dir/$bin_name" >> $setup_script
|
|
echo "sudo chmod 755 $install_dir/$bin_name.sh" >> $setup_script
|
|
echo "sudo chmod 755 $install_dir/uninstall.sh" >> $setup_script
|
|
echo "sudo chmod 755 $install_dir" >> $setup_script
|
|
echo "sudo chmod -R 755 $install_dir/lib" >> $setup_script
|
|
echo "sudo chmod -R 755 $install_dir/platforms" >> $setup_script
|
|
echo "sudo chmod -R 755 $install_dir/xcbglintegrations" >> $setup_script
|
|
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/8x8/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/16x16/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/22x22/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/24x24/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/32x32/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/36x36/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/42x42/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/48x48/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/64x64/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/72x72/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/96x96/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/128x128/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/192x192/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/256x256/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/512x512/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/icons/hicolor/scalable/apps" >> $setup_script
|
|
echo "sudo mkdir -p /usr/share/applications" >> $setup_script
|
|
|
|
echo "sudo cp -v ./icons/8x8.png /usr/share/icons/hicolor/8x8/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/16x16.png /usr/share/icons/hicolor/16x16/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/22x22.png /usr/share/icons/hicolor/22x22/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/24x24.png /usr/share/icons/hicolor/24x24/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/32x32.png /usr/share/icons/hicolor/32x32/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/36x36.png /usr/share/icons/hicolor/36x36/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/42x42.png /usr/share/icons/hicolor/42x42/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/48x48.png /usr/share/icons/hicolor/48x48/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/64x64.png /usr/share/icons/hicolor/64x64/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/72x72.png /usr/share/icons/hicolor/72x72/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/96x96.png /usr/share/icons/hicolor/96x96/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/128x128.png /usr/share/icons/hicolor/128x128/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/192x192.png /usr/share/icons/hicolor/192x192/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/256x256.png /usr/share/icons/hicolor/256x256/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/512x512.png /usr/share/icons/hicolor/512x512/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo cp -v ./icons/scalable.svg /usr/share/icons/hicolor/scalable/apps/$bin_name.svg" >> $setup_script
|
|
echo "sudo cp -v ./$bin_name.desktop /usr/share/applications/$bin_name.desktop" >> $setup_script
|
|
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/8x8/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/16x16/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/22x22/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/24x24/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/32x32/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/36x36/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/42x42/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/48x48/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/64x64/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/72x72/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/96x96/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/128x128/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/192x192/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/256x256/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/512x512/apps/$bin_name.png" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/icons/hicolor/scalable/apps/$bin_name.svg" >> $setup_script
|
|
echo "sudo chmod 644 /usr/share/applications/$bin_name.desktop" >> $setup_script
|
|
|
|
echo "sudo ln -sfv $install_dir/$bin_name.sh $bin_dir/$bin_name" >> $setup_script
|
|
echo "echo \"\nInstallation finished. If you ever need to uninstall this application, run this command:\n\"" >> $setup_script
|
|
echo "echo \" sh $install_dir/uninstall.sh\n\"" >> $setup_script
|
|
|
|
echo "#!/bin/sh" > $uninstall_script
|
|
echo "sudo rm -v $bin_dir/$bin_name" >> $uninstall_script
|
|
echo "sudo rm -rv $install_dir" >> $uninstall_script
|
|
|
|
echo "sudo rm -v /usr/share/icons/hicolor/8x8/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/16x16/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/22x22/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/24x24/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/32x32/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/36x36/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/42x42/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/48x48/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/64x64/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/72x72/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/96x96/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/128x128/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/192x192/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/256x256/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/512x512/apps/$bin_name.png" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/icons/hicolor/scalable/apps/$bin_name.svg" >> $uninstall_script
|
|
echo "sudo rm -v /usr/share/applications/$bin_name.desktop" >> $uninstall_script
|
|
|
|
echo "echo Finished." >> $uninstall_script
|
|
|
|
chmod +x $setup_script
|
|
|
|
makeself ./build $installer_file "$app_name Installation" ./setup.sh
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "err: A valid Qt dir could not be found."
|
|
|
|
fi
|
|
|
|
if [ -d "$tmp_dir" ]; then
|
|
|
|
rm -rf $tmp_dir
|
|
|
|
fi |