sras 2.1.2 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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)