zsh_dots 0.5.7 → 0.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.bundle/config ADDED
@@ -0,0 +1,3 @@
1
+ ---
2
+ BUNDLE_DISABLE_SHARED_GEMS: '1'
3
+ BUNDLE_BIN: 'vendor/gems/bin'
data/.gitignore CHANGED
@@ -24,4 +24,3 @@ rdoc
24
24
  spec/reports
25
25
  tmp
26
26
  vendor/ievms
27
- bin/
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zsh_dots (0.5.2)
4
+ zsh_dots (0.5.8)
5
5
  activemodel
6
6
  thor
7
7
 
data/config/bundle/config CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  BUNDLE_PATH: vendor/gems
3
- BUNDLE_DISABLE_SHARED_GEMS: "0"
3
+ BUNDLE_DISABLE_SHARED_GEMS: '0'
4
4
  BUNDLE_BIN: bin/
data/config/gitconfig CHANGED
@@ -18,12 +18,14 @@
18
18
  unstaged = diff
19
19
  current-branch = !git symbolic-ref -q HEAD | sed -e 's|^refs/heads/||'
20
20
  track = checkout -t
21
- # Rewrite of 'git-process' in git.
22
- beta-restore = stash pop
23
- beta-sync = !git checkout $1 && git rebase master
24
- beta-feature = !git checkout -b
25
- beta-expose = !git checkout master && git pull --rebase && git checkout $1 && git rebase master && git push origin $1
26
- beta-to-master = !git checkout master && git merge $1 && git push --rebase origin master
21
+ restore = stash pop
22
+ # Rewrite of 'git-process' in git. Basically the same thing without
23
+ # the _parking_ branch (it's the same as master)
24
+ sync = !git fetch origin && git rebase master
25
+ new-fb = !git checkout master && git pull --rebase origin master && git checkout -b $2
26
+ expose = !git sync && git push origin `git current-branch`
27
+ pull-upstream = !git pull --rebase origin master && git checkout master
28
+ to-master = !export GIT_BRANCH=`git current-branch` && git pull-upstream && git merge $GIT_BRANCH && git push origin master
27
29
  [apply]
28
30
  whitespace = warn
29
31
  [color]
data/config/vimrc CHANGED
@@ -34,7 +34,7 @@ Bundle 'Shougo/neocomplcache'
34
34
  Bundle 'mattn/webapi-vim'
35
35
  Bundle 'mattn/gist-vim'
36
36
  Bundle 'vim-scripts/sudo.vim'
37
- Bundle 'janx/vim-rubytest'
37
+ Bundle 'skalnik/vim-vroom'
38
38
 
39
39
 
40
40
  ""
@@ -59,8 +59,8 @@ let mapleader = "," " Set leader key to something easier to access
59
59
  "" Whitespace
60
60
  ""
61
61
 
62
- set wrap " turn word wrap on
63
- set textwidth=72 " attempt to enforce 72 chars
62
+ "set wrap " turn word wrap on
63
+ "set textwidth=72 " attempt to enforce 72 chars
64
64
  set tabstop=2 " a tab is two spaces
65
65
  set shiftwidth=2 " an autoindent (with <<) is two spaces
66
66
  set expandtab " use spaces, not tabs
@@ -141,20 +141,8 @@ let macvim_hig_shift_movement = 1 " MacVim shift+arrow-keys behavior (required i
141
141
  " Skip bullshit directories
142
142
  let Grep_Skip_Dirs = 'RCS CVS SCCS .svn generated .sass-cache .git'
143
143
  set grepprg=/bin/grep\ -nH
144
- " Enforce Ruby 1.9 syntax in the selection
145
- "map <leader>h %s/:\([a-z0-9_]\+\)\s*=>/\1: /g<cr>
146
-
147
-
148
- ""
149
- "" Testing
150
- ""
151
-
152
- let g:rubytest_cmd_test = "rtest %p"
153
- let g:rubytest_cmd_testcase = "rtest %p -n \'/%c/\'"
154
- let g:rubytest_cmd_spec = "rspec --format=documentation %p"
155
- let g:rubytest_cmd_example = "rspec --format=documentation %p -l '%c'"
156
- let g:rubytest_cmd_feature = "cucumber %p"
157
- let g:rubytest_cmd_story = "cucumber %p -n '%c'"
144
+ " Enforce Ruby 1.9 syntax on this line
145
+ map <leader>h :s/:\([a-z0-9_]\+\)\s*=>/\1: /g<cr>
158
146
 
159
147
 
160
148
  ""
@@ -194,6 +182,10 @@ augroup vimrcEx
194
182
 
195
183
  " Strip whitespace in Python
196
184
  autocmd BufWritePre *.py :%s/\s\+$//e
185
+
186
+ " Highlight certain files as Ruby
187
+ au BufNewFile,BufRead *.gemfile set filetype=ruby
188
+ au BufNewFile,BufRead *.rake set filetype=ruby
197
189
  augroup END
198
190
 
199
191
  " When there's no text behind it, tab indents. When there is, tab
@@ -252,63 +244,47 @@ set background=light
252
244
  map <C-t> :CommandT<cr>
253
245
  " Pressing ,ss will toggle and untoggle spell checking
254
246
  map <leader>ss :setlocal spell!<cr>
255
- " Find either the test file or implementation file path for the currently-opened file
256
- " (depending on which one it is)
257
- " Open this file's corresponding test or implementation.
247
+
248
+ " Remap :W => :w to avoid errors
249
+ command! W w
250
+
251
+ ""
252
+ "" Inline Testing
253
+ ""
254
+
255
+ let g:vroom_use_binstubs = 1
256
+ let g:vroom_use_colors = 1
257
+ let g:vroom_map_keys = 0
258
+ let g:vroom_spec_command = 'rspec --format=documentation '
259
+ let g:vroom_test_unit_command = 'bundle exec ruby -Itest '
260
+ "let g:vroom_test_unit_command = 'rtest '
261
+
262
+ nnoremap <leader>t :VroomRunNearestTest<cr>
263
+ nnoremap <leader>T :VroomRunTestFile<cr>
264
+
258
265
  function! OpenTestAlternate()
