gitkeep 0.2.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 (3) hide show
  1. data/bin/gitkeep +20 -0
  2. data/lib/gitkeep.rb +67 -0
  3. metadata +47 -0
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'find'
4
+ require 'gitkeep'
5
+
6
+ gitkeep = Gitkeep.new
7
+
8
+ if ARGV.size == 0
9
+ gitkeep.create(".")
10
+ else
11
+ if ARGV.size == 1 && ARGV[0] == "-d"
12
+ gitkeep.dryrun = true
13
+ gitkeep.create(".")
14
+ else
15
+ ARGV.sort.each do |arg|
16
+ gitkeep.dryrun = true if arg == "-d"
17
+ gitkeep.create(arg) unless arg =~ /^-+/
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,67 @@
1
+ class Gitkeep
2
+
3
+ attr_accessor :dryrun
4
+
5
+ def initialize
6
+ @dryrun = false
7
+ @filecount = 0
8
+ end
9
+
10
+ def create(path)
11
+ path = "." if path.empty?
12
+
13
+ unless File.directory?(path)
14
+ puts "error: directory \"#{path}\" not found! abort..."
15
+ return false
16
+ end
17
+
18
+ puts "creating files..."
19
+
20
+ ignores = ['.git']
21
+
22
+ Find.find(path) do |p|
23
+ name = File.basename(p)
24
+ if File.directory?(p)
25
+ if ignores.include?(name)
26
+ Find.prune
27
+ else
28
+ if Dir.entries(p).size == 2
29
+ @filecount += 1
30
+ createFile(p)
31
+ end
32
+ end
33
+ end
34
+ end
35
+
36
+ puts "finished. #{@filecount} file(s) created!"
37
+ end
38
+
39
+ protected
40
+
41
+ def createFile(path)
42
+ gitkeep = "#{path}/.gitkeep"
43
+ unless File.exists?(gitkeep)
44
+ unless @dryrun
45
+ f = File.new(gitkeep, "w+")
46
+ f.close
47
+ puts green("created #{gitkeep}")
48
+ else
49
+ puts blue("[dryrun] created #{gitkeep}")
50
+ end
51
+ end
52
+ end
53
+
54
+ private
55
+
56
+ def colorize(text, color_code)
57
+ "\e[#{color_code}m#{text}\e[0m"
58
+ end
59
+
60
+ def green(text)
61
+ colorize(text, 32)
62
+ end
63
+
64
+ def blue(text)
65
+ colorize(text, 36)
66
+ end
67
+ end
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gitkeep
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Arthur Zielinski
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-08-17 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: create .gitkeep files in all empty directories in your project
15
+ email: arthurz.mobile@gmail.com
16
+ executables:
17
+ - gitkeep
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - lib/gitkeep.rb
22
+ - bin/gitkeep
23
+ homepage: http://rubygems.org/gems/gitkeep
24
+ licenses: []
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ requirements: []
42
+ rubyforge_project:
43
+ rubygems_version: 1.8.24
44
+ signing_key:
45
+ specification_version: 3
46
+ summary: gitkeep
47
+ test_files: []