git-ui 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +8 -15
  3. data/lib/git_ui.rb +30 -3
  4. metadata +50 -51
  5. data/doc/README +0 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 77391e733d2cbee2262a875174fec4ee2aabbc6b
4
+ data.tar.gz: af80577a11b1ade2589884746c055b7225a2fab5
5
+ SHA512:
6
+ metadata.gz: fe9c96a88f0b86c5fa5a74c3c9b3e90c145a56b1298e4e03d03ae7e4621ab7047cee617b6e61630446408324316056d6d9e8379d6ec8c6095c915b021f8faef5
7
+ data.tar.gz: 1c26b7990f6a4fe5193aeadb2ae08f4ddbab9dc2afa4e095dc759cd809d4e451b0d87cdc8e017a27a1f244644f30c88052b25546ec0f47405bcc4a6d77e53af7
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
- require 'rake/gempackagetask'
2
- require 'rake/rdoctask'
1
+ require 'rubygems/package_task'
2
+ require 'rdoc/task'
3
3
 
4
4
  $: << "#{File.dirname(__FILE__)}/lib"
5
5
 
@@ -7,7 +7,7 @@ spec = Gem::Specification.new { |s|
7
7
  s.platform = Gem::Platform::RUBY
8
8
 
9
9
  s.author = "Pete Elmore"
10
- s.email = "1337p337@gmail.com"
10
+ s.email = "pete@debu.gs"
11
11
  s.files = Dir["{lib,doc,bin,ext}/**/*"].delete_if {|f|
12
12
  /\/rdoc(\/|$)/i.match f
13
13
  } + %w(Rakefile)
@@ -20,22 +20,15 @@ spec = Gem::Specification.new { |s|
20
20
  s.name = 'git-ui'
21
21
  s.summary = 'Hacky attempt at a workable UI for git, modeled slightly on '\
22
22
  'darcs.'
23
- s.homepage = "http://debu.gs/#{s.name}"
23
+ s.homepage = "http://github.com/pete/#{s.name}"
24
24
  %w(colorize escape).each &s.method(:add_dependency)
25
- s.version = '0.0.1'
25
+ s.version = '0.1.0'
26
26
  }
27
27
 
28
- Rake::RDocTask.new(:doc) { |t|
29
- t.main = 'doc/README'
30
- t.rdoc_files.include 'lib/**/*.rb', 'doc/*', 'bin/*', 'ext/**/*.c',
31
- 'ext/**/*.rb'
32
- t.options << '-S' << '-N'
33
- t.rdoc_dir = 'doc/rdoc'
34
- }
35
-
36
- Rake::GemPackageTask.new(spec) { |pkg|
28
+ Gem::PackageTask.new(spec) { |pkg|
37
29
  pkg.need_tar_bz2 = true
38
30
  }
31
+
39
32
  desc "Cleans out the packaged files."
40
33
  task(:clean) {
41
34
  FileUtils.rm_rf 'pkg'
@@ -43,7 +36,7 @@ task(:clean) {
43
36
 
44
37
  task(:install => :package) {
45
38
  g = "pkg/#{spec.name}-#{spec.version}.gem"
46
- system "sudo gem install -l #{g}"
39
+ system "gem install -l #{g}"
47
40
  }
48
41
 
49
42
  task(:irb) {
@@ -92,7 +92,7 @@ module GitUI
92
92
  ]
93
93
 
94
94
  while i < cs.size
95
- puts "#{cs[i][:filename]} (#{i + 1}/#{cs.size})"
95
+ puts "#{cs[i][:filename]} (#{fsz(cs[i][:filename])}, #{i + 1}/#{cs.size})"
96
96
  decide "Add?", acts, color
97
97
  end
98
98
 
@@ -105,6 +105,7 @@ module GitUI
105
105
 
106
106
  act = nil
107
107
  loop {
108
+ uncook_stty!
108
109
  print prompt
109
110
  $stdout.flush
110
111
  inp = $stdin.read(1)
@@ -114,6 +115,7 @@ module GitUI
114
115
  " #{a.key}: #{a.desc}"
115
116
  }
116
117
  elsif a = acts.find { |a| inp == a.key }
118
+ cook_stty!
117
119
  return a.block.call
118
120
  else
119
121
  puts "No such action: #{inp}"
@@ -155,13 +157,26 @@ module GitUI
155
157
  ]
156
158
 
157
159
  while i < cs.size
158
- puts "#{cs[i][:filename]} #{cs[i][:status]} (#{i + 1}/#{cs.size})"
160
+ puts "#{cs[i][:filename]} #{cs[i][:status]} (#{fsz(cs[i][:filename])}, #{i + 1}/#{cs.size})"
159
161
  decide "Record?", acts, :cyan
160
162
  end
161
163
 
162
164
  cs
163
165
  end
164
166
 
167
+ def fsz fn
168
+ sz = File.stat(fn).size rescue 0
169
+ st = sz.to_s
170
+ us = %w(kB MB GB)
171
+ u = 'B'
172
+ while sz > 1024 && !us.empty?
173
+ sz /= 1024.0
174
+ u = us.shift
175
+ st = '%0.2f' % sz
176
+ end
177
+ st << u
178
+ end
179
+
165
180
  def commit(*cs)
166
181
  fs = cs.select { |c|
167
182
  [:commit, :add].include? c[:action]
@@ -172,7 +187,11 @@ module GitUI
172
187
  end
173
188
  puts "Committing #{fs.join(', ')}...".colorize(:green)
174
189
  system 'git', 'add', *fs
175
- system 'git', 'commit', *fs
190
+ unless system('git', 'commit', *fs)
191
+ # Put things where they were if the commit failed.
192
+ puts "Commit failed! Resetting #{fs.join(', ')}.".colorize(:red)
193
+ system 'git', 'reset', *fs
194
+ end
176
195
  end
177
196
 
178
197
  def determine_cmd args
@@ -201,5 +220,13 @@ module GitUI
201
220
  end
202
221
  end
203
222
 
223
+ def cook_stty!
224
+ system "stty sane"
225
+ end
226
+
227
+ def uncook_stty!
228
+ system "stty -icanon min 1"
229
+ end
230
+
204
231
  extend self
205
232
  end
metadata CHANGED
@@ -1,79 +1,78 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: git-ui
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Pete Elmore
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
-
12
- date: 2009-04-28 00:00:00 -07:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
11
+ date: 2014-12-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
16
14
  name: colorize
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
17
20
  type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
25
- - !ruby/object:Gem::Dependency
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
26
28
  name: escape
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
27
34
  type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: "0"
34
- version:
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
35
41
  description:
36
- email: 1337p337@gmail.com
37
- executables:
42
+ email: pete@debu.gs
43
+ executables:
38
44
  - git-i
39
45
  extensions: []
40
-
41
- extra_rdoc_files:
46
+ extra_rdoc_files:
42
47
  - doc/LICENSE
43
48
  - doc/TODO
44
- - doc/README
45
- files:
49
+ files:
46
50
  - lib/git_ui.rb
47
51
  - doc/LICENSE
48
52
  - doc/TODO
49
- - doc/README
50
53
  - bin/git-i
51
54
  - Rakefile
52
- has_rdoc: true
53
- homepage: http://debu.gs/git-ui
55
+ homepage: http://github.com/pete/git-ui
56
+ licenses: []
57
+ metadata: {}
54
58
  post_install_message:
55
59
  rdoc_options: []
56
-
57
- require_paths:
60
+ require_paths:
58
61
  - lib
59
- required_ruby_version: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- version: "0"
64
- version:
65
- required_rubygems_version: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: "0"
70
- version:
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
71
72
  requirements: []
72
-
73
73
  rubyforge_project:
74
- rubygems_version: 1.3.1
74
+ rubygems_version: 2.0.14
75
75
  signing_key:
76
- specification_version: 2
76
+ specification_version: 4
77
77
  summary: Hacky attempt at a workable UI for git, modeled slightly on darcs.
78
78
  test_files: []
79
-
data/doc/README DELETED
File without changes