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.
- data/bin/gitkeep +20 -0
- data/lib/gitkeep.rb +67 -0
- metadata +47 -0
data/bin/gitkeep
ADDED
@@ -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
|
data/lib/gitkeep.rb
ADDED
@@ -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: []
|