lib/sunzi/cli.rb in sunzi-0.3.0 vs lib/sunzi/cli.rb in sunzi-0.4.0
- old
+ new
@@ -1,8 +1,5 @@
-require 'thor'
-require 'yaml'
-require 'fileutils'
require 'open3'
module Sunzi
CONFIG_DIR = File.join(ENV['HOME'],'.config','sunzi')
@@ -21,13 +18,13 @@
desc "create", "Create sunzi project"
def create(project = 'sunzi')
empty_directory project
empty_directory "#{project}/remote"
empty_directory "#{project}/remote/recipes"
- template "templates/sunzi.yml", "#{project}/sunzi.yml"
- template "templates/remote/install.sh", "#{project}/remote/install.sh"
- template "templates/remote/recipes/ssh_key.sh", "#{project}/remote/recipes/ssh_key.sh"
+ template "templates/create/sunzi.yml", "#{project}/sunzi.yml"
+ template "templates/create/remote/install.sh", "#{project}/remote/install.sh"
+ template "templates/create/remote/recipes/ssh_key.sh", "#{project}/remote/recipes/ssh_key.sh"
end
desc "deploy example.com (or user@example.com:2222)", "Deploy sunzi project"
def deploy(target)
user, host, port = parse_target(target)
@@ -83,9 +80,19 @@
end
# Compile recipes.yml
hash['recipes'].each do |key, value|
get value, "remote/recipes/#{key}.sh"
end
+ end
+
+ desc "setup [linode|ec2]", "Setup a new VM"
+ def setup(target)
+ Cloud::Base.choose(target).setup
+ end
+
+ desc "teardown [linode|ec2] [name]", "Teardown an existing VM"
+ def teardown(target, name)
+ Cloud::Base.choose(target).teardown(name)
end
no_tasks do
def parse_target(target)
target.match(/(.*@)?(.*?)(:.*)?$/)