Fork me on GitHub


curl’ing a URL in TextMate

August 18, 2011 | TextMate

Ok, sorry, I can’t let all the BBEdit users think that they’ve discovered something new 😉

In case you’ve noticed the amazement lately on blogs and twitter where BBEdit users have discovered a way to open a curl’d url in BBEdit to view its source you may be wondering “how do I do this in TextMate”?

Well, its a little more code, but its also a little more powerful.

#!/usr/bin/env ruby -wKU
require ENV['TM_SUPPORT_PATH'] + '/lib/io.rb'
require ENV['TM_SUPPORT_PATH'] + '/lib/current_word'
require 'open3'
require 'cgi'

theUri = Word.current_word('a-zA-Z0-9#\-_\.:;%/?&=@!$^\*\+', :both)

if theUri.include? '@'
auth, uri = theUri.split('@')
theCommand = "curl -s -u #{auth} \"#{uri}\""
theCommand = "curl -s \"#{theUri}\""

stdin, stdout, stderr = Open3.popen3(theCommand)
TextMate::IO.exhaust(:out => stdout, :err => stderr) do |data|
puts data.rstrip

So, add this as a command in your bundle and tell it to open a new document when its done. Assign it to a keyboard command (if you haven’t already assigned other items to every other keyboard combination under the sun like I have). From here you can simply highlight a URL in a document, trigger the command, and get the source of the url in a new document.

On top of that, if the url contains credentials a-la “user:password@” it’ll use the “user:password” portion to authenticate you against simple Apache 401 authentication.

I’ve been thinking that it would be nice to have this also check the clipboard if there’s nothing selected. But I haven’t gotten around to trying that yet.

This and a few more helpful commands can be found in my General TextMate Bundle on Github (also available through GetBundles).


One Response

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  • Cool! Those crazy BBEdit users and their superior attitude…

    Sean Klein, August 18, 2011 11:25 am | permalink

Comments are closed