git-ui 0.0.1 → 0.1.0

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.
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