259
266
  let new_file = AlternateForCurrentFile()
260
267
  exec ':e ' . new_file
261
268
  endfunction
262
- " Find the test or implementation code that corresponds with this file.
263
269
  function! AlternateForCurrentFile()
264
- let using_rspec = filereadable('spec/spec_helper.rb')
265
270
  let current_file = expand("%")
266
271
  let new_file = current_file
267
- let in_test = match(current_file, '^test/') != -1 || match(current_file, '^spec/') != -1
268
- let going_to_test = !in_test
269
- let in_app = match(current_file, '\<controllers\>') != -1 || match(current_file, '\<models\>') != -1 || match(current_file, '\<views\>') != -1 || match(current_file, '\<decorators\>') != -1 || match(current_file, '\<support\>') != -1 || match(current_file, '\<observers\>') != -1 || match(current_file, '\<parsers\>') != -1 || match(current_file, '\<transformers\>') != -1
270
-
271
- if going_to_test
272
+ let in_spec = match(current_file, '^spec/') != -1
273
+ let going_to_spec_or_test = !in_spec
274
+ let in_app = match(current_file, '\<controllers\>') != -1 || match(current_file, '\<models\>') != -1 || match(current_file, '\<views\>') != -1 || match(current_file, '\<helpers\>') != -1
275
+ if going_to_spec
272
276
  if in_app
273
277
  let new_file = substitute(new_file, '^app/', '', '')
274
278
  end
275
-
276
- " Test::Unit places its tests in a different location than RSpec
277
- if using_rspec
278
- let new_file = substitute(new_file, '\.rb$', '_spec.rb', '')
279
- let new_file = 'spec/' . new_file
280
- else
281
- let new_file = substitute(new_file, '\.rb$', '_test.rb', '')
282
- let new_file = 'test/' . new_file
283
- let new_file = substitute(new_file, 'models', 'unit', '')
284
- let new_file = substitute(new_file, 'support', 'unit', '')
285
- let new_file = substitute(new_file, 'controllers', 'functional', '')
286
- endif
279
+ let new_file = substitute(new_file, '\.rb$', '_spec.rb', '')
280
+ let new_file = 'spec/' . new_file
287
281
  else
282
+ let new_file = substitute(new_file, '_spec\.rb$', '.rb', '')
283
+ let new_file = substitute(new_file, '^spec/', '', '')
288
284
  if in_app
289
285
  let new_file = 'app/' . new_file
290
286
  end
291
-
292
- if using_rspec
293
- let new_file = substitute(new_file, '_spec\.rb$', '.rb', '')
294
- let new_file = substitute(new_file, 'spec/', '', '')
295
- else
296
- let new_file = substitute(new_file, '_test\.rb$', '.rb', '')
297
- let new_file = substitute(new_file, '^test/', '', '')
298
-
299
- if match(new_file, 'support/')
300
- let new_file = substitute(new_file, 'unit', 'support', '')
301
- else
302
- let new_file = substitute(new_file, 'unit', 'models', '')
303
- endif
304
-
305
- let new_file = substitute(new_file, 'functional', 'controllers', '')
306
- endif
307
287
  endif
308
288
  return new_file
309
289
  endfunction
310
290
  nnoremap <leader>. :call OpenTestAlternate()<cr>
311
- map <C-j> <leader>.
312
-
313
- " Remap :W => :w to avoid errors
314
- command! W w
data/config/zshenv CHANGED
@@ -10,7 +10,7 @@ DOTS=$ZSH
10
10
  # Domain-specific PATHs.
11
11
  RBPATH=/usr/local/lib/ruby/gems/1.9.1/bin:/usr/local/Cellar/ruby/1.9.3-p327/bin
12
12
  JSPATH=node_modules/.bin:/usr/local/share/npm/bin
13
- PYPATH=/usr/local/Cellar/python/2.7.1/bin
13
+ PYPATH=/usr/local/Cellar/python/2.7.3/bin
14
14
  GOPATH=$HOME/Code/Go
15
15
  PGPATH=/Applications/Postgres.app/Contents/MacOS/bin
16
16
  MANPATH=/opt/local/share/man:$MANPATH
data/lib/dots/aliases.zsh CHANGED
@@ -48,7 +48,7 @@ alias krp='kill_first_ruby_process'
48
48
  alias fs='foreman start'
49
49
  alias reload='dots update'
50
50
 
51
- alias guard='nocorrect guard --no-bundler-warning'
51
+ #alias guard='nocorrect guard --no-bundler-warning'
52
52
  alias rspec='nocorrect rspec'
53
53
  alias rain='nocorrect rain'
54
54
 
@@ -63,3 +63,5 @@ alias cfg='source .env'
63
63
 
64
64
  # Just in case..
65
65
  alias dots='nocorrect dots'
