Automating installing xTimeComposer on Linux
Posted: Sat Mar 30, 2013 9:23 am
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.
Pastbin link
All the best,
Skeksis
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
All the best,
Skeksis