[TxMt] Re: How to execute a shell script within TextMate?

Alexey Blinov nilcolor at gmail.com
Wed May 5 11:37:02 UTC 2010


This is from "Reformat with JS Beautifier" command:

Command(s):

cat > /tmp/reformat_this_file.js
cd "$TM_BUNDLE_SUPPORT/bin/js-beautify/"
java -jar ../js.jar beautify-cl.js -n -i 1 /tmp/reformat_this_file.js 2>&1


Input: Selected Text or Scope
Output: Replace Selected Text

HTH

-- Alexey


On Wed, May 5, 2010 at 15:27, Marius Hofert <m_hofert at web.de> wrote:

> Dear TextMate experts,
>
> I would like to execute the shell script myscript.sh from within TextMate.
> The script myscript.sh takes a file name as argument and does something with
> the file (it indents the file correctly; for this, it calls emacs in batch
> mode). So if I use
> sh myscript.sh myfile.R
> the script works perfectly fine, i.e., it indents the source code contained
> in myfile.R. I would like to have textmate do this for me on the file I am
> working on when I use a certain key combination.
>
> Using the Bundle Editor, I created a new command "tidy" with key equivalent
> "shift+command+T". As the actual command, I put in:
> sh /path_to_my_script/myscript.sh "$TM_FILENAME"
>
> Unfortunately, this does not work. I set "Input" to "Entire Document" and
> "Output" to "Replace Document" (currently I obtain an empty document after
> "shift+command+T").
>
> How can I trigger the shell script, such that the current content of
> myfile.R is replaced by the (quietly generated) output of myscript.sh?
>
> Below is the script
>
> Many thanks in advance,
>
> Marius
>
>
> #!/bin/sh
> function usage () {
> printf "Indent R file with Emacs ESS package.\n"
> printf "Usage: $0 FILE\n"
> exit 1
> }
> f=$1
> shift
> if test "x$f" = x -o "x$f" = "x-h"; then
> usage
> fi
> emacs -batch \
> -eval '(load "/usr/local/share/emacs/site-lisp/ess-5.8/lisp/ess-site")' \
> -f R-mode \
> -eval '(untabify (point-min) (point-max))' \
> -eval '(insert-file "'${f}'")' \
> -eval '(set-visited-file-name "'"${f}"'")' \
> -eval '(indent-region (point-min) (point-max) nil)' \
> -f save-buffer \
> 2>/dev/null
>
>
> _______________________________________________
> textmate mailing list
> textmate at lists.macromates.com
> http://lists.macromates.com/listinfo/textmate
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macromates.com/textmate/attachments/20100505/aea57b74/attachment.html>


More information about the textmate mailing list