Skip to content

Instantly share code, notes, and snippets.

@cbartlett
Forked from foozmeat/squirt
Created May 18, 2015 18:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cbartlett/3bbc9f7203987c1e7868 to your computer and use it in GitHub Desktop.
Save cbartlett/3bbc9f7203987c1e7868 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
require 'json'
if ARGV.length < 3 then
puts "Usage: squirt <filename> <channel> <comment>"
exit
end
token = ENV['TOKEN'] || ""
if token == "" then
puts "Get an API token at https://api.slack.com/web#basics and enter it above"
exit
end
filename = ARGV[0]
channel = ARGV[1]
comment = ARGV[2]
# get channel list
channel_raw_data = `curl -s -F token=#{token} https://slack.com/api/channels.list`
channel_data = JSON.parse(channel_raw_data)
#find channel ID for channel name
channel_id = channel_data["channels"].map {|c| c['id'] if c['name']==channel}.compact.first
if not channel_id then
puts "Channel ID not found"
exit 1
end
output = `curl -s -F file=@#{filename} -F channels=#{channel_id} -F initial_comment=\"#{comment}\" -F token=#{token} https://slack.com/api/files.upload`
result = JSON.parse(output)
if not result['ok'] then
puts "Upload failed: #{result['error']}"
exit 1
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment