sras 2.1.2 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG ADDED
@@ -0,0 +1,19 @@
1
+ 2.1.3
2
+ - add --foreground, --socket, and --environment options
3
+ - daemonize by default
4
+ - code cleanup
5
+
6
+ 2.1.2
7
+ - gemify
8
+ - update gem dependency versions to silence deprecation warnings
9
+ from dm-* gems
10
+
11
+ 2.1.1
12
+ - remove requirement to cd into bin dir before running sras
13
+
14
+ 2.1
15
+ - don't return disabled assets
16
+ - support different options for different environments
17
+
18
+ 2.0
19
+ - complete rewrite of 1.x
data/README.rst CHANGED
@@ -16,8 +16,7 @@ The packages of Ruby shipping with Ubuntu don't include built-in zlib
16
16
  support. I prefer using RVM [ http://rvm.beginrescueend.com/ ]
17
17
  anyway.
18
18
 
19
- Built & testing with Ruby v1.9.2. Tested with Thin, but should also
20
- work with Passenger.
19
+ Built & testing with Ruby v1.9.2.
21
20
 
22
21
  Install via: ::
23
22
 
data/bin/sras CHANGED
@@ -4,27 +4,32 @@ require 'optparse'
4
4
  require 'yaml'
5
5
  require 'thin'
6
6
 
7
- options = {}
8
7
  ROOT = ::File.dirname(::File.realdirpath(__FILE__))
8
+ require "#{ROOT}/../lib/sras/helpers/init.rb"
9
+
10
+ @dbms = ENV['DBMS'] || 'mysql'
11
+
12
+ options = {}
9
13
 
10
14
  # defaults...
11
- options[:environment] = (ENV['RACK_ENV'] || 'production')
12
- options[:config_file] = '/etc/sras/sras.conf'
13
-
14
- # look for more appropriate SRAS config file...
15
- if File.exists?("#{ROOT}/config/config.yml")
16
- options[:config_file] = "#{ROOT}/config/config.yml"
17
- elsif File.exists?(File.expand_path('~/.srasrc'))
18
- options[:config_file] = File.expand_path('~/.srasrc')
19
- end
15
+ options[:environment] = ENV['RACK_ENV'] || 'production'
16
+ options[:config_file] = config_file
20
17
 
21
18
  OptionParser.new do |opts|
22
- opts.banner = 'Usage: sras [options] <start|stop>'
19
+ opts.banner = 'Usage: sras [options] start'
23
20
 
24
21
  opts.on('-c', '--config <file>', 'SRAS config file') do |c|
25
22
  options[:config_file] = c
26
23
  end
27
24
 
25
+ opts.on('-e', '--environment <production|development|testing>', 'Set Rack environment') do |e|
26
+ options[:environment] = e
27
+ end
28
+
29
+ opts.on('-f', '--foreground', 'Run in foreground') do |f|
30
+ options[:foreground] = true
31
+ end
32
+
28
33
  opts.on('-h', '--host <hostname|ip_addy>', 'Address to which to bind') do |h|
29
34
  options[:host] = h
30
35
  end
@@ -41,6 +46,10 @@ OptionParser.new do |opts|
41
46
  options[:pid_file] = p
42
47
  end
43
48
 
49
+ opts.on('-S', '--socket <file>', 'Socket file') do |s|
50
+ options[:socket] = s
51
+ end
52
+
44
53
  opts.on_tail('-h', '--help', 'Show this message') do
45
54
  puts opts
46
55
  exit
@@ -48,7 +57,7 @@ OptionParser.new do |opts|
48
57
 
49
58
  if ARGV.last
50
59
  command = ARGV.last.chomp
51
- if command == 'start' || command == 'stop'
60
+ if command == 'start'
52
61
  options[:command] = command
53
62
  else
54
63
  puts opts
@@ -60,6 +69,8 @@ OptionParser.new do |opts|
60
69
  end
61
70
  end.parse!
62
71
 
72
+ RACK_ENV = options[:environment]
73
+
63
74
  # load SRAS config file...
64
75
  if File.exists?(options[:config_file])
65
76
  @config = YAML.load_file(options[:config_file])
@@ -69,40 +80,50 @@ else
69
80
  end
70
81
 
71
82
  if ! options[:host]
72
- if @config['sras'][options[:environment]]['host']
73
- options[:host] = @config['sras'][options[:environment]]['host']
83
+ if @config['sras'][RACK_ENV]['host']
84
+ options[:host] = @config['sras'][RACK_ENV]['host']
74
85
  else
75
86
  options[:host] = '0.0.0.0'
76
87
  end
77
88
  end
78
89
 
79
90
  if ! options[:port]
80
- if @config['sras'][options[:environment]]['port']
81
- options[:port] = @config['sras'][options[:environment]]['port']
91
+ if @config['sras'][RACK_ENV]['port']
92
+ options[:port] = @config['sras'][RACK_ENV]['port']
82
93
  else
83
94
  options[:port] = '8003'
84
95
  end
85
96
  end
86
97
 
87
98
  if ! options[:log_file]
88
- if @config['sras'][options[:environment]]['log_file']
89
- options[:log_file] = @config['sras'][options[:environment]]['log_file']
99
+ if @config['sras'][RACK_ENV]['log_file']
100
+ options[:log_file] = @config['sras'][RACK_ENV]['log_file']
90
101
  else
91
- options[:log_file] = "log/sras_#{options[:environment]}.log"
102
+ options[:log_file] = "log/sras_#{RACK_ENV}.log"
92
103
  end
93
104
  end
94
105
 
95
106
  if ! options[:pid_file]
96
- if @config['sras'][options[:environment]]['pid_file']
97
- options[:pid_file] = @config['sras'][options[:environment]]['pid_file']
107
+ if @config['sras'][RACK_ENV]['pid_file']
108
+ options[:pid_file] = @config['sras'][RACK_ENV]['pid_file']
98
109
  else
99
- options[:pid_file] = "/tmp/sras_#{options[:environment]}.pid"
110
+ options[:pid_file] = "/tmp/sras_#{RACK_ENV}.pid"
100
111
  end
101
112
  end
102
113
 
103
114
  require "#{ROOT}/../lib/sras.rb"
104
- server = Thin::Server.new(options[:host], options[:port], SRAS.new)
105
- server.log_file = options[:log_file]
106
- server.pid_file = options[:pid_file]
107
- server.tag = 'sras'
108
- server.start
115
+
116
+ if options[:command] == 'start'
117
+ if options[:socket]
118
+ server = Thin::Server.new(options[:socket], SRAS.new)
119
+ else
120
+ server = Thin::Server.new(options[:host], options[:port], SRAS.new)
121
+ end
122
+ server.log_file = options[:log_file]
123
+ server.pid_file = options[:pid_file]
124
+ server.tag = 'sras'
125
+ unless options[:foreground]
126
+ server.daemonize
127
+ end
128
+ server.start
129
+ end
@@ -0,0 +1,9 @@
1
+ def config_file()
2
+ if File.exists?("#{ROOT}/config/config.yml")
3
+ return "#{ROOT}/config/config.yml"
4
+ elsif File.exists?(File.expand_path('~/.srasrc'))
5
+ return File.expand_path('~/.srasrc')
6
+ else
7
+ return '/etc/sras/sras.conf'
8
+ end
9
+ end
@@ -1,4 +1,4 @@
1
1
  require 'zlib'
2
2
 
3
- require ::File.dirname(__FILE__) + '/setup'
3
+ require ::File.dirname(__FILE__) + '/config'
4
4
  require ::File.dirname(__FILE__) + '/asset'
@@ -3,6 +3,8 @@ require 'dm-core'
3
3
  require 'dm-types'
4
4
  require 'dm-timestamps'
5
5
 
6
+ set :environment, RACK_ENV.to_sym
7
+
6
8
  configure :development do
7
9
  DataMapper::Logger.new(STDOUT, :debug)
8
10
  end
data/lib/sras.rb CHANGED
@@ -1,6 +1,3 @@
1
- #require 'bundler'
2
- #Bundler.setup
3
-
4
1
  require 'bundler/setup'
5
2
 
6
3
  require 'sinatra'
@@ -0,0 +1,16 @@
1
+ CREATE TABLE `assets` (
2
+ `id` char(36) NOT NULL,
3
+ `asset_type` tinyint(4) NOT NULL,
4
+ `sha256` char(64) NOT NULL,
5
+ `name` varchar(64) DEFAULT NULL,
6
+ `description` varchar(64) DEFAULT NULL,
7
+ `local` tinyint(1) DEFAULT NULL,
8
+ `temporary` tinyint(1) DEFAULT NULL,
9
+ `base_dir` varchar(64) NOT NULL,
10
+ `created_at` int(11) DEFAULT NULL,
11
+ `updated_at` int(11) DEFAULT NULL,
12
+ `enabled` tinyint(1) NOT NULL DEFAULT '1',
13
+ PRIMARY KEY (`id`),
14
+ KEY `assets_id_sha256` (`id`,`sha256`),
15
+ KEY `assets_sha256` (`sha256`)
16
+ ) ENGINE=MyISAM DEFAULT CHARSET=ascii;
data/sras.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'sras'
3
- s.version = '2.1.2'
3
+ s.version = '2.1.3'
4
4
  s.summary = 'Simple Ruby Asset Server'
5
5
  s.description = 'Asset server for use with OpenSimulator'
6
6
  s.authors = 'Dave Coyle'
@@ -8,6 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.homepage = 'http://coyled.com/sras'
9
9
  s.license = 'MIT'
10
10
 
11
+ s.required_ruby_version = '>= 1.9.2'
11
12
  s.files = `git ls-files`.split("\n")
12
13
  s.test_files = `git ls-files -- test/*`.split("\n")
13
14
  s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sras
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-19 00:00:00.000000000Z
12
+ date: 2012-03-22 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dm-migrations
16
- requirement: &84493470 !ruby/object:Gem::Requirement
16
+ requirement: &72036830 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - =
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.2.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *84493470
24
+ version_requirements: *72036830
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: dm-mysql-adapter
27
- requirement: &84493210 !ruby/object:Gem::Requirement
27
+ requirement: &72036600 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.2.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *84493210
35
+ version_requirements: *72036600
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: dm-timestamps
38
- requirement: &84492980 !ruby/object:Gem::Requirement
38
+ requirement: &72036370 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - =
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.2.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *84492980
46
+ version_requirements: *72036370
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: dm-types
49
- requirement: &84492740 !ruby/object:Gem::Requirement
49
+ requirement: &72036130 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - =
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.2.1
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *84492740
57
+ version_requirements: *72036130
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: hpricot
60
- requirement: &84492500 !ruby/object:Gem::Requirement
60
+ requirement: &72035890 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - =
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 0.8.4
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *84492500
68
+ version_requirements: *72035890
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sinatra
71
- requirement: &84492260 !ruby/object:Gem::Requirement
71
+ requirement: &72035660 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - =
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 1.2.6
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *84492260
79
+ version_requirements: *72035660
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: thin
82
- requirement: &84492030 !ruby/object:Gem::Requirement
82
+ requirement: &72035420 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - =
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 1.2.11
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *84492030
90
+ version_requirements: *72035420
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rake
93
- requirement: &84491800 !ruby/object:Gem::Requirement
93
+ requirement: &72035170 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - =
@@ -98,7 +98,7 @@ dependencies:
98
98
  version: 0.9.2.2
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *84491800
101
+ version_requirements: *72035170
102
102
  description: Asset server for use with OpenSimulator
103
103
  email: hello@coyled.com
104
104
  executables:
@@ -108,18 +108,17 @@ extra_rdoc_files: []
108
108
  files:
109
109
  - .gitignore
110
110
  - .travis.yml
111
+ - CHANGELOG
111
112
  - Gemfile
112
113
  - Gemfile.lock
113
114
  - LICENSE
114
115
  - README.rst
115
- - Rakefile
116
116
  - bin/sras
117
- - config.ru
118
117
  - config/config.yml.example
119
118
  - lib/sras.rb
120
119
  - lib/sras/helpers/asset.rb
120
+ - lib/sras/helpers/config.rb
121
121
  - lib/sras/helpers/init.rb
122
- - lib/sras/helpers/setup.rb
123
122
  - lib/sras/models/asset.rb
124
123
  - lib/sras/models/init.rb
125
124
  - lib/sras/views/create.erb
@@ -127,6 +126,7 @@ files:
127
126
  - lib/sras/views/index.erb
128
127
  - lib/sras/views/metadata.erb
129
128
  - lib/sras/views/show.erb
129
+ - sql/sras_schema.sql
130
130
  - sras.gemspec
131
131
  - test/test.asset
132
132
  homepage: http://coyled.com/sras
@@ -141,7 +141,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
141
141
  requirements:
142
142
  - - ! '>='
143
143
  - !ruby/object:Gem::Version
144
- version: '0'
144
+ version: 1.9.2
145
145
  required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  none: false
147
147
  requirements:
data/Rakefile DELETED
@@ -1,19 +0,0 @@
1
- require 'rake/testtask'
2
- require 'yaml'
3
- require 'dm-core'
4
- require 'dm-migrations'
5
-
6
- #Rake::TestTask.new(:test) do |t|
7
- # t.test_files = FileList['test/test_*.rb']
8
- # t.verbose = true
9
- #end
10
-
11
- require ::File.dirname(__FILE__) + '/lib/sras/helpers/init'
12
-
13
- namespace 'db' do
14
- require ::File.dirname(__FILE__) + '/lib/sras/models/init'
15
-
16
- task :create do
17
- DataMapper.auto_upgrade!
18
- end
19
- end
data/config.ru DELETED
@@ -1,3 +0,0 @@
1
- ROOT = ::File.dirname(::File.realdirpath(__FILE__))
2
- require "#{ROOT}/lib/sras.rb"
3
- run SRAS.new
@@ -1,14 +0,0 @@
1
- RACK_ENV = ENV['RACK_ENV'] || 'production'
2
- set :environment, (ENV['RACK_ENV'] || 'production')
3
-
4
- @dbms = ENV['DBMS'] || 'mysql'
5
-
6
- if File.exists?("#{ROOT}/config/config.yml")
7
- config_file = "#{ROOT}/config/config.yml"
8
- elsif File.exists?(File.expand_path('~/.srasrc'))
9
- config_file = File.expand_path('~/.srasrc')
10
- else
11
- config_file = '/etc/sras/sras.conf'
12
- end
13
-
14
- @config = YAML.load_file(config_file)