fanforce-factory 0.4.6 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTFmYWIxMTc5ZGQxZTRhNTM4NjFiZjIxZGY4OTBkZGZjYTJkNjcxOA==
4
+ MGY5NTY1MTYwMWUyM2ExYzg0OTZlNjQ0NWYyNzM4ZDkwYjViNTVhZg==
5
5
  data.tar.gz: !binary |-
6
- NmFlYzQ4NTcxMzg1NzNkNWNmZTE2NDQ5MzkwZTJlMGEzMzEwNmY1Zg==
6
+ OWUwYmYwYTU2NTc3YmMyZWJiMjRmMWFkNDQwOWFjMWRkNTlhNzcyZQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YjgwYTkwYWVlY2JkMzgxMzdmNTE2NmM4YTMyOGY0NTdjZGFkMjRhYTZiZTM3
10
- NzBkMTJjMzYyOTkzNDk1YWRjMjdiNDljYWM2ZWYwMWFmZWMyZWI5NjQ3OWJj
11
- ODhmZTI5ZmQ4NWM5OTZjODdkYTJlOGRlNjYyYmE4N2UwMTk3MzA=
9
+ Y2M1OGRmYmY1NzRlYmI5NTZiM2NhZTUxOTllYjMxMTFjYTFmNjE2YzQ2NTk5
10
+ NzkyZjMzZDY5M2VkNWU5YWU0ZjExNzcwYmEzOTNmMGJkNjkyZTM3YTM0OWFm
11
+ ZTY0NGM5MDM4NzlmMTBmNGI0NGE0MjQyNmI2YzBhOTUyNjQ0ZmE=
12
12
  data.tar.gz: !binary |-
