Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
A shell script for Tot
#!/bin/sh
basename=`basename $0`
if [ -z "$*" ]; then
echo "usage: ${basename} <dot> [ -o | -r | <file> | - ]"
echo ""
echo "options:"
echo " -o open dot in window with keyboard focus"
echo " -r read contents of dot"
echo " -c clear contents of dot"
echo " <file> append contents of regular file to dot"
echo " - append standard input to dot"
echo ""
echo "examples:"
echo " $ cal -h | tot 1 - # put a calendar in first dot"
echo " $ tot 2 MyApp.crash # put a crash report in second dot"
echo ""
exit 1
fi
dot="$1"
if [ -z "$2" ]; then
echo "error: no dot action specified"
exit 1
else
if [ "$2" = "-o" ]; then
# open dot
osascript -e "tell application \"Tot\" to open location \"tot://${dot}\""
osascript -e "tell application \"Tot\" to activate"
elif [ "$2" = "-r" ]; then
# get contents of dot
osascript -e "tell application \"Tot\" to open location \"tot://${dot}/content\""
elif [ "$2" = "-c" ]; then
# clear contents of dot
osascript -e "tell application \"Tot\" to open location \"tot://${dot}/replace?text=\""
else
# append file or stdin to dot
if [ "$2" = "-" ]; then
FILE=`mktemp -t ${basename}` || exit 1
cat /dev/stdin > $FILE
else
if [ -f "$2" ]; then
FILE="$2"
else
echo "error: not a regular file"
exit 1
fi
fi
text=`cat $FILE | python -c 'import urllib; import sys; print urllib.quote(sys.stdin.read())'`
osascript -e "tell application \"Tot\" to open location \"tot://${dot}/append?text=${text}\""
fi
fi
@zrzka

This comment has been minimized.

Copy link

@zrzka zrzka commented Feb 28, 2020

Nit - usage & examples - tot should be tot.sh in this case -> ${basename}.

@tadpol

This comment has been minimized.

Copy link

@tadpol tadpol commented Mar 23, 2020

Curious as to why using osascript -e "tell application \"Tot\" to open location \"tot://${dot}/append?text=${text}\"" instead of open "tot://${dot}/append?text=${text}"

@neilio

This comment has been minimized.

Copy link

@neilio neilio commented Apr 1, 2020

I have an issue where the flags don't seem to be recognized. When I try commands like "tot -o 1" or "tot -r 3" I get the "not a regular file" error. Any ideas for how to fix this?

@brandonpittman

This comment has been minimized.

Copy link

@brandonpittman brandonpittman commented Feb 3, 2021

@neillo Put the dot number before the -o flag.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment