forked from tslocke/hobo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
hobo_dev.sake
83 lines (73 loc) · 2.26 KB
/
hobo_dev.sake
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
# A set of sake tasks to manage Hobo gems
desc 'Clone a copy of the Hobo repository; set GITHUB_USER=tablatom for Tom\'s repository'
task 'hobo:clone' => [ 'hobo:env' ] do
hobo = ENV["HOBO_GEM_ROOT"]
if File.exists?(hobo) then
puts("#{ENV["HOBO_GEM_ROOT"]} already exists!")
exit
end
require("fileutils")
FileUtils.mkdir_p(hobo)
sh("git clone git://github.com/#{ENV["GITHUB_USER"]}/hobo.git .")
end
desc 'Update your local Hobo repositories. Run from anywhere.'
task 'hobo:update' => [ 'hobo:env' ] do
cd(ENV["HOBO_GEM_ROOT"])
sh("git fetch")
sh("git rebase origin/master")
end
desc 'Uninstall all RubyGems related to Hobo'
task 'hobo:gems:wipe' do
windows = PLATFORM =~ /win32|cygwin/ rescue nil
sudo = windows ? ("") : ("sudo")
gems = `gem list hobo`
gems.split("\n").each do |line|
next unless line =~ /^(hobo[^ ]+)/
sh("#{sudo} gem uninstall -a -i -x #{$1}")
end
end
desc 'Pull fresh copies of Hobo and refresh all the gems'
task 'hobo:gems:refresh' => [ 'hobo:update', 'hobo:install' ] do
# do nothing
end
desc "Install gem hobosupport"
task "hobo:install:support" => [ 'hobo:env' ] do
cd(ENV["HOBO_GEM_ROOT"])
cd("hobosupport")
sh("rake install")
cd("..")
end
desc "Install gem hobofields"
task "hobo:install:fields" => [ 'hobo:env' ] do
cd(ENV["HOBO_GEM_ROOT"])
cd("hobofields")
sh("rake install")
cd("..")
end
desc "Install gem hobo"
task "hobo:install:hobo" => [ 'hobo:env' ] do
cd(ENV["HOBO_GEM_ROOT"])
cd("hobo")
sh("rake install")
cd("..")
end
desc 'Install hobo gems'
task 'hobo:install' => [ 'hobo:install:support', 'hobo:install:fields', 'hobo:install:hobo' ] do
# do nothing
end
desc 'Remove and reinstall Hobo sake recipes'
task 'hobo:sake:refresh' do
["clone", "update", "gems:wipe", "gems:refresh", "install", "install:core", "install:more", "sake:refresh"].each do |t|
sh("sake -u hobo:#{t}")
end
sh("sake -i http://hobocentral.com/hobo_dev.sake")
end
desc 'Uninstall all hobo:xxx tasks'
task 'hobo:sake:uninstall' do
`sake -T | grep hobo | sed -e \"s/sake //\" | sed -e \"s/ .*//\" | xargs sake -u`
end
task 'hobo:env' do
ENV["GEM_SRC_ROOT"] ||= File.expand_path(File.join("~", "gems"))
ENV["HOBO_GEM_ROOT"] ||= File.join(ENV["GEM_SRC_ROOT"], "hobo")
ENV["GITHUB_USER"] ||= "tablatom"
end