#!/usr/bin/env ruby require File.expand_path(File.join(File.dirname(__FILE__), '..', 'castronaut')) $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../vendor/sinatra/lib') $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../vendor/rack/lib') require 'rack' require 'sinatra' require 'optparse' options = {} OptionParser.new do |opts| opts.banner = "Usage: castronaut -C /path/to/config/file" opts.on("-h", "--help") do puts opts.banner exit(1) end opts.on("-C", "--config", "Config File") do |c| options[:config_file] = ARGV[0] end end.parse! if options[:config_file] Castronaut.config = Castronaut::Configuration.load(options[:config_file]) else $stderr.puts "No configuration file specified. Deafaulting to ./config/castronaut.yml" default_config = File.expand_path("./config/castronaut.yml") if File.exist?(default_config) Castronaut.config = Castronaut::Configuration.load(default_config) else puts "Unable to locate configuration. Currently looking at #{default_config}. You can pass a custom configuration path by using the -C flag." exit(0) end end Sinatra::Application.default_options.merge!( :env => Castronaut.config.environment.to_sym, :run => true, :raise_errors => true, :logging => true ) Castronaut.logger.info("Sinatra - Loading app/config.rb") load File.expand_path(File.join(File.dirname(__FILE__), '..', 'app', 'config.rb')) Castronaut.logger.info("Sinatra - Loading app/application.rb") load File.expand_path(File.join(File.dirname(__FILE__), '..', 'app', 'controllers', 'application.rb'))