intent 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/projects +11 -0
- data/lib/intent/projects/manager.rb +20 -0
- data/lib/intent/projects/status.rb +39 -0
- data/lib/intent/projects.rb +4 -0
- data/lib/intent/version.rb +1 -1
- metadata +6 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea2daf59cb345df7bd72c851cddc2ecde68784fa
|
4
|
+
data.tar.gz: 1075d0564b4c0dea690c2359d5cc97d8ec462382
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35ec82d5b361797039e81871d9c938627edc22dc7e6a9cb300b3bcd64319edb10b97965ef9d644af914a957c6b5e1ee4a4e67671b4d139efa78bc412deb8b04b
|
7
|
+
data.tar.gz: 9c66b534b656c965a11413a27577ac7732e81d52887931ca74a597a352c5288aaff5eeac20d2d8fff6d0dd361747d376d80a712069eefa1ed40a27b517be3296
|
data/bin/projects
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
path = __FILE__
|
4
|
+
while File.symlink?(path)
|
5
|
+
path = File.expand_path(File.readlink(path), File.dirname(path))
|
6
|
+
end
|
7
|
+
$:.unshift(File.join(File.dirname(File.expand_path(path)), '..', 'lib'))
|
8
|
+
|
9
|
+
require 'intent'
|
10
|
+
|
11
|
+
Intent::Projects::Manager.run(ARGV.dup)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Intent
|
2
|
+
module Projects
|
3
|
+
class Manager
|
4
|
+
def self.run(args, output=STDOUT)
|
5
|
+
if args.empty?
|
6
|
+
print_help(output)
|
7
|
+
else
|
8
|
+
case args.first.to_sym
|
9
|
+
when :status
|
10
|
+
Status.run(File.expand_path('~/Projects').to_s)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.print_help(output)
|
16
|
+
output.puts "usage: review"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Intent
|
2
|
+
module Projects
|
3
|
+
class Status
|
4
|
+
def self.run(projects_dir)
|
5
|
+
project_index = {}
|
6
|
+
|
7
|
+
Dir["#{projects_dir}/*"].each do |project|
|
8
|
+
if Dir.exists?(project) && Dir.exists?("#{project}/.git")
|
9
|
+
Dir.chdir(project)
|
10
|
+
git_output = `git status`
|
11
|
+
project_name = Pathname.new(project).basename
|
12
|
+
|
13
|
+
status = {
|
14
|
+
untracked_files: git_output.include?('Untracked files'),
|
15
|
+
unstaged_edits: git_output.include?('Changes not staged for commit')
|
16
|
+
}
|
17
|
+
|
18
|
+
if status[:untracked_files] || status[:unstaged_edits]
|
19
|
+
project_index[project_name] = status
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
pastel = Pastel.new
|
25
|
+
|
26
|
+
project_index.each do |key, value|
|
27
|
+
result = []
|
28
|
+
if value[:untracked_files]
|
29
|
+
result << pastel.red('untracked files')
|
30
|
+
end
|
31
|
+
if value[:unstaged_edits]
|
32
|
+
result << pastel.red('unstaged edits')
|
33
|
+
end
|
34
|
+
puts "#{pastel.bold('+')}#{pastel.bold(key)} contains #{result.join(' and ')}."
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/intent/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: intent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Rickerby
|
@@ -126,6 +126,7 @@ description:
|
|
126
126
|
email:
|
127
127
|
- me@maetl.net
|
128
128
|
executables:
|
129
|
+
- projects
|
129
130
|
- review
|
130
131
|
- todo
|
131
132
|
extensions: []
|
@@ -138,11 +139,15 @@ files:
|
|
138
139
|
- LICENSE.txt
|
139
140
|
- README.md
|
140
141
|
- Rakefile
|
142
|
+
- bin/projects
|
141
143
|
- bin/review
|
142
144
|
- bin/todo
|
143
145
|
- intent.gemspec
|
144
146
|
- lib/gem_ext/todo-txt.rb
|
145
147
|
- lib/intent.rb
|
148
|
+
- lib/intent/projects.rb
|
149
|
+
- lib/intent/projects/manager.rb
|
150
|
+
- lib/intent/projects/status.rb
|
146
151
|
- lib/intent/review.rb
|
147
152
|
- lib/intent/review/manager.rb
|
148
153
|
- lib/intent/todo.rb
|