#!/usr/bin/env ruby require 'thor' module MadChatter class Cli < Thor include Thor::Actions def self.source_root File.expand_path('../../', __FILE__) end desc "new [name]", "Generates a new Mad Chatter chatroom application" def new(name) copy_file "templates/config.yml", "#{name}/config.yml" copy_file "templates/extensions.rb", "#{name}/extensions.rb" # empty_directory "#{name}/extensions" copy_file "templates/web/index.html", "#{name}/web/index.html" copy_file "templates/web/javascript.js", "#{name}/web/javascript.js" copy_file "templates/web/styles.css", "#{name}/web/styles.css" end desc 'preview', 'Starts both a web server and the Mad Chatter chat server' def preview t1 = Thread.new { require 'mad_chatter/web_server' } t2 = Thread.new { require 'mad_chatter'; MadChatter.start } t2.join() end desc 'start', 'Starts the chat server' def start require 'mad_chatter' MadChatter.start end desc 'stop', 'Stops the chat server' def stop # stop the currently running daemon # not sure how to best implement this part yet end desc 'restart', 'Restarts the chat server' def restart # restarts the currently running daemon # not sure how to best implement this part yet end desc 'version', 'Displays the current version number' def version require "mad_chatter/version" puts MadChatter::VERSION end end end MadChatter::Cli.start(ARGV)