#!/bin/sh CREATEPATH=/usr/share/activities/ ACTIVITYFILE=activity/activity/activity.info echo "Enter [enter] at any prompt to exit without creating the task." ACTIVITYNAME=" " NOSUCHACTVITY=1 # until [ -z "$ACTIVITYNAME" -o \($NOSUCHACTVITY -eq 0\) ] until [ $NOSUCHACTVITY -eq 0 ] do echo "Enter a name for the activity. Use only numbers and letters:" echo -n "> " read ACTIVITYNAME NOSUCHACTVITY=0 if [ -d "$CREATEPATH"/"$ACTIVITYNAME".activity -o -s /bin/sugar"$ACTIVITYNAME" ] then NOSUCHACTVITY=1 echo "An activity exists by that name. Enter another name." fi done if [ -z "$ACTIVITYNAME" ] then echo "No task created." exit 0 fi ICONFILENAME=" " until [ -z "$ICONFILENAME" -o -s "$ICONFILENAME" ] do echo "Enter the full name of the icon to use for the activity, including the path:" echo -n "> " read ICONFILENAME done if [ -z "$ICONFILENAME" ] then echo "No task created." exit 0 fi EXECUTABLECOMMAND=" " echo "Enter the terminal command used to start the program." echo "ie, \"firefox\" or \"mplayer -f\"" echo -n "> " read EXECUTABLECOMMAND if [ -z "$EXECUTABLECOMMAND" ] then echo "No task created." exit 0 fi ORGPATH=" " echo "Enter the organization path of the program." echo "ie, the organization path for firefox is org.mozilla" echo "If you don't know what this is, enter \"org.x\"" echo -n "> " read ORGPATH if [ -z "$ORGPATH" ] then echo "No task created." exit 0 fi echo "Activity name: $ACTIVITYNAME" echo "Icon filename: $ICONFILENAME" echo "Executable command: $EXECUTABLECOMMAND" echo "Org path: $ORGPATH" # create directories mkdir "$CREATEPATH"/"$ACTIVITYNAME".activity mkdir "$CREATEPATH"/"$ACTIVITYNAME".activity/activity mkdir "$CREATEPATH"/"$ACTIVITYNAME".activity/lib mkdir "$CREATEPATH"/"$ACTIVITYNAME".activity/bin # copy existing file names cp libsugarize.so "$CREATEPATH"/"$ACTIVITYNAME".activity/lib cp $ICONFILENAME "$CREATEPATH"/"$ACTIVITYNAME".activity/activity/"$ACTIVITYNAME".svg # make sure libsugarize.so file is executable chmod +x "$CREATEPATH"/"$ACTIVITYNAME".activity/lib/libsugarize.so # create activity.info file echo "[Activity]" >> "$CREATEPATH"/"$ACTIVITYNAME"."$ACTIVITYFILE" echo "name = ${ACTIVITYNAME}" >> "$CREATEPATH"/"$ACTIVITYNAME"."$ACTIVITYFILE" echo "service_name = ${ORGPATH}.${ACTIVITYNAME}" >> "$CREATEPATH"/"$ACTIVITYNAME"."$ACTIVITYFILE" echo "icon = ${ACTIVITYNAME}" >> "$CREATEPATH"/"$ACTIVITYNAME"."$ACTIVITYFILE" echo "activity_version = 1" >> "$CREATEPATH"/"$ACTIVITYNAME"."$ACTIVITYFILE" echo "show_launcher = yes" >> "$CREATEPATH"/"$ACTIVITYNAME"."$ACTIVITYFILE" echo "exec = sugar${ACTIVITYNAME}" >> "$CREATEPATH"/"$ACTIVITYNAME"."$ACTIVITYFILE" # create /bin/sugarACTIVITYNAME file BINFILE="$CREATEPATH""$ACTIVITYNAME".activity/bin/sugar"$ACTIVITYNAME" echo "#!/bin/sh" > "$BINFILE" echo "while [ -n \"\$2\" ] ; do" >> "$BINFILE" echo " case \"\$1\" in" >> "$BINFILE" echo " -b | --bundle-id) export SUGAR_BUNDLE_ID=\"\$2\" ;;" >> "$BINFILE" echo " -a | --activity-id) export SUGAR_ACTIVITY_ID=\"\$2\" ;;" >> "$BINFILE" echo " -o | --object-id) export SUGAR_OBJECT_ID=\"\$2\" ;;" >> "$BINFILE" echo " -u | --uri) export SUGAR_URI=\"\$2\" ;;" >> "$BINFILE" echo " *) echo unknown argument \$1 \$2 ;;" >> "$BINFILE" echo " esac" >> "$BINFILE" echo " shift;shift" >> "$BINFILE" echo "done" >> "$BINFILE" echo "export LD_PRELOAD=\"\$SUGAR_BUNDLE_PATH/lib/libsugarize.so\"" >> "$BINFILE" echo "export NET_WM_NAME=\"${ACTIVITYNAME}\"" >> "$BINFILE" echo "exec ${EXECUTABLECOMMAND}" >> "$BINFILE" # make sugar file executable chmod +x "$BINFILE" echo "${ACTIVITYNAME} task created sucessfully. Reboot sugar (ctrl-alt-erase) to use." exit 0