herokuise 0.8.3 → 0.9

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 (4) hide show
  1. data/Rakefile +1 -1
  2. data/bin/herokuise +64 -29
  3. data/herokuise.gemspec +2 -2
  4. metadata +4 -5
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('herokuise', '0.8.3') do |p|
5
+ Echoe.new('herokuise', '0.9') do |p|
6
6
  p.description = "automate getting a site on heroku and git"
7
7
  p.url = "http://github.com/orta/herokuise"
8
8
  p.author = "orta therox"
@@ -1,52 +1,83 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'open-uri'
3
+ require 'optparse'
4
+ require 'net/http'
5
+ require 'uri'
6
+
7
+ # so you can tell the difference between herokuise and general output
8
+ def log(bit)
9
+ puts "\033[35m#{bit} \033[0m"
10
+ end
11
+
12
+ options = {}
13
+ ARGV << "-h" if ARGV.empty?
14
+
15
+ optparse = OptionParser.new do|opts|
16
+ opts.banner = "Usage: herokuise [project_name] [options] this will create a github repo and set up a sinatra app serving static content on heroku"
17
+
18
+ options[:nogithub] = false
19
+ opts.on( '-ng', '--no-github', 'Don\'t create a github repository' ) do
20
+ options[:nogithub] = true
21
+ end
22
+
23
+ opts.on( '-h', '--help', 'Display this screen' ) do
24
+ puts opts
25
+ exit
26
+ end
27
+ end
28
+
29
+ optparse.parse!
3
30
 
4
31
  appname = ARGV[0]
5
- if !appname
6
- puts" Usage: herokuise [appname] - this will create a github repo and set up a sinatra app serving static content on heroku"
32
+ if !appname
33
+ log opts
7
34
  appname = "nellbot"
8
35
  Process.exit
9
36
  end
10
37
 
11
38
  github_user = `git config --global github.user`
12
39
  if github_user == ""
13
- puts "You need to set up your github gem username/password, type in"
14
- puts " -> github config"
40
+ log "You need to set up your github gem username/password, type in"
41
+ log " -> github config"
15
42
  Process.exit
16
43
  end
17
44
 
18
- begin
19
- if open("http://#{appname}.heroku.com/", "User-Agent" => "Ruby/#{RUBY_VERSION}").include? "No such app"
20
- puts "Heroku app http://#{appname}.heroku.com already exists"
21
- Process.exit
22
- end
23
- rescue
24
-
45
+ # test for the heroku app existing already
46
+ page = Net::HTTP.get( URI.parse("http://#{appname}.heroku.com/") ).to_s
47
+ if !page.include? "No such app"
48
+ log "Heroku app http://#{appname}.heroku.com already exists"
49
+ Process.exit
25
50
  end
26
51
 
52
+
27
53
  #kill the old folder if it exists
28
54
  if File.exists? appname
29
55
  `rm -r #{appname}`
30
56
  end
31
57
 
32
- puts "Creating #{appname}"
33
-
34
- puts "Creating Github repo"
58
+ log ""
59
+ log "Herokuising ------------"
60
+ log ""
61
+ log "Creating #{appname}"
35
62
 
36
- #this makes the appname folder for us
37
- `github create #{appname}`
38
- #`mkdir #{appname}`
39
63
 
40
- puts "Making folders"
64
+ if options[:nogithub] == false
65
+ log "Creating Github repo"
66
+ `github create #{appname}`
67
+ else
68
+ log "Creating folder and repo"
69
+ `mkdir #{appname}`
70
+ `git init #{appname}`
71
+ end
41
72
 
73
+ log "Making folders"
42
74
  Dir.mkdir appname + "/public"
43
75
 
44
- puts "Making Files"
45
-
76
+ log "Making Files"
46
77
  `echo "sinatra" > #{appname}/.gems`
47
78
 
48
79
  `echo "require 'app'
49
- run Sinatra::Application" > #{appname}/config.ru`
80
+ run Sinatra::Application" > #{appname}/config.ru`
50
81
 
51
82
  `echo "require 'rubygems'
52
83
  require 'sinatra'
@@ -55,33 +86,37 @@ get '/' do
55
86
  redirect '/index.html'
56
87
  end" > #{appname}/app.rb`
57
88
 
58
- puts "Pulling down Paul Irish's HTML5 Boilerplate code"
59
89
 
60
- # let's work with a good start.
90
+ log "Pulling down Paul Irish's HTML5 Boilerplate code"
61
91
  `git clone http://github.com/paulirish/html5-boilerplate.git #{appname}/public`
62
92
 
63
93
  # and not get any git issues
64
94
  `rm -rf #{appname}/public/.git`
65
95
 
96
+ # the images folder in the boilerplate has a .gitignore
97
+ # that often confuses me
98
+ `find . -name .gitignore -exec rm {} \;`
99
+
66
100
  #switch to the new app directory
67
101
  Dir.chdir( appname )
68
102
 
69
- puts "Commiting to Github"
103
+ log "Commiting to Github"
70
104
 
71
105
  `git add .`
72
106
  `git add .gems`
73
107
 
74
108
  `git commit -m "initial import from orta-herokuize"`
75
109
 
76
- puts "Pushing to Github"
77
-
78
- `git push`
110
+ if options[:nogithub] == false
111
+ log "Pushing to Github"
112
+ `git push`
113
+ end
79
114
 
80
- puts "Creating heroku repo"
115
+ log "Creating heroku repo"
81
116
 
82
117
  `heroku create #{appname}`
83
118
 
84
- puts "Pushing to Heroku"
119
+ log "Pushing to Heroku"
85
120
 
86
121
  `git push heroku master`
87
122
 
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{herokuise}
5
- s.version = "0.8.3"
5
+ s.version = "0.9"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["orta therox"]
9
- s.date = %q{2010-09-05}
9
+ s.date = %q{2011-03-04}
10
10
  s.default_executable = %q{herokuise}
11
11
  s.description = %q{automate getting a site on heroku and git}
12
12
  s.email = %q{orta.therox@gmail.com}
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: herokuise
3
3
  version: !ruby/object:Gem::Version
4
- hash: 57
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 8
9
- - 3
10
- version: 0.8.3
8
+ - 9
9
+ version: "0.9"
11
10
  platform: ruby
12
11
  authors:
13
12
  - orta therox
@@ -15,7 +14,7 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-09-05 00:00:00 +01:00
17
+ date: 2011-03-04 00:00:00 +00:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency