#!/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 application" def new(name) copy_file "templates/config.yml", "#{name}/config.yml" directory "templates/extensions", "#{name}/extensions" directory "templates/web", "#{name}/web" end desc "update", "Updates an existing Mad Chatter application" def update copy_file "templates/config.yml", "config.yml" directory "templates/extensions", "extensions" directory "templates/web", "web" end desc 'preview', 'Starts both a web server and the Mad Chatter chat server' def preview puts 'Starting the web server at http://localhost:3000' 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/daemon' end desc 'stop', 'Stops the chat server' def stop require 'mad_chatter/daemon' end desc 'restart', 'Restarts the chat server' def restart require 'mad_chatter/daemon' end desc 'version', 'Displays the current version number' def version require 'mad_chatter/version' puts MadChatter::VERSION end end end MadChatter::Cli.start(ARGV)