This repository has been archived by the owner on Sep 27, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathThorfile
125 lines (100 loc) · 3.9 KB
/
Thorfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
class Jplugin < Thor
include Thor::Actions
desc "compile", "Compiles js file to public/"
def compile
relative = 'jquery-insta-bam.js'
text = File.read(relative)
text.gsub!(/Updated at: (.*)/) { |m| m.gsub($1, "#{Time.now}") }
File.open( relative, "w") { |file| file.puts text }
run( "closure-compiler --js #{relative} --js_output_file ./public/#{relative.gsub(".js","-min.js")}" )
end
class Release < self
desc "patch", "Release patch version"
def patch
git_status = run( '[[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]] && echo "dirty"', :capture => true )
unless git_status =~ /^dirty/
label = nil
version = nil
parts = nil
gsub_file( 'insta-bam.jquery.json', /"version"[:].+$/) do |match|
label, version = *match.split(':', 2)
parts = version.strip.split('.')
parts[2] = parts[2].to_i + 1
"#{label}: #{parts.join('.')}\","
end
gsub_file( 'jquery-insta-bam.js', /Version[:].+$/) do |match|
label, version = *match.split(':', 2)
parts = version.strip.split('.')
parts[2] = parts[2].to_i + 1
"#{label}: #{parts.join('.')}"
end
run( "thor jplugin:compile")
run( "git add .; git commit -m '#{label}: #{parts.join('.')}';" )
run( "git tag -a v#{parts.join('.')} -m '#{label}: #{parts.join('.')}'")
run( "git push --tags; git push origin master;" )
else
say( 'Your git branch is not clean', :red )
end
end
desc "minor", "Release minor version"
def minor
git_status = run( '[[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]] && echo "dirty"', :capture => true )
unless git_status =~ /^dirty/
label = nil
version = nil
parts = nil
gsub_file( 'insta-bam.jquery.json', /"version"[:].+$/) do |match|
label, version = *match.split(':', 2)
parts = version.strip.split('.')
parts[1] = parts[1].to_i + 1
parts[2] = 0
"#{label}: #{parts.join('.')}\","
end
gsub_file( 'jquery-insta-bam.js', /Version[:].+$/) do |match|
label, version = *match.split(':', 2)
parts = version.strip.split('.')
parts[1] = parts[1].to_i + 1
parts[2] = 0
"#{label}: #{parts.join('.')}"
end
run( "thor jplugin:compile")
run( "git add .; git commit -m '#{label}: #{parts.join('.')}';" )
run( "git tag -a v#{parts.join('.')} -m '#{label}: #{parts.join('.')}'")
run( "git push --tags; git push origin master;" )
else
say( 'Your git branch is not clean', :red )
end
end
desc "major", "Release major version"
def major
git_status = run( '[[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]] && echo "dirty"', :capture => true )
unless git_status =~ /^dirty/
label = nil
version = nil
parts = nil
gsub_file( 'insta-bam.jquery.json', /"version"[:].+$/) do |match|
label, version = *match.split(':', 2)
parts = version.strip.split('.')
parts[0] = parts[0].gsub(/\"/,'').to_i + 1
parts[1] = 0
parts[2] = 0
"#{label}: \"#{parts.join('.')}\","
end
gsub_file( 'jquery-insta-bam.js', /Version[:].+$/) do |match|
label, version = *match.split(':', 2)
parts = version.strip.split('.')
parts[0] = parts[0].to_i + 1
parts[1] = 0
parts[2] = 0
"#{label}: #{parts.join('.')}"
end
run( "thor jplugin:compile")
run( "git add .; git commit -m '#{label}: #{parts.join('.')}';" )
run( "git tag -a v#{parts.join('.')} -m '#{label}: #{parts.join('.')}'")
run( "git push --tags; git push origin master;" )
else
say( 'Your git branch is not clean', :red )
end
end
end
end