woof_util 0.0.9 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/woof_util/gem_rake_tasks.rb +104 -0
- metadata +5 -1
@@ -0,0 +1,104 @@
|
|
1
|
+
module WoofUtil
|
2
|
+
module GemRakeTasks
|
3
|
+
require "excon"
|
4
|
+
require "highline/import"
|
5
|
+
|
6
|
+
include Rake::DSL
|
7
|
+
|
8
|
+
extend self
|
9
|
+
|
10
|
+
def version
|
11
|
+
begin
|
12
|
+
File.read("VERSION").chomp
|
13
|
+
rescue Errno::ENOENT
|
14
|
+
"0.0.0"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def bump_version vtype=((ENV["bump_type"] || :patch).to_sym)
|
19
|
+
v = {}
|
20
|
+
vstring = version
|
21
|
+
puts "old: #{vstring}"
|
22
|
+
v[:major], v[:minor], v[:patch] = vstring.split "."
|
23
|
+
v[vtype] = (v[vtype].to_i + 1).to_s
|
24
|
+
vstring = [v[:major], v[:minor], v[:patch]].join "."
|
25
|
+
|
26
|
+
stashdata = `git stash save versionbump_#{vstring}`
|
27
|
+
$stdout.write stashdata
|
28
|
+
|
29
|
+
File.write "VERSION", "#{vstring}\n"
|
30
|
+
system "git add VERSION"
|
31
|
+
system "git commit -m versionbump_to_#{vstring}"
|
32
|
+
system "git stash pop" unless stashdata =~ /No local changes to save/
|
33
|
+
puts "new: #{vstring}"
|
34
|
+
vstring
|
35
|
+
end
|
36
|
+
|
37
|
+
def rubygems_logout
|
38
|
+
begin
|
39
|
+
File.unlink "#{ENV["HOME"]}/.gem/credentials"
|
40
|
+
rescue Errno::ENOENT
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def rubygems_login
|
45
|
+
rubygems_logout
|
46
|
+
|
47
|
+
user = ask("Rubygems username: ")
|
48
|
+
pw = ask("Password: ") { |q| q.echo = false }
|
49
|
+
|
50
|
+
resp = Excon.get "https://#{user}:#{pw}@rubygems.org/api/v1/api_key.yaml"
|
51
|
+
raise "login fail #{resp.status}" unless resp.status == 200
|
52
|
+
File.umask(0077)
|
53
|
+
File.write "#{ENV["HOME"]}/.gem/credentials", resp.body
|
54
|
+
end
|
55
|
+
|
56
|
+
def push_to_github
|
57
|
+
system "git push github master"
|
58
|
+
end
|
59
|
+
|
60
|
+
def hello
|
61
|
+
puts "hello world"
|
62
|
+
end
|
63
|
+
|
64
|
+
def gemspec_file_name
|
65
|
+
raise "cwd needs exactly 1 gemspec" if Dir.glob("*.gemspec").length != 1
|
66
|
+
Dir.glob("*.gemspec")[0]
|
67
|
+
end
|
68
|
+
|
69
|
+
def gemname
|
70
|
+
eval(File.read gemspec_file_name).name
|
71
|
+
end
|
72
|
+
|
73
|
+
def build_the_gem
|
74
|
+
begin ; File.unlink gem_file_name
|
75
|
+
rescue Errno::ENOENT ; end
|
76
|
+
system "gem build #{gemspec_file_name}"
|
77
|
+
raise "can't build gem" unless File.exists? gem_file_name
|
78
|
+
end
|
79
|
+
|
80
|
+
def gem_file_name
|
81
|
+
"#{gemname}-#{version}.gem"
|
82
|
+
end
|
83
|
+
|
84
|
+
def push_to_rubygems
|
85
|
+
system "gem push #{gem_file_name}"
|
86
|
+
end
|
87
|
+
|
88
|
+
def create_tasks
|
89
|
+
namespace :gem do
|
90
|
+
[:rubygems_login, :rubygems_logout,
|
91
|
+
:bump_version, :push_to_github,
|
92
|
+
:build_the_gem, :push_to_rubygems, :hello].each do |tname|
|
93
|
+
Rake::Task.define_task tname do
|
94
|
+
send tname
|
95
|
+
end
|
96
|
+
end
|
97
|
+
task :pushify => [:bump_version, :push_to_github,
|
98
|
+
:build_the_gem, :push_to_rubygems] do
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: woof_util
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -17,6 +17,7 @@ executables: []
|
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
|
+
- lib/woof_util/gem_rake_tasks.rb
|
20
21
|
- lib/woof_util.rb
|
21
22
|
homepage: https://github.com/tmaher/woofutil
|
22
23
|
licenses: []
|
@@ -30,6 +31,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
30
31
|
- - ! '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
34
|
+
segments:
|
35
|
+
- 0
|
36
|
+
hash: -1987400709276425442
|
33
37
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
38
|
none: false
|
35
39
|
requirements:
|