summaryrefslogtreecommitdiff
path: root/plugins/cloudapp
diff options
context:
space:
mode:
authorMatthew McCullough <matthewm@ambientideas.com>2011-06-28 19:42:50 -0600
committerMatthew McCullough <matthewm@ambientideas.com>2011-06-28 20:09:00 -0600
commite43eec99f94c00a6a9d2b30f9c449aff5ab0dfe5 (patch)
tree5d2b0c03409e597e72932a838f826e8a11de30d3 /plugins/cloudapp
parent3552423de3d5ae439dc815b7f9c4cbeab3fbebe8 (diff)
downloadzsh-e43eec99f94c00a6a9d2b30f9c449aff5ab0dfe5.tar.gz
zsh-e43eec99f94c00a6a9d2b30f9c449aff5ab0dfe5.tar.bz2
zsh-e43eec99f94c00a6a9d2b30f9c449aff5ab0dfe5.zip
Added cloudapp from @holman of @GitHub fame
Diffstat (limited to 'plugins/cloudapp')
-rw-r--r--plugins/cloudapp/cloudapp.plugin.zsh2
-rwxr-xr-xplugins/cloudapp/cloudapp.rb60
2 files changed, 62 insertions, 0 deletions
diff --git a/plugins/cloudapp/cloudapp.plugin.zsh b/plugins/cloudapp/cloudapp.plugin.zsh
new file mode 100644
index 000000000..99252f690
--- /dev/null
+++ b/plugins/cloudapp/cloudapp.plugin.zsh
@@ -0,0 +1,2 @@
+#!/bin/zsh
+alias cloudapp=$ZSH/plugins/cloudapp/cloudapp.rb
diff --git a/plugins/cloudapp/cloudapp.rb b/plugins/cloudapp/cloudapp.rb
new file mode 100755
index 000000000..a11cfdb32
--- /dev/null
+++ b/plugins/cloudapp/cloudapp.rb
@@ -0,0 +1,60 @@
+#!/usr/bin/env ruby
+#
+# cloudapp
+# Zach Holman / @holman
+#
+# Uploads a file from the command line to CloudApp, drops it into your
+# clipboard (on a Mac, at least).
+#
+# Example:
+#
+# cloudapp drunk-blake.png
+#
+# This requires Aaron Russell's cloudapp_api gem:
+#
+# gem install cloudapp_api
+#
+# Requires you set your CloudApp credentials in ~/.cloudapp as a simple file of:
+#
+# email
+# password
+
+require 'rubygems'
+begin
+ require 'cloudapp_api'
+rescue LoadError
+ puts "You need to install cloudapp_api: gem install cloudapp_api"
+ exit!(1)
+end
+
+config_file = "#{ENV['HOME']}/.cloudapp"
+unless File.exist?(config_file)
+ puts "You need to type your email and password (one per line) into "+
+ "`~/.cloudapp`"
+ exit!(1)
+end
+
+email,password = File.read(config_file).split("\n")
+
+class HTTParty::Response
+ # Apparently HTTPOK.ok? IS NOT OKAY WTFFFFFFFFFFUUUUUUUUUUUUUU
+ # LETS MONKEY PATCH IT I FEEL OKAY ABOUT IT
+ def ok? ; true end
+end
+
+if ARGV[0].nil?
+ puts "You need to specify a file to upload."
+ exit!(1)
+end
+
+CloudApp.authenticate(email,password)
+url = CloudApp::Item.create(:upload, {:file => ARGV[0]}).url
+
+# Say it for good measure.
+puts "Uploaded to #{url}."
+
+# Get the embed link.
+url = "#{url}/#{ARGV[0].split('/').last}"
+
+# Copy it to your (Mac's) clipboard.
+`echo '#{url}' | tr -d "\n" | pbcopy`