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")