Page 1 of 1

Automating installing xTimeComposer on Linux

Posted: Sat Mar 30, 2013 9:23 am
by Skeksis
Hi all,

I've not been around the forums for a very, very long time; I dug out my board last night to have a tinker & things have changed a bit! Sorting out xTimeComposer took a little while (finding the icon was a pain) so I thought I'd share a Bash script I threw together to automate the process of setting it up.

It's by no means beautiful, but I think it should work for most systems; it needs saving to the same folder as the xTimeComposer tarball, "chmod +x ./filename.sh" and run with sudo.

The script unpacks the tarball to "/opt", creates an application link that includes the icon for the system menu and then adds it to the "Development" section.

Code: Select all

#!/bin/bash

TAR_LOC="./"
TAR_LOC+=$( find *xTIMEcomposer* )
MENU_LOC="/usr/share/applications/xTimeComposer.desktop"
MENU_CONFIG=$HOME"/.config/menus/applications-kmenuedit.menu"

if [[ ! -a $TAR_LOC ]]; then
	if [[ -L $TAR_LOC ]]; then
		echo "Error, '$TAR_LOC' is a broken symlink."
	else
		echo "Error, '$TAR_LOC' does not exist."
	fi
else
	ARRAY=( $( echo $TAR_LOC | tr "()" "\n" ) )
	
	VERSION=${ARRAY[2]}
	
	if [[ "$VERSION" == "" ]]; then
		echo "Error, file version not found."
	else
		tar -xf $TAR_LOC -C /opt
		CHECK=$( ls /opt/XMOS )
		
		if [[ $CHECK == "xTIMEcomposer" ]]; then
echo "[Desktop Entry]
comment=
Exec=/opt/XMOS/xTIMEcomposer/$VERSION/xtimecomposer
GenericName=XMOS Programming Suite
Icon=/opt/XMOS/xTIMEcomposer/$VERSION/xtimecomposer_bin/configuration/org.eclipse.osgi/bundles/11/1/.cp/icons/xde_c_128.png
Name=xTimeComposer
NoDisplay=false
StartupNotify=true
Terminal=0
TerminalOptions=
Type=Application
X-KDE-SubstituteUID=false
X-KDE-Username=" > $MENU_LOC
			
			DEV_LINE=$( grep -n '<Name>Development</Name>' $MENU_CONFIG | cut -f1 -d: )
			INC_ARRAY=( $( grep -n '</Include>' $MENU_CONFIG | cut -f1 -d: ) )
			
			for LINE in "${INC_ARRAY[@]}"
			do
				if [[ "$LINE" -gt "$DEV_LINE" ]]; then
					sed -i $LINE'i <Filename>xTimeComposer.desktop</Filename>' $MENU_CONFIG
					break
				else
					echo $LINE
				fi
			done
			
			echo "Added to the menu, all done!"
		else
			echo "Error, the extraction failed. Try again with sudo."
		fi
	fi
fi
Pastbin link


All the best,
Skeksis