From 707ba6e9aa5ce2618b03b6d6f3bbc6dc09b41441 Mon Sep 17 00:00:00 2001 From: David Ricciardi Date: Fri, 30 Jul 2010 22:52:12 -0400 Subject: [PATCH] bug fixes --- bin/sinatra-s3 | 9 +++++++++ lib/sinatra-s3/admin.rb | 2 +- lib/sinatra-s3/base.rb | 6 +----- lib/sinatra-s3/s3.rb | 13 ++++++++++--- s3.yml.example | 9 ++++++--- 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/bin/sinatra-s3 b/bin/sinatra-s3 index 05410b3..3d597fe 100755 --- a/bin/sinatra-s3 +++ b/bin/sinatra-s3 @@ -7,6 +7,14 @@ if ARGV.any? { |arg| %w(--version -v).any? { |flag| arg == flag } } exit 0 end +if ARGV.any? { |arg| %w(--help -h).any? { |flag| arg == flag } } + puts "sinatra-s3 [options] install_dir\n\n" + puts " --version -v Get version string" + puts " --help -h this" + puts " --include-wiki installs sinatra-s3 with wiki support" + exit 0 +end + $APP_PATH = ARGV.last def check_install(file,data) @@ -42,6 +50,7 @@ def verify_overwrite(file) end FileUtils.mkdir_p($APP_PATH) +FileUtils.mkdir_p(File.join($APP_PATH, "public")) config_ru = "require 'rubygems'\nrequire 'sinatra-s3'" if ARGV.any? { |arg| %w(--include-wiki --wiki).any? { |flag| arg == flag } } check_install("wiki.rb", File.read(File.join(S3::ROOT_DIR,"examples","wiki.rb"))) diff --git a/lib/sinatra-s3/admin.rb b/lib/sinatra-s3/admin.rb index 27ce1a0..f8e2547 100644 --- a/lib/sinatra-s3/admin.rb +++ b/lib/sinatra-s3/admin.rb @@ -22,7 +22,7 @@ class Admin < Sinatra::Base end get %r{^/control/s/(.*)} do - open(File.join(PUBLIC_PATH, params[:captures].first)) + open(File.join(ROOT_DIR, 'public', params[:captures].first)) end get '/control/login' do diff --git a/lib/sinatra-s3/base.rb b/lib/sinatra-s3/base.rb index 018ad8b..bb9c664 100644 --- a/lib/sinatra-s3/base.rb +++ b/lib/sinatra-s3/base.rb @@ -1,14 +1,10 @@ module S3 - def self.config - @config ||= YAML.load_file("s3.yml")[S3::Application.environment] rescue { :db => { :adapter => 'sqlite3', :database => "db/s3.db" } } - end - class Application < Sinatra::Base enable :static disable :raise_errors, :show_exceptions - set :environment, :production + set :environment, S3_ENV set :public, PUBLIC_PATH helpers do diff --git a/lib/sinatra-s3/s3.rb b/lib/sinatra-s3/s3.rb index d44f256..7c1e0ad 100644 --- a/lib/sinatra-s3/s3.rb +++ b/lib/sinatra-s3/s3.rb @@ -1,6 +1,7 @@ require 'rubygems' -require 'activerecord' +require 'active_record' +require 'fileutils' require 'sinatra/base' require 'openssl' require 'digest/sha1' @@ -29,13 +30,19 @@ end module S3 + S3_ENV = :production + + def self.config + @config ||= YAML.load_file("s3.yml")[S3_ENV] rescue { :db => { :adapter => 'sqlite3', :database => "db/s3.db" } } + end + VERSION = "0.99" DEFAULT_PASSWORD = 'pass@word1' BUFSIZE = (4 * 1024) ROOT_DIR = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')) - PUBLIC_PATH = File.join(ROOT_DIR, 'public') - STORAGE_PATH = File.expand_path('storage') unless defined?(STORAGE_PATH) + PUBLIC_PATH = File.expand_path(S3.config[:public_path] || File.join(ROOT_DIR, 'public')) + STORAGE_PATH = File.expand_path(S3.config[:storage_path] || 'storage') unless defined?(STORAGE_PATH) RESOURCE_TYPES = %w[acl versioning torrent] CANNED_ACLS = { 'private' => 0600, diff --git a/s3.yml.example b/s3.yml.example index e1b4ed1..8df74c9 100644 --- a/s3.yml.example +++ b/s3.yml.example @@ -1,17 +1,20 @@ :development: - :storage: storage + :public_path: public + :storage_path: storage :db: :database: db/development.db :adapter: sqlite3 :test: - :storage: test/storage + :public_path: public + :storage_path: test/storage :db: :database: db/test.db :adapter: sqlite3 :production: - :storage: storage + :public_path: public + :storage_path: storage :db: :database: db/production.db :adapter: sqlite3