exe/shatter in shatter-rb-0.1.0 vs exe/shatter in shatter-rb-0.1.1
- old
+ new
@@ -4,10 +4,12 @@
require "shatter"
require "thor"
require "erb"
require "fileutils"
require 'zk'
+require 'puma/cli'
+
$stdout.sync = true
def safe_makedir(path)
FileUtils.mkdir(path, noop: Dir.exist?(path), verbose: true)
end
@@ -27,10 +29,28 @@
zk.create(key)
end
zk.close
end
+ desc "service", "starts the service layer"
+ def service
+ Shatter.load_environment
+ begin
+ Shatter::Service::Base.init
+ rescue Interrupt => e
+ puts e.message
+ puts e.backtrace
+ Shatter::Service::Base.close
+ end
+ end
+
+ desc "server", "starts the web server layer"
+ def server
+ cli = Puma::CLI.new ["#{Shatter.root}/config.ru"]
+ puts cli.run
+ end
+
desc "generate_typescript", "generates typescript defs of your service definition"
option :path
def generate_typescript
Shatter.load_environment
File.open("#{Shatter.root}/#{options[:path]}/Client.ts", "w") { |f| f.write(ServiceDefinition.to_typescript) }
@@ -43,12 +63,12 @@
puts "Updating Gemfile"
::FileUtils.cp("#{__dir__}/../templates/Gemfile.template", "./Gemfile")
system("bundle install")
puts "Generating scripts"
- FileUtils.mkdir("./bin", noop: Dir.exist?("./bin"))
- FileUtils.cp("#{__dir__}/../bin/service", "./bin/service", verbose: true)
- FileUtils.cp("#{__dir__}/../bin/server", "./bin/server", verbose: true)
+ #FileUtils.mkdir("./bin", noop: Dir.exist?("./bin"))
+ #FileUtils.cp("#{__dir__}/../bin/service", "./bin/service", verbose: true)
+ #FileUtils.cp("#{__dir__}/../bin/server", "./bin/server", verbose: true)
puts "Generating boilerplate"
application_code = ERB.new(File.read("#{__dir__}/../templates/application.erb")).result(binding)
safe_makedir("./app")