66
+
67
+ alias replace='gg_replace'
@@ -90,3 +90,44 @@ function rhombus() {
90
90
  function hidden_config_for() {
91
91
  source "$DOTS/config/$1.zsh"
92
92
  }
93
+
94
+ # Find and replace in a directory.
95
+ gg_replace() {
96
+ if [[ "$#" == "0" ]]; then
97
+ echo 'Usage:'
98
+ echo ' gg_replace term replacement file_mask'
99
+ echo
100
+ echo 'Example:'
101
+ echo ' gg_replace cappuchino cappuccino *.html'
102
+ echo
103
+ else
104
+ find=$1; shift
105
+ replace=$1; shift
106
+
107
+ ORIG_GLOBIGNORE=$GLOBIGNORE
108
+ GLOBIGNORE=*.*
109
+
110
+ if [[ "$#" = "0" ]]; then
111
+ set -- ' ' $@
112
+ fi
113
+
114
+ while [[ "$#" -gt "0" ]]; do
115
+ for file in `git grep -l $find -- $1`; do
116
+ sed -i -e "s/$find/$replace/g" -i'' $file
117
+ done
118
+ shift
119
+ done
120
+
121
+ GLOBIGNORE=$ORIG_GLOBIGNORE
122
+ fi
123
+ }
124
+
125
+ # Turn underscores into dashes.
126
+ gg_dasherize() {
127
+ gg_replace $1 `echo $1 | sed -e 's/_/-/g'` $2
128
+ }
129
+
130
+ # Wrap a Ruby binary in the global GEM_HOME.
131
+ function globalize() {
132
+ GEM_HOME=$GLOBAL_GEM_HOME $@
133
+ }
@@ -25,7 +25,7 @@ module Dots
25
25
  # Install the latest version of all gems to the global gemset. These
26
26
  # gems are configured in +~/.Gemfile+.
27
27
  def install_bundle
28
- system "cd #{Dots::HOME} && #{bundle_install}"
28
+ system "cd && #{install_bundler} && #{install_global_gemset}"
29
29
  end
30
30
 
31
31
  # Install Python packages from pip. Pip!
@@ -38,26 +38,17 @@ module Dots
38
38
  `which #{command}` != ""
39
39
  end
40
40
 
41
- def bundle_install
42
- return install_global_gemset if installed? 'bundle'
43
- "#{install_bundler} #{install_global_gemset}"
41
+ def install_bundler
42
+ "gem install bundler"
44
43
  end
45
44
 
46
45
  def install_global_gemset
47
- "bundle install --gemfile=#{global_gemset}"
48
- end
49
-
50
- def install_bundler
51
- "gem install bundler"
46
+ "gem install #{Dots.gems}"
52
47
  end
53
48
 
54
49
  # Install the latest version of the Homebrew package manager.
55
50
  def install_homebrew
56
51
  %x[ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"]
57
52
  end
58
-
59
- def global_gemset
60
- "#{Dots.root}/config/Gemfile"
61
- end
62
53
  end
63
54
  end
@@ -1,10 +1,11 @@
1
1
  require 'dots/persistence'
2
2
  require 'dots/installation'
3
3
  require 'dots/bootstrap'
4
+ require 'dots/sanity'
4
5
 
5
6
  module Dots
6
7
  class Command < Thor
7
- include Thor::Actions, Dots::Persistence, Dots::Installation, Dots::Bootstrap
8
+ include Thor::Actions, Dots::Persistence, Dots::Installation, Dots::Bootstrap, Dots::Sanity
8
9
  default_task :usage
9
10
 
10
11
  desc :usage, "Show usage information"
@@ -47,9 +48,10 @@ module Dots
47
48
  install_programs and install_bundle and install
48
49
  end
49
50
 
50
- desc :bundle, "Install and update the global gem bundle"
51
- def bundle
52
- install_bundle
51
+ desc :robify, "Restore the shell to sane, sensible defaults."
52
+ method_option :edit, default: true
53
+ def robify
54
+ stop_being_insane! and (open_textmate if options[:edit])
53
55
  end
54
56
  end
55
57
  end
@@ -0,0 +1,50 @@
1
+ # = Dots::Sanity
2
+ #
3
+ # This module helps me pair program with others who may not enjoy the
4
+ # quirky nature of my personal setup. It restores the shell,
5
+ # destructively, to some saner defaults.
6
+ module Dots
7
+ module Sanity
8
+ include Thor::Actions
9
+
10
+ # Restore the shell to some more sensible defaults, and familiar
11
+ # aliases.
12
+ def stop_being_insane!
13
+ restore_to_sensible_defaults and say_farewell
14
+ end
15
+
16
+ # Open the current folder in TextMate.
17
+ def open_textmate
18
+ if textmate_installed?
19
+ system 'mate .'
20
+ else
21
+ say "Please install TextMate to open this folder sensibly."
22
+ exit 1
23
+ end
24
+ end
25
+
26
+ private
27
+ def say_farewell
28
+ if $? == 0
29
+ true
30
+ else
31
+ say "There were errors robifying the shell.."
32
+ false
33
+ end
34
+ end
35
+
36
+ def restore_to_sensible_defaults
37
+ commands = [
38
+ "bindkey -e",
39
+ "alias rbtest='nocorrect rtest_rake'",
40
+ "alias rbtest_exec='rtest_bare'"
41
+ ]
42
+ restore_sensible_defaults = "zsh -c '#{commands.join(" && ")}'"
43
+ system restore_sensible_defaults
44
+ end
45
+
46
+ def textmate_installed?
47
+ `which mate` != ""
48
+ end
49
+ end
50
+ end
@@ -1,3 +1,3 @@
1
1
  module Dots
2
- VERSION = "0.5.7"
2
+ VERSION = "0.5.8"
3
3
  end
data/lib/ruby/dots.rb CHANGED
@@ -7,8 +7,12 @@ require 'dots/command'
7
7
  require 'dots/version'
8
8
  require 'dots/persistence'
9
9
  require 'dots/installation'
10
+ require 'dots/sanity'
10
11
 
11
12
  module Dots
13
+ # All gems installed by DOTS
14
+ GEMS = %w(dots pv git_tracker rails)
15
+
12
16
  # The root path of the DOTS gem.
13
17
  def self.root
14
18
  @root_dir ||= begin
@@ -40,5 +44,10 @@ module Dots
40
44
 
41
45
  # The home directory for the current user.
42
46
  HOME = ENV['HOME']
47
+
48
+ # Accessor for all gems installed by DOTS, formatted for a `gem install`.
49
+ def self.gems
50
+ GEMS.join " "
51
+ end
43
52
  end
44
53
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  #
3
- # = Stock
3
+ # = Stock: A Dividend Yield Calculator
4
4
  #
5
5
  # Given a key/value pair of a stock symbol and how many shares you own, this
6
6
  # program will spit out the yearly dividend amounts you will yield from holding
metadata CHANGED
@@ -1,81 +1,74 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zsh_dots
3
3
  version: !ruby/object:Gem::Version
4
+ version: 0.5.8
4
5
  prerelease:
5
- version: 0.5.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - Tom Scott
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-27 00:00:00.000000000 Z
12
+ date: 2013-01-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- version_requirements: !ruby/object:Gem::Requirement
15
+ name: thor
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: '0'
20
- none: false
21
- name: thor
22
22
  type: :runtime
23
23
  prerelease: false
24
- requirement: !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
25
26
  requirements:
26
27
  - - ! '>='
27
28
  - !ruby/object:Gem::Version
28
29
  version: '0'
29
- none: false
30
30
  - !ruby/object:Gem::Dependency
31
- version_requirements: !ruby/object:Gem::Requirement
31
+ name: activemodel
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
32
34
  requirements:
33
35
  - - ! '>='
34
36
  - !ruby/object:Gem::Version
35
37
  version: '0'
36
- none: false
37
- name: activemodel
38
38
  type: :runtime
39
39
  prerelease: false
40
- requirement: !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
41
42
  requirements:
42
43
  - - ! '>='
43
44
  - !ruby/object:Gem::Version
44
45
  version: '0'
45
- none: false
46
46
  - !ruby/object:Gem::Dependency
47
- version_requirements: !ruby/object:Gem::Requirement
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
48
50
  requirements:
49
51
  - - ! '>='
50
52
  - !ruby/object:Gem::Version
51
53
  version: '0'
52
- none: false
53
- name: rake
54
54
  type: :development
55
55
  prerelease: false
56
- requirement: !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
57
58
  requirements:
58
59
  - - ! '>='
59
60
  - !ruby/object:Gem::Version
60
61
  version: '0'
61
- none: false
62
62
  description: DOTS is an advanced ZSH framework.
63
63
  email:
64
64
  - tubbo@psychedeli.ca
65
65
  executables:
66
66
  - dots
67
- - elocal_nightly.sh
68
- - gbrt
69
- - git_cwd_info
70
- - lein
71
- - loggly
72
- - reattach-to-user-namespace
73
- - repl.sh
74
67
  - ssh-copy-id
75
- - stock
76
68
  extensions: []
77
69
  extra_rdoc_files: []
78
70
  files:
71
+ - .bundle/config
79
72
  - .gitignore
80
73
  - .gitmodules
81
74
  - Gemfile
@@ -83,16 +76,7 @@ files:
83
76
  - README.md
84
77
  - Rakefile
85
78
  - bin/dots
86
- - bin/elocal_nightly.sh
87
- - bin/gbrt
88
- - bin/git_cwd_info
89
- - bin/lein
90
- - bin/loggly
91
- - bin/reattach-to-user-namespace
92
- - bin/repl.sh
93
79
  - bin/ssh-copy-id
94
- - bin/stock
95
- - config/Gemfile
96
80
  - config/bundle/config
97
81
  - config/example.aws.zsh
98
82
  - config/gemrc
@@ -141,9 +125,11 @@ files:
141
125
  - lib/ruby/dots/installation.rb
142
126
  - lib/ruby/dots/installer.rb
143
127
  - lib/ruby/dots/persistence.rb
128
+ - lib/ruby/dots/sanity.rb
144
129
  - lib/ruby/dots/version.rb
145
130
  - lib/ruby/templates/usage.txt.erb
146
131
  - lib/tasks/.gitkeep
132
+ - script/stock
147
133
  - spec/integration/command_spec.rb
148
134
  - spec/models/dot_file_spec.rb
149
135
  - spec/spec_helper.rb
@@ -160,17 +146,17 @@ rdoc_options: []
160
146
  require_paths:
161
147
  - lib/ruby
162
148
  required_ruby_version: !ruby/object:Gem::Requirement
149
+ none: false
163
150
  requirements:
164
151
  - - ! '>='
165
152
  - !ruby/object:Gem::Version
166
153
  version: '0'
167
- none: false
168
154
  required_rubygems_version: !ruby/object:Gem::Requirement
155
+ none: false
169
156
  requirements:
170
157
  - - ! '>='
171
158
  - !ruby/object:Gem::Version
172
159
  version: '0'
173
- none: false
174
160
  requirements: []
175
161
  rubyforge_project:
176
162
  rubygems_version: 1.8.23
@@ -1,18 +0,0 @@
1
- #!/bin/zsh
2
- #
3
- # Nightly database import script for eLocal.com.
4
-
5
- # Download the latest database from our backup server
6
- cd /Users/tom/Code/elocal/
7
- bundle exec thor db:import:production
8
-
9
- # Index the new data with Solr
10
- bundle exec thor solr:index_accounts
11
- bundle exec thor solr:index_profiles
12
- bundle exec thor solr:index_categories
13
-
14
- # Send a confirmation email when everything is done
15
- EMAIL="tubbo@psychedeli.ca"
16
- SUBJECT="Imported the production database to playa."
17
- MESSAGE="db:import:production has been run, and the database has been delivered to your local development machine."
18
- echo "To: $EMAIL\nSubject:$SUBJECT\nContent-Type:text/plain;charset="us-ascii"\n\n$MESSAGE" | sendmail -t
data/bin/gbrt DELETED
@@ -1,42 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- def format_commit_info timestamp, time_desc, commit_id, message, ref_name
4
- [
5
- "#{timestamp.strftime("%y %b %d")}, #{timestamp.strftime("%l:%M%p").downcase}",
6
- "(#{time_desc})",
7
- commit_id,
8
- message,
9
- ref_name
10
- ]
11
- end
12
-
13
- def render_commit_info timestamp, time_desc, commit_id, message, ref_name, merged
14
- [
15
- timestamp,
16
- time_desc,
17
- "\e[32m#{ref_name}\e[0m",
18
- (merged ? " #{commit_id}" : "+ \e[33m#{commit_id}\e[0m"),
19
- "\e[#{message[/^Temp/] ? 31 : 90}m#{message.strip}\e[0m"
20
- ].join(' ')
21
- end
22
-
23
- commit_info = `git branch #{ARGV.join(' ')} | cut -c 3-`.strip.split("\n").reject {|ref_name|
24
- ref_name[' -> ']
25
- }.map {|ref_name|
26
- `git log --no-walk --pretty=format:"%ct\n%cr\n%h\n%s" '#{ref_name}' --`.strip.split("\n").push(ref_name)
27
- }.map {|commit_info|
28
- [Time.at(commit_info.shift.to_i)].concat(commit_info)
29
- }.sort_by {|commit_info|
30
- commit_info.first # unix timestamp
31
- }.reverse.map {|commit_info|
32
- format_commit_info(*commit_info)
33
- }.transpose.map {|column|
34
- max_col_length = column.sort_by {|i| i.length }.last.length
35
- column.map {|i| i.ljust(max_col_length) }
36
- }.transpose.map {|commit_info|
37
- commit_info.push(
38
- `git merge-base HEAD #{commit_info[2]}`.chomp[0...7] == commit_info[2]
39
- )
40
- }.each {|commit_info|
41
- puts render_commit_info(*commit_info)
42
- }
data/bin/git_cwd_info DELETED
@@ -1,40 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # -*- coding: utf-8 -*-
3
-
4
- # The methods that get called more than once are memoized.
5
-
6
- def git_repo_path
7
- @git_repo_path ||= `git rev-parse --git-dir 2>/dev/null`.strip
8
- end
9
-
10
- def in_git_repo
11
- !git_repo_path.empty? &&
12
- git_repo_path != '~' &&
13
- git_repo_path != "#{ENV['HOME']}/.git"
14
- end
15
-
16
- def git_parse_branch
17
- @git_parse_branch ||= File.read("#{git_repo_path}/HEAD").strip.scan(/(?<=refs\/heads\/).*$/).first
18
- end
19
-
20
- def git_head_commit_id
21
- `git rev-parse --short HEAD 2>/dev/null`.strip
22
- end
23
-
24
- def git_cwd_dirty
25
- " %{\e[90m%}✗%{\e[0m%}" unless git_repo_path == '.' || `git ls-files -m`.strip.empty?
26
- end
27
-
28
- def rebasing_etc
29
- if File.exists?(File.join(git_repo_path, 'BISECT_LOG'))
30
- "+bisect"
31
- elsif File.exists?(File.join(git_repo_path, 'MERGE_HEAD'))
32
- "+merge"
33
- elsif %w[rebase rebase-apply rebase-merge ../.dotest].any? {|d| File.exists?(File.join(git_repo_path, d)) }
34
- "+rebase"
35
- end
36
- end
37
-
38
- if in_git_repo
39
- print " %{$fg[cyan]%}#{git_parse_branch}%{$reset_color_with_bg%}@%{$fg[violet]%}#{git_head_commit_id}%{$reset_color_with_bg%}#{rebasing_etc}#{git_cwd_dirty}"
40
- end
data/bin/lein DELETED
@@ -1,229 +0,0 @@
1
- #!/bin/bash
2
-
3
- export LEIN_VERSION="2.0.0-preview6"
4
-
5
- case $LEIN_VERSION in
6
- *SNAPSHOT) SNAPSHOT="YES" ;;
7
- *) SNAPSHOT="NO" ;;
8
- esac
9
-
10
- if [ `id -u` -eq 0 ] && [ "$LEIN_ROOT" = "" ]; then
11
- echo "WARNING: You're currently running as root; probably by accident."
12
- echo "Press control-C to abort or Enter to continue as root."
13
- echo "Set LEIN_ROOT to disable this warning."
14
- read _
15
- fi
16
-
17
- NOT_FOUND=1
18
- ORIGINAL_PWD="$PWD"
19
- while [ ! -r "$PWD/project.clj" ] && [ "$PWD" != "/" ] && [ $NOT_FOUND -ne 0 ]
20
- do
21
- cd ..
22
- if [ "$(dirname "$PWD")" = "/" ]; then
23
- NOT_FOUND=0
24
- cd "$ORIGINAL_PWD"
25
- fi
26
- done
27
-
28
- export LEIN_HOME=${LEIN_HOME:-"$HOME/.lein"}
29
-
30
- if [ "$OSTYPE" = "cygwin" ]; then
31
- export LEIN_HOME=`cygpath -w $LEIN_HOME`
32
- fi
33
-
34
- LEIN_JAR="$LEIN_HOME/self-installs/leiningen-$LEIN_VERSION-standalone.jar"
35
-
36
- # normalize $0 on certain BSDs
37
- if [ "$(dirname "$0")" = "." ]; then
38
- SCRIPT="$(which $(basename "$0"))"
39
- else
40
- SCRIPT="$0"
41
- fi
42
-
43
- # resolve symlinks to the script itself portably
44
- while [ -h "$SCRIPT" ] ; do
45
- ls=`ls -ld "$SCRIPT"`
46
- link=`expr "$ls" : '.*-> \(.*\)$'`
47
- if expr "$link" : '/.*' > /dev/null; then
48
- SCRIPT="$link"
49
- else
50
- SCRIPT="$(dirname "$SCRIPT"$)/$link"
51
- fi
52
- done
53
-
54
- BIN_DIR="$(dirname "$SCRIPT")"
55
-
56
- if [ -r "$BIN_DIR/../src/leiningen/version.clj" ]; then
57
- # Running from source checkout
58
- LEIN_DIR="$(dirname "$BIN_DIR")"
59
-
60
- # Need to use lein 1.x to bootstrap the leiningen-core library (for aether)
61
- if [ "$(ls $LEIN_DIR/leiningen-core/lib/*)" = "" ]; then
62
- echo "Leiningen is missing its dependencies."
63
- echo "Please see \"Building\" in the README."
64
- exit 1
65
- fi
66
-
67
- # If project.clj for lein or leiningen-core changes, we must recalculate
68
- LAST_PROJECT_CHECKSUM=$(cat "$LEIN_DIR/.lein-project-checksum" 2> /dev/null)
69
- PROJECT_CHECKSUM=$(sum "$LEIN_DIR/project.clj" "$LEIN_DIR/leiningen-core/project.clj")
70
- if [ "$PROJECT_CHECKSUM" != "$LAST_PROJECT_CHECKSUM" ]; then
71
- if [ -r "$LEIN_DIR/.lein-classpath" ]; then
72
- rm "$LEIN_DIR/.lein-classpath"
73
- fi
74
- fi
75
-
76
- # Use bin/lein to calculate its own classpath since src/ and
77
- # leiningen-core/lib/*jar suffices to run the classpath task.
78
- if [ ! -r "$LEIN_DIR/.lein-classpath" ] && [ "$1" != "classpath" ]; then
79
- echo "Recalculating Leiningen's classpath."
80
- ORIG_PWD="$PWD"
81
- cd "$LEIN_DIR"
82
-
83
- $0 classpath .lein-classpath
84
- sum $LEIN_DIR/project.clj $LEIN_DIR/leiningen-core/project.clj > \
85
- .lein-project-checksum
86
- cd "$ORIG_PWD"
87
- fi
88
-
89
- mkdir -p "$LEIN_DIR/target/classes"
90
- export LEIN_JVM_OPTS=${LEIN_JVM_OPTS:-"-Dclojure.compile.path=$LEIN_DIR/target/classes"}
91
- CLASSPATH="$LEIN_DIR/leiningen-core/src/"
92
- CLASSPATH="$CLASSPATH:$LEIN_DIR/leiningen-core/resources/"
93
- CLASSPATH="$CLASSPATH:$(cat $LEIN_DIR/.lein-classpath 2> /dev/null)"
94
- CLASSPATH="$CLASSPATH:$LEIN_DIR/leiningen-core/lib/*"
95
- CLASSPATH="$CLASSPATH:$LEIN_DIR/test:$LEIN_DIR/target/classes"
96
- CLASSPATH="$CLASSPATH:$LEIN_DIR/src:$LEIN_DIR/resources:$LEIN_JAR"
97
- if [ -f .lein-classpath ]; then
98
- CLASSPATH="`cat .lein-classpath`:$CLASSPATH"
99
- fi
100
- else # Not running from a checkout
101
- # apply context specific CLASSPATH entries
102
- if [ -f .lein-classpath ]; then
103
- CLASSPATH="`cat .lein-classpath`:$LEIN_JAR"
104
- else
105
- CLASSPATH="$LEIN_JAR"
106
- fi
107
-
108
- export LEIN_JVM_OPTS=${LEIN_JVM_OPTS:-"-Xbootclasspath/a:$LEIN_JAR"}
109
-
110
- if [ ! -r "$LEIN_JAR" -a "$1" != "self-install" ]; then
111
- "$0" self-install
112
- fi
113
- fi
114
-
115
- HTTP_CLIENT=${HTTP_CLIENT:-"wget -O"}
116
- if type -p curl >/dev/null 2>&1; then
117
- if [ "$https_proxy" != "" ]; then
118
- CURL_PROXY="-x $https_proxy"
119
- fi
120
- HTTP_CLIENT="curl $CURL_PROXY -f -L -o"
121
- fi
122
-
123
- export JAVA_CMD=${JAVA_CMD:-"java"}
124
- export LEIN_JAVA_CMD=${LEIN_JAVA_CMD:-$JAVA_CMD}
125
-
126
- # Support $JAVA_OPTS for backwards-compatibility.
127
- export JVM_OPTS="${JVM_OPTS:-"$JAVA_OPTS"}"
128
-
129
- # TODO: investigate http://skife.org/java/unix/2011/06/20/really_executable_jars.html
130
- # If you're packaging this for a package manager (.deb, homebrew, etc)
131
- # you need to remove the self-install and upgrade functionality or see lein-pkg.
132
- if [ "$1" = "self-install" ]; then
133
- if [ -r "$LEIN_JAR" ]; then
134
- echo "The self-install jar already exists at $LEIN_JAR."
135
- echo "If you wish to re-download, delete it and rerun \"$0 self-install\"."
136
- exit 1
137
- fi
138
- echo "Downloading Leiningen now..."
139
- LEIN_DIR=`dirname "$LEIN_JAR"`
140
- mkdir -p "$LEIN_DIR"
141
- LEIN_URL="https://github.com/downloads/technomancy/leiningen/leiningen-$LEIN_VERSION-standalone.jar"
142
- $HTTP_CLIENT "$LEIN_JAR" "$LEIN_URL"
143
- if [ $? != 0 ]; then
144
- echo "Failed to download $LEIN_URL"
145
- echo "If you have an old version of libssl you may not have the correct"
146
- echo "certificate authority. Either upgrade or set HTTP_CLIENT to insecure:"
147
- echo " export HTTP_CLIENT=\"wget --no-check-certificate -O\" # or"
148
- echo " export HTTP_CLIENT=\"curl --insecure -f -L -o"
149
- if [ $SNAPSHOT = "YES" ]; then
150
- echo "If you have Maven installed, you can do"
151
- echo "mvn dependency:copy-dependencies; mv target/dependency lib"
152
- echo "See README.md for further SNAPSHOT build instructions."
153
- fi
154
- rm $LEIN_JAR 2> /dev/null
155
- exit 1
156
- fi
157
- elif [ "$1" = "upgrade" ]; then
158
- if [ "$LEIN_DIR" != "" ]; then
159
- echo "The upgrade task is not meant to be run from a checkout."
160
- exit 1
161
- fi
162
- if [ $SNAPSHOT = "YES" ]; then
163
- echo "The upgrade task is only meant for stable releases."
164
- echo "See the \"Hacking\" section of the README."
165
- exit 1
166
- fi
167
- if [ ! -w "$SCRIPT" ]; then
168
- echo "You do not have permission to upgrade the installation in $SCRIPT"
169
- exit 1
170
- else
171
- TARGET_VERSION="${2:-"preview"}"
172
- echo "The script at $SCRIPT will be upgraded to the latest $TARGET_VERSION version."
173
- echo -n "Do you want to continue [Y/n]? "
174
- read RESP
175
- case "$RESP" in
176
- y|Y|"")
177
- echo
178
- echo "Upgrading..."
179
- TARGET="/tmp/lein-$$-upgrade"
180
- if ["$OSTYPE" = "cygwin" ]; then
181
- TARGET=`cygpath -w $TARGET`
182
- fi
183
- LEIN_SCRIPT_URL="https://github.com/technomancy/leiningen/raw/$TARGET_VERSION/bin/lein"
184
- $HTTP_CLIENT "$TARGET" "$LEIN_SCRIPT_URL" \
185
- && mv "$TARGET" "$SCRIPT" \
186
- && chmod +x "$SCRIPT" \
187
- && echo && "$SCRIPT" self-install && echo && echo "Now running" `$SCRIPT version`
188
- exit $?;;
189
- *)
190
- echo "Aborted."
191
- exit 1;;
192
- esac
193
- fi
194
- else
195
- if [ "$OSTYPE" = "cygwin" ]; then
196
- # When running on Cygwin, use Windows-style paths for java
197
- ORIGINAL_PWD=`cygpath -w "$ORIGINAL_PWD"`
198
- CLASSPATH=`cygpath -wp "$CLASSPATH"`
199
- fi
200
-
201
- if [ $DEBUG ]; then
202
- echo "Classpath: $CLASSPATH"
203
- fi
204
-
205
- TRAMPOLINE_FILE="/tmp/lein-trampoline-$$"
206
- if [ "$OSTYPE" = "cygwin" ]; then
207
- TRAMPOLINE_FILE=`cygpath -w $TRAMPOLINE_FILE`
208
- fi
209
-
210
- $LEIN_JAVA_CMD \
211
- -client -XX:+TieredCompilation \
212
- $LEIN_JVM_OPTS \
213
- -Dfile.encoding=UTF-8 \
214
- -Dmaven.wagon.http.ssl.easy=false \
215
- -Dleiningen.original.pwd="$ORIGINAL_PWD" \
216
- -Dleiningen.trampoline-file=$TRAMPOLINE_FILE \
217
- -cp "$CLASSPATH" \
218
- clojure.main -m leiningen.core.main "$@"
219
-
220
- EXIT_CODE=$?
221
-
222
- if [ -r $TRAMPOLINE_FILE ]; then
223
- TRAMPOLINE="$(cat $TRAMPOLINE_FILE)"
224
- rm $TRAMPOLINE_FILE
225
- exec sh -c "exec $TRAMPOLINE"
226
- else
227
- exit $EXIT_CODE
228
- fi
229
- fi
data/bin/loggly DELETED
@@ -1,166 +0,0 @@
1
- #!/usr/bin/env python
2
-
3
- """
4
- Loggly CLI interface - standalone (Just Python). Deals with paging results automatically so you can easily grab >2000 rows.
5
-
6
- Run `loggly.py --help` to see usage information.
7
-
8
- TODO:
9
- * Support XML format results (ie. combining multiple pages of results together)
10
- * Facet support
11
-
12
- Rob Coup - @amatix - robert.coup@koordinates.com
13
-
14
- -------
15
-
16
- Copyright (c) 2012, Robert Coup
17
- All rights reserved.
18
-
19
- Redistribution and use in source and binary forms, with or without
20
- modification, are permitted provided that the following conditions are met:
21
-
22
- 1. Redistributions of source code must retain the above copyright notice, this
23
- list of conditions and the following disclaimer.
24
- 2. Redistributions in binary form must reproduce the above copyright notice,
25
- this list of conditions and the following disclaimer in the documentation
26
- and/or other materials provided with the distribution.
27
-
28
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
29
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
30
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
31
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
32
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
33
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
34
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
35
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
37
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38
-
39
- The views and conclusions contained in the software and documentation are those
40
- of the authors and should not be interpreted as representing official policies,
41
- either expressed or implied, of the FreeBSD Project.
42
- """
43
-
44
- from optparse import OptionParser
45
- import urllib
46
- import urllib2
47
- import os
48
- import json
49
- import sys
50
- import time
51
-
52
-
53
- def main():
54
- parser = OptionParser("Usage: %prog [options] SEARCH_QUERY")
55
-
56
- parser.add_option("--username", help="Loggly username. Or specify via LOGGLY_USERNAME environment variable")
57
- parser.add_option("--password", help="Loggly password. Or specify via LOGGLY_PASSWORD")
58
- parser.add_option("--subdomain", help="Loggly subdomain (eg. foo). Or specify via LOGGLY_SUBDOMAIN")
59
-
60
- parser.add_option("--from", help="Start time for the search.", default="NOW-24HOURS", dest="start")
61
- parser.add_option("--to", help="End time for the search.", default="NOW", dest="end")
62
- parser.add_option("--format", help="Output format, either 'json', 'xml', 'csv', or 'text'.", choices=('text', 'json', 'csv', 'xml'), default="text")
63
- parser.add_option("--order", help="Direction of results returned, either 'asc' or 'desc'.", choices=('asc', 'desc'), default="asc")
64
-
65
- # search API
66
- parser.add_option("--rows", help="Number of rows returned by search. 0 will get all matching rows via paging.", type="int", default=0)
67
-
68
- options, args = parser.parse_args()
69
-
70
- if len(args) != 1:
71
- parser.error("Need to specify SEARCH_QUERY as one argument")
72
-
73
- if not options.username and 'LOGGLY_USERNAME' in os.environ:
74
- options.username = os.environ['LOGGLY_USERNAME']
75
- if not options.password and 'LOGGLY_PASSWORD' in os.environ:
76
- options.password = os.environ['LOGGLY_PASSWORD']
77
- if not options.subdomain and 'LOGGLY_SUBDOMAIN' in os.environ:
78
- options.subdomain = os.environ['LOGGLY_SUBDOMAIN']
79
-
80
- if not options.username:
81
- parser.error("Need to specify either LOGGLY_USERNAME or --username")
82
- if not options.password:
83
- parser.error("Need to specify either LOGGLY_PASSWORD or --password")
84
- if not options.subdomain:
85
- parser.error("Need to specify either LOGGLY_SUBDOMAIN or --subdomain")
86
-
87
- url = "https://%s.loggly.com/api/search/" % options.subdomain
88
-
89
- password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
90
- password_mgr.add_password(None, url, options.username, options.password)
91
- handler = urllib2.HTTPBasicAuthHandler(password_mgr)
92
- opener = urllib2.build_opener(handler)
93
-
94
- if options.rows > 2000 or options.rows <= 0:
95
- target_rows = None if options.rows <= 0 else options.rows
96
- rows = 2000
97
- paging = True
98
- else:
99
- rows = options.rows
100
- paging = False
101
-
102
- params = {
103
- 'q': args[0],
104
- 'from': options.start,
105
- 'until': options.end,
106
- 'format': options.format,
107
- 'order': options.order,
108
- 'rows': rows,
109
- 'start': 0,
110
- }
111
-
112
- results = None
113
- while True:
114
- req_url = url + '?' + urllib.urlencode(params)
115
- print >>sys.stderr, req_url
116
- try:
117
- resp = opener.open(req_url)
118
- except Exception, e:
119
- print >>sys.stderr, "\t%s -- retrying" % repr(e)
120
- time.sleep(3)
121
- resp = opener.open(req_url)
122
-
123
- result_count = 0
124
- if options.format in ('csv', 'text'):
125
- # can stream the output
126
- for line in resp:
127
- if len(line) > 1:
128
- result_count += 1
129
- print line,
130
- elif options.format == 'json':
131
- # merge JSON result pages in.
132
- r_this = json.load(resp)
133
- result_count += len(r_this['data'])
134
- if results is None:
135
- results = r_this
136
- else:
137
- results['data'] += r_this['data']
138
- elif options.format == 'xml':
139
- # TODO: merge XML result pages together
140
- print resp.read()
141
- raise NotImplementedError("TODO: implement XML-format result paging")
142
-
143
- if paging:
144
- if target_rows:
145
- got = params['start'] + result_count
146
- if got >= target_rows:
147
- # got the target number of rows
148
- break
149
- params['rows'] += min(2000, target_rows - got)
150
- elif result_count == 0:
151
- # no more results
152
- break
153
- params['start'] += 2000
154
- else:
155
- # no paging, just get required
156
- break
157
-
158
- if options.format == 'json':
159
- json.dump(results, sys.stdout, indent=2)
160
- sys.stdout.write("\n")
161
- elif options.format == 'xml':
162
- # TODO: output combined XML results
163
- raise NotImplementedError("TODO: implement XML-format result paging")
164
-
165
- if __name__ == "__main__":
166
- main()
Binary file
data/bin/repl.sh DELETED
@@ -1,6 +0,0 @@
1
- #!/bin/zsh
2
-
3
- for file in $(grep -il "codehilite" vendor/assets/stylesheets/pygments/*.css); do
4
- sed -e "s/codehilite/highlight/g" $file > tmp/current.tmp
5
- mv tmp/current.tmp $file
6
- done
data/config/Gemfile DELETED
@@ -1,19 +0,0 @@
1
- # A global collection of gems that are used in all dirs.
2
- #
3
- # Add gems here to be included on the whole system.
4
-
5
- source :rubygems
6
-
7
- group :version_control do
8
- gem 'git_tracker'
9
- gem 'git-process'
10
- end
11
-
12
- group :development_tools do
13
- gem 'rails'
14
- gem 'pv'
15
- end
16
-
17
- group :configuration_management do
18
- gem 'zsh_dots' # keep up to date with the latest version
19
- end