13
- YmY1YmZjNWViMTJkM2UwMjgxNDkwMDE3NzMyYTlmOGM3MzNiMDM2N2RkMTgx
14
- YjM5MjljMTU4OGNjZGQwNjEyNDA5ZDA5NWUwYTExZTEzNmQ0NmU4M2U0MTA3
15
- ZmJjZjcyNTk4NTgwOTYwNjBjZGU4Zjc0OTMwYjIxZjBlNjA0NmU=
13
+ MDY3YWI2NDQ0ZTM0YWFkYzkwYzZjYjU2Mzc1YjJlYjkwZDBhNDhkYWE4OTcy
14
+ NzVkMTQ3YTlkNWY3NDg4M2ZiOGFhNTIyYTI3ZThmZjE2OTNiMmZmMzk1YWYw
15
+ MGUyNmQ0ZTE1M2UxMzE1OTk4NTFiNTc0M2MyM2Q5YzM1NGU3NDg=
data/bin/factory CHANGED
@@ -8,11 +8,11 @@ if File.exists?("#{$HomeDir}/config.ru") and File.exists?("#{$HomeDir}/../.facto
8
8
  $HomeDir = File.expand_path('..', $HomeDir)
9
9
  factory.start(
10
10
  :runtype => :single,
11
- :allowed => [:update, :restart, :push, :count, :bundle, :git, :iron, :version, :config],
11
+ :allowed => [:setup, :update, :restart, :push, :count, :bundle, :git, :iron, :version, :config],
12
12
  )
13
13
  else
14
14
  factory.start(
15
15
  :runtype => :realtime,
16
- :allowed => [:create, :delete, :update, :restart, :push, :count, :bundle, :git, :iron, :version, :config],
16
+ :allowed => [:create, :setup, :delete, :update, :restart, :push, :count, :bundle, :git, :iron, :version, :config],
17
17
  )
18
18
  end
@@ -46,10 +46,15 @@ class Fanforce::Factory
46
46
  #################################################################################
47
47
 
48
48
  def parse_command
49
+
50
+ #################################################################
51
+
49
52
  if ARGV.length == 0 or !@allowed_commands.include?(ARGV[0].to_sym)
50
53
  puts Fanforce::Factory::Help.intro(@executable, @runtype)
51
54
  puts Fanforce::Factory::Help.commands(@allowed_commands)
52
55
 
56
+ #################################################################
57
+
53
58
  elsif ARGV[0] == 'create'
54
59
  ARGV[1] =~ /^(plugin|widget|app)-(.+)$/ || error('You supplied an invalid create command.', :create)
55
60
 
@@ -70,28 +75,31 @@ class Fanforce::Factory
70
75
 
71
76
  #################################################################
72
77
 
73
- elsif ARGV[0] == 'delete'
74
- ARGV[1] =~ /^(plugin|widget|app)-(.+)$/ || error('You supplied an invalid delete command.', :delete)
78
+ elsif ARGV[0] == 'setup'
79
+ ARGV[1] =~ /^(plugin|widget|app)-(.+)$/ || error('You supplied an invalid setup command.', :setup)
75
80
 
76
- confirm("Are you sure you want to delete all files, repositories, and other items for #{ARGV[1]}?")
77
- delete_addon($1, $2)
81
+ addon_type = $1
82
+ addon_id = $2
83
+
84
+ if addon_type =~ /app|widget/
85
+ setup_addon(addon_type, addon_id)
86
+ else
87
+ if ARGV[2].nil?
88
+ error('You failed to supply a valid plugin type for setup.', :setup)
89
+ elsif ![:data_connector, :data_processor, :broadcaster, :identifier, :behavior].include?(ARGV[2].to_sym)
90
+ error('You supplied an invalid plugin type.', :setup)
91
+ else
92
+ setup_addon(addon_type, addon_id, ARGV[2])
93
+ end
94
+ end
78
95
 
79
96
  #################################################################
80
97
 
81
- elsif ARGV[0] == 'setup'
82
- ARGV[1] =~ /^(all|files?|envs?(:all|:development|:qa|:production)?|pows?|bitbuckets?|herokus?(:all|:qa|:production)?)$/ || error('You supplied an invalid setup command.', :setup)
98
+ elsif ARGV[0] == 'delete'
99
+ ARGV[1] =~ /^(plugin|widget|app)-(.+)$/ || error('You supplied an invalid delete command.', :delete)
83
100
 
84
- tmp_str = $1
85
- if tmp_str =~ /^envs?|herokus?/
86
- command, environment = tmp_str.split(':').map {|d| d.singularize.to_sym }
87
- environment = :all if !environment
88
- confirm('Are you wanting to setup all environments?') if environment == :all
89
- else
90
- command = tmp_str.singularize.to_sym
91
- environment = command == :all ? :all : nil
92
- end
93
- confirm('Are you wanting to setup everything in all environments?') if command == :all
94
- run(:setup, command, environment)
101
+ confirm("Are you sure you want to delete all files, repositories, and other items for #{ARGV[1]}?")
102
+ delete_addon($1, $2)
95
103
 
96
104
  #################################################################
97
105
 
@@ -7,7 +7,61 @@ class Fanforce::Factory
7
7
 
8
8
  if File.exists?("#{dir}/config.ru")
9
9
  puts '---------------------------------------------------------------------------------------------------------------'
10
- puts 'ERROR... '.format(:red,:bold) + "#{addon_type}-#{addon_id} already exists. You should run: ".format(:red) + "factory update #{dir_name}".format(:green)
10
+ puts 'ERROR... '.format(:red,:bold) + "#{addon_type}-#{addon_id} already exists. You should run: ".format(:red) + "factory setup #{dir_name}".format(:green)
11
+ puts '---------------------------------------------------------------------------------------------------------------'
12
+ return
13
+ end
14
+
15
+ puts "\n---------------------------------------------------------------------------------------------------------------"
16
+ puts 'CREATING FILES...'
17
+ Dir.mkdir(dir) if !File.directory?(dir)
18
+ Dir.chdir(dir)
19
+ puts "#{'Created'.format(:bold, :green)} #{dir_name}/"
20
+ addon = Addon.load(dir, plugin_type)
21
+ setup_files(addon)
22
+
23
+ puts "\n---------------------------------------------------------------------------------------------------------------"
24
+ puts 'RUNNING BUNDLER...'
25
+ Run.bundle_install(addon.dir)
26
+
27
+ puts "\n---------------------------------------------------------------------------------------------------------------"
28
+ puts 'CREATING POW DOMAINS...'
29
+ setup_pow(addon)
30
+
31
+ puts "\n---------------------------------------------------------------------------------------------------------------"
32
+ puts 'CREATING LOCAL GIT REPOSITORY...'
33
+ Run.git_init and puts '- git init'
34
+ Run.git_add and puts '- git add .'
35
+ Run.git_first_commit and puts '- git commit -m "initial factory commit"'
36
+
37
+ puts "\n---------------------------------------------------------------------------------------------------------------"
38
+ puts 'CREATING BITBUCKET REPOSITORY...'
39
+ setup_bitbucket addon
40
+
41
+ puts "\n---------------------------------------------------------------------------------------------------------------"
42
+ puts 'CREATING HEROKU APPS...'
43
+ setup_heroku addon, :qa
44
+ setup_heroku addon, :production
45
+
46
+ puts "\n---------------------------------------------------------------------------------------------------------------"
47
+ puts 'CREATING ENV VARIABLES...'
48
+ setup_envs(addon, :all)
49
+
50
+ puts "\n---------------------------------------------------------------------------------------------------------------"
51
+ puts "#{'DONE!'.format(:bold,:green)} Paste the following JSON into your Developer Configuration for #{addon._id.format(:bold)}:"
52
+ puts '---------------------------------------------------------------------------------------------------------------'
53
+ puts DeveloperConfig.method(addon.type).call(addon).format(:magenta)
54
+ puts '---------------------------------------------------------------------------------------------------------------'
55
+ puts "\n"
56
+ end
57
+
58
+ def setup_addon(addon_type, addon_id, plugin_type=nil)
59
+ dir_name = "#{addon_type}-#{addon_id}"
60
+ dir = "#{$HomeDir}/#{dir_name}"
61
+
62
+ if !File.exists?("#{dir}/config.ru")
63
+ puts '---------------------------------------------------------------------------------------------------------------'
64
+ puts 'ERROR... '.format(:red,:bold) + "#{addon_type}-#{addon_id} does not exist. You should run: ".format(:red) + "factory create #{dir_name}".format(:green)
11
65
  puts '---------------------------------------------------------------------------------------------------------------'
12
66
  return
13
67
  end
@@ -399,7 +453,10 @@ class Fanforce::Factory
399
453
  begin
400
454
  iron_worker.codes.create(code, max_concurrency: 5)
401
455
  rescue Exception => e
402
- puts "#{'Aborted '.format(:red,:bold)} uploading #{addon._id}-#{filename.gsub('.worker', '')} to #{environment.to_s.titleize}..."
456
+ puts "#{'Aborted '.format(:red,:bold)} upload of #{addon._id}-#{filename.gsub('.worker', '')} to #{environment.to_s.titleize}..."
457
+ puts e.message
458
+ puts e.backtrace
459
+ puts ''
403
460
  end
404
461
 
405
462
  end
@@ -9,7 +9,6 @@ module Fanforce::Factory::Help
9
9
  def commands(allowed_commands)
10
10
  response = "\n\nAVAILABLE COMMANDS...\n-----------------------------------------------------------------------------------------------------------------------\n"
11
11
  commands = allowed_commands.map do |c|
12
- c = "standalone_#{c}" if c == :update and !allowed_commands.include?(:setup)
13
12
  self.send(:"#{c}_command")
14
13
  end
15
14
  response += commands.join("-----------------------------------------------------------------------------------------------------------------------\n")
@@ -18,7 +17,6 @@ module Fanforce::Factory::Help
18
17
 
19
18
  def for(command, allowed_commands)
20
19
  response = "\n#{command.to_s.upcase} COMMAND...\n-----------------------------------------------------------------------------------------------------------------------\n"
21
- response += self.send(:"#{'standalone_' if command == :update}#{command}_command")
22
20
  response += "-----------------------------------------------------------------------------------------------------------------------\n\n"
23
21
  end
24
22
 
@@ -27,33 +25,23 @@ create (plugin|widget|app)-ID [PLUGIN_TYPE] Create new addon folder and
27
25
  eos
28
26
  end
29
27
 
30
- def delete_command; <<-eos
31
- delete (plugin|widget|app)-ID Delete the addon folder and all related services
32
- eos
33
- end
34
-
35
28
  def setup_command; <<-eos
36
- setup (all|OR...) Setup all items needed for the addon
37
- |files Create or update needed files
38
- |env:[*all|RACK_ENV] Update environment vars for a specific environment
39
- |pow Ensure pow domains are setup for development environment
40
- |bitbucket Create new repositories in bitbucket and push latest commit
41
- |heroku:[*all|RACK_ENV] Create new app in heroku account and push latest commit
29
+ setup (plugin|widget|app)-ID [PLUGIN_TYPE] Similar to the create command, except it uses existing files
42
30
  eos
43
31
  end
44
32
 
45
- def update_command; <<-eos
46
- update ANY_SETUP_COMMAND Update anything that is a setup command
33
+ def delete_command; <<-eos
34
+ delete (plugin|widget|app)-ID Delete the addon folder and all related services
47
35
  eos
48
36
  end
49
37
 
50
- def standalone_update_command; <<-eos
38
+ def update_command; <<-eos
51
39
  update (all|OR...) Update all items
52
40
  |files Create or update needed files
53
41
  |env:[*all|RACK_ENV] Update environment vars for a specific environment
54
42
  |pow Ensure pow domains are setup for development environment
55
- |bitbucket Ensure bitbucket repositories exist and push latest commit if new
56
- |heroku:[*all|RACK_ENV] Ensure app exists in heroku account and push latest commit if new
43
+ |bitbucket Create new repositories in bitbucket and push latest commit
44
+ |heroku:[*all|RACK_ENV] Create new app in heroku account and push latest commit
57
45
  eos
58
46
  end
59
47
 
@@ -1,5 +1,5 @@
1
1
  class Fanforce
2
2
  class Factory
3
- VERSION = '0.4.6'
3
+ VERSION = '0.4.7'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fanforce-factory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Caleb Clark
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-15 00:00:00.000000000 Z
11
+ date: 2013-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client