Class: DesignShell::Core
- Inherits:
-
Object
- Object
- DesignShell::Core
- Defined in:
- lib/designshell/core.rb
Instance Attribute Summary collapse
-
#configured ⇒ Object
readonly
Returns the value of attribute configured.
-
#context ⇒ Object
readonly
Returns the value of attribute context.
-
#repo ⇒ Object
readonly
Returns the value of attribute repo.
Class Method Summary collapse
Instance Method Summary collapse
- #build ⇒ Object
- #call_server_command(aCommand, aParams = nil) ⇒ Object
- #configure(aContext) ⇒ Object
- #deploy ⇒ Object
- #deploy_plan(*args) ⇒ Object
- #ensure_deploy_server ⇒ Object
- #ensure_repo_open ⇒ Object
-
#initialize(aDependencies = nil) ⇒ Core
constructor
A new instance of Core.
Constructor Details
#initialize(aDependencies = nil) ⇒ Core
Returns a new instance of Core.
6 7 8 9 10 11 12 13 14 |
# File 'lib/designshell/core.rb', line 6 def initialize(aDependencies=nil) @@instance = self unless (defined? @@instance) && @@instance if aDependencies @context = aDependencies[:context] @repo = aDependencies[:repo] @keyChain = aDependencies[:keyChain] || @context.key_chain end configure(@context) if @context end |
Instance Attribute Details
#configured ⇒ Object (readonly)
Returns the value of attribute configured.
4 5 6 |
# File 'lib/designshell/core.rb', line 4 def configured @configured end |
#context ⇒ Object (readonly)
Returns the value of attribute context.
4 5 6 |
# File 'lib/designshell/core.rb', line 4 def context @context end |
#repo ⇒ Object (readonly)
Returns the value of attribute repo.
4 5 6 |
# File 'lib/designshell/core.rb', line 4 def repo @repo end |
Class Method Details
.instance ⇒ Object
16 17 18 |
# File 'lib/designshell/core.rb', line 16 def self.instance (defined? @@instance) && @@instance end |
Instance Method Details
#build ⇒ Object
50 51 52 53 |
# File 'lib/designshell/core.rb', line 50 def build response = POpen4::shell('ls') # puts result[:stdout] end |
#call_server_command(aCommand, aParams = nil) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/designshell/core.rb', line 65 def call_server_command(aCommand, aParams=nil) #ds_conn = ensure_deploy_server command = aCommand command += " " + JSON.generate(aParams) if aParams #result = ds_conn.exec!(command) result = nil Net::SSH.start(@context.credentials[:deploy_host],nil) do |ssh| result = ssh.exec!(command) end result end |
#configure(aContext) ⇒ Object
20 21 22 |
# File 'lib/designshell/core.rb', line 20 def configure(aContext) @configured = true end |
#deploy ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/designshell/core.rb', line 55 def deploy ensure_repo_open deploy_branch = 'master' deploy_plan(repo.get_file_content('.deploy_plan.xml',deploy_branch)) params = deploy_plan.deploy_items_values.clone params['site'] = deploy_plan.site params['repo_url'] = repo.origin.url call_server_command('DEPLOY',params) end |
#deploy_plan(*args) ⇒ Object
39 40 41 42 43 44 45 46 47 48 |
# File 'lib/designshell/core.rb', line 39 def deploy_plan(*args) return @deploy_plan if args.empty? plan = args.first if plan.is_a?(DesignShell::DeployPlan) @deploy_plan = plan elsif plan @deploy_plan = DesignShell::DeployPlan.new(:core => self,:plan => plan) end @deploy_plan end |
#ensure_deploy_server ⇒ Object
35 36 37 |
# File 'lib/designshell/core.rb', line 35 def ensure_deploy_server @conn ||= Net::SSH.start(@context.credentials[:deploy_host],nil) end |
#ensure_repo_open ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/designshell/core.rb', line 24 def ensure_repo_open if (!@repo && @context) if git_root = @context.find_git_root @repo = DesignShell::Repo.new @repo.open git_root end end raise "unable to open repository" unless @repo.open? @repo end |