Cloudapp, git-open, lyrics & showme scripts.
This commit is contained in:
		
							
								
								
									
										62
									
								
								bin/cloudapp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										62
									
								
								bin/cloudapp
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					#!/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'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					['json', 'cloudapp_api'].each do |gem|
 | 
				
			||||||
 | 
					  begin
 | 
				
			||||||
 | 
					    require gem
 | 
				
			||||||
 | 
					  rescue LoadError
 | 
				
			||||||
 | 
					    puts "You need to install #{gem}: gem install #{gem}"
 | 
				
			||||||
 | 
					    exit!(1)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					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")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ARGV[0].nil?
 | 
				
			||||||
 | 
					   puts "You need to specify a file to upload."
 | 
				
			||||||
 | 
					   exit!(1)
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					urls = []
 | 
				
			||||||
 | 
					ARGV.each do |x|
 | 
				
			||||||
 | 
					  CloudApp.authenticate(email,password)
 | 
				
			||||||
 | 
					  puts "Attempting to upload #{x}"
 | 
				
			||||||
 | 
					  url = CloudApp::Item.create(:upload, {:file => x}).url
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Say it for good measure.
 | 
				
			||||||
 | 
					  puts "Uploaded #{x} to #{url}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Get the embed link.
 | 
				
			||||||
 | 
					  url = "#{url}/#{ARGV[0].split('/').last}"
 | 
				
			||||||
 | 
					  urls << url
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Copy it to your (Mac's) clipboard.
 | 
				
			||||||
 | 
					`echo '#{urls.join(',')}' | tr -d "\n" | pbcopy`
 | 
				
			||||||
							
								
								
									
										86
									
								
								bin/git-open
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										86
									
								
								bin/git-open
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,86 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Usage: git-open FILE [LINE]
 | 
				
			||||||
 | 
					## Open GitHub file/blob page for FILE on LINE. FILE is the path to the
 | 
				
			||||||
 | 
					## file on disk; it must exist and be tracked with the current HEAD
 | 
				
			||||||
 | 
					## revision. LINE is the line number or line number range (e.g., 10-50).
 | 
				
			||||||
 | 
					##
 | 
				
			||||||
 | 
					## Open foo/bar.rb in browser:
 | 
				
			||||||
 | 
					##   $ git-open foo/bar.rb
 | 
				
			||||||
 | 
					##
 | 
				
			||||||
 | 
					## Open foo/bar in browser w/ lines 50-57 highlighted:
 | 
				
			||||||
 | 
					##   $ git-open foo/bar.rb 50-57
 | 
				
			||||||
 | 
					##
 | 
				
			||||||
 | 
					## Open current file in vim on line 20:
 | 
				
			||||||
 | 
					##   :!git-open % 20
 | 
				
			||||||
 | 
					##
 | 
				
			||||||
 | 
					## https://github.com/jacobwg/dotfiles/blob/master/bin/github-open
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FILE="$1"
 | 
				
			||||||
 | 
					LINE="$2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# usage and help
 | 
				
			||||||
 | 
					test -z "$FILE" -o "$FILE" = '--help' && {
 | 
				
			||||||
 | 
					  cat "$0" | grep '^##' | cut -c4- 1>&2
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# bail out with message to stderr and exit status 1
 | 
				
			||||||
 | 
					die() {
 | 
				
			||||||
 | 
					    echo "$(basename $0):" "$@" 1>&2
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# figure out relative path to the file from the root
 | 
				
			||||||
 | 
					# of the work tree
 | 
				
			||||||
 | 
					path="$(basename $FILE)"
 | 
				
			||||||
 | 
					cd $(dirname $FILE)
 | 
				
			||||||
 | 
					while test ! -d .git ;
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
					  test "$(pwd)" = / && {
 | 
				
			||||||
 | 
					    echo "error: git repository not found" 1>&2
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  path="$(basename $(pwd))/$path"
 | 
				
			||||||
 | 
					  cd ..
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# get the current branch in refs/heads/<branch> form
 | 
				
			||||||
 | 
					ref=$(git symbolic-ref -q HEAD)
 | 
				
			||||||
 | 
					test -n "$ref" ||
 | 
				
			||||||
 | 
					die "you're not on a branch"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# just the branch name please
 | 
				
			||||||
 | 
					branch=$(echo "$ref" | sed 's@^refs/heads/@@')
 | 
				
			||||||
 | 
					test -n "$branch" ||
 | 
				
			||||||
 | 
					die "you're in a weird place; get on a local branch"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# remote we're tracking
 | 
				
			||||||
 | 
					remote=$(git config --get "branch.$branch.remote" || true)
 | 
				
			||||||
 | 
					test -n "$remote" ||
 | 
				
			||||||
 | 
					die "you're not tracking a remote branch"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# remote branch we're tracking
 | 
				
			||||||
 | 
					merge=$(
 | 
				
			||||||
 | 
					    (git config --get "branch.$branch.merge") |
 | 
				
			||||||
 | 
					    sed 's@refs/heads/@@'
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					test -n "$merge" ||
 | 
				
			||||||
 | 
					die "you're not tracking a remote branch"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# at this point we're in root of the work tree and $path is
 | 
				
			||||||
 | 
					# the relative path to file.
 | 
				
			||||||
 | 
					remote_url=$(git config --get remote.$remote.url)
 | 
				
			||||||
 | 
					repo=$(echo "$remote_url" | sed 's/^.*:\(.*\)\.git/\1/')
 | 
				
			||||||
 | 
					url="http://github.com/$repo/blob/$branch/$path"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# debugging
 | 
				
			||||||
 | 
					# echo "url: $remote_url"
 | 
				
			||||||
 | 
					# echo "repo: $repo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# throw the line number on there if specified
 | 
				
			||||||
 | 
					test -n "$LINE" && url="$url#L$LINE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					open "$url"
 | 
				
			||||||
							
								
								
									
										14
									
								
								bin/lyrics
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										14
									
								
								bin/lyrics
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# lyrics.sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# A fine piece of work by @febuiles
 | 
				
			||||||
 | 
					#   https://gist.github.com/1549979
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					artist=`osascript -e'tell application "iTunes"' -e'get artist of current track' -e'end tell'`
 | 
				
			||||||
 | 
					title=`osascript -e'tell application "iTunes"' -e'get name of current track' -e'end tell'`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					song=`curl -G --data-urlencode "artist=$artist" \
 | 
				
			||||||
 | 
					 	--data-urlencode "title=$title" -s http://makeitpersonal.co/lyrics`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo -e "$artist - $title\n$song"
 | 
				
			||||||
							
								
								
									
										41
									
								
								bin/showme
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										41
									
								
								bin/showme
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Takes N pictures of you via your iSight camera, animates them, uploads them to CloudApp, and puts the url in your clipboard.
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					# USAGE: showme [shots]
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Author: Artem Sapegin, sapegin.me
 | 
				
			||||||
 | 
					# Inspired by https://gist.github.com/832125
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Requirements:
 | 
				
			||||||
 | 
					# brew istall imagemagick imagesnap
 | 
				
			||||||
 | 
					# gem install gifme cloudapp_api json
 | 
				
			||||||
 | 
					# https://github.com/holman/dotfiles/blob/master/bin/cloudapp
 | 
				
			||||||
 | 
					# http://www.getcloudapp.com/
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 3 shots by default
 | 
				
			||||||
 | 
					shots=${1-3}
 | 
				
			||||||
 | 
					dir=`basename "$(pwd)"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TMPDIR=`mktemp -d` && {
 | 
				
			||||||
 | 
						cd $TMPDIR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for ((shot=1; shot<=$shots; shot++)); do
 | 
				
			||||||
 | 
							echo "Prepare for shot $shot..."
 | 
				
			||||||
 | 
							echo "3..."
 | 
				
			||||||
 | 
							sleep 1
 | 
				
			||||||
 | 
							echo "2..."
 | 
				
			||||||
 | 
							sleep 1
 | 
				
			||||||
 | 
							echo "1..."
 | 
				
			||||||
 | 
							sleep 1
 | 
				
			||||||
 | 
							echo "GO!"
 | 
				
			||||||
 | 
							imagesnap -q "shot$shot.jpg"
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						gifme -w 200 -o hereisapictureofme.gif *.jpg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						rm -rf $TMPDIR
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user