boxlet 0.0.3 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/config.yml +3 -1
- data/lib/boxlet.rb +0 -1
- data/lib/boxlet/app.rb +5 -3
- data/lib/boxlet/app/controller.rb +19 -3
- data/lib/boxlet/config.rb +20 -11
- data/lib/boxlet/version.rb +1 -1
- data/lib/handlers/thin.rb +7 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8ccc8e3e2d33bcd02ae4ad95387f2f7b356dcbb
|
4
|
+
data.tar.gz: baefad60c68d00b903da3a60a17035297d2424ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d633624ee6ebcf811baa9e274827949e81f2d6a6c6b038977c8e54be1c44c735715a1037ce3faa845121dbda76b7fff5e63f775caff684cc1b8eed0a892dfe50
|
7
|
+
data.tar.gz: 442348771e3e1266b458884165e5f6a6ef388ad1e48cb93f073fb6fc1418782496078eb916325748ad6a757e2f2021fe397c0e5a1fa693a2a143d7bc53cb4928
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Boxlet
|
2
2
|
|
3
|
-
Boxlet is a server + mobile app system that allows you to take advantage of free space on any cloud server you
|
3
|
+
Boxlet is a server + mobile app system that allows you to take advantage of free space on any cloud server you have ssh access to as a backup/sync for your photos.
|
4
4
|
|
5
5
|
From the mobile iOS app, you can specify any server:port where the Boxlet server is running to sync and backup your photos to a remote server.
|
6
6
|
|
data/config.yml
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# Environment
|
4
4
|
environment: development
|
5
|
-
debug:
|
5
|
+
debug: false
|
6
6
|
|
7
7
|
# File system parameters
|
8
8
|
# path: ./
|
@@ -18,6 +18,8 @@ port: 8077
|
|
18
18
|
host: localhost
|
19
19
|
server_type: thin
|
20
20
|
daemonize: false
|
21
|
+
pid_file: server.pid
|
22
|
+
log_file: server.log
|
21
23
|
|
22
24
|
# Database config
|
23
25
|
db:
|
data/lib/boxlet.rb
CHANGED
data/lib/boxlet/app.rb
CHANGED
@@ -34,15 +34,17 @@ module Boxlet
|
|
34
34
|
def bind
|
35
35
|
Rack::Builder.new do
|
36
36
|
use Rack::Reloader
|
37
|
-
|
38
|
-
use Rack::
|
37
|
+
use Rack::FileUpload, :upload_dir => [Boxlet.config[:upload_dir] || APP_ROOT + "/uploads"]
|
38
|
+
use Rack::Static, :urls => ["/uploads"]
|
39
39
|
|
40
|
+
# map "/uploads" do
|
41
|
+
# run Rack::File.new(Boxlet.config[:upload_dir])
|
42
|
+
# end
|
40
43
|
Boxlet::App.routes.each do |route, action|
|
41
44
|
map route[0] do
|
42
45
|
run Boxlet::Router.new(route[1] || :*, action)
|
43
46
|
end
|
44
47
|
end
|
45
|
-
|
46
48
|
end.to_app
|
47
49
|
end
|
48
50
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'date'
|
2
|
+
require 'digest'
|
2
3
|
|
3
4
|
# routes = {
|
4
5
|
# ["/", :get] => :index,
|
@@ -92,7 +93,7 @@ module Boxlet
|
|
92
93
|
file = File.open(new_path, 'r')
|
93
94
|
# asset_date = Date.parse(@params[:asset_date])
|
94
95
|
asset = {
|
95
|
-
filename:
|
96
|
+
filename: new_filename,
|
96
97
|
size: file.size,
|
97
98
|
local_date: file.mtime.to_i,
|
98
99
|
asset_path: @params[:asset_path],
|
@@ -133,9 +134,24 @@ module Boxlet
|
|
133
134
|
end
|
134
135
|
|
135
136
|
def user_upload_dir
|
136
|
-
|
137
|
+
dir_name = @params[:uuid] || ''
|
138
|
+
user_upload_dir_name = Boxlet.config[:upload_dir] + "/" + dir_name
|
137
139
|
Dir.mkdir(user_upload_dir_name) unless File.exists?(user_upload_dir_name)
|
138
|
-
|
140
|
+
|
141
|
+
if @params[:uuid]
|
142
|
+
dir_shortname = Digest::MD5.hexdigest(dir_name)
|
143
|
+
user_upload_dir_shortname = Boxlet.config[:upload_dir] + "/" + dir_shortname
|
144
|
+
|
145
|
+
File.symlink(dir_name, user_upload_dir_shortname) if !File.symlink? user_upload_dir_shortname
|
146
|
+
|
147
|
+
if File.symlink? user_upload_dir_shortname
|
148
|
+
user_upload_dir_shortname
|
149
|
+
else
|
150
|
+
user_upload_dir_name
|
151
|
+
end
|
152
|
+
else
|
153
|
+
user_upload_dir_name
|
154
|
+
end
|
139
155
|
end
|
140
156
|
|
141
157
|
def free_space?
|
data/lib/boxlet/config.rb
CHANGED
@@ -2,6 +2,10 @@ module Boxlet
|
|
2
2
|
module Config
|
3
3
|
|
4
4
|
ARGS = {
|
5
|
+
:environment => {
|
6
|
+
:short => 'E',
|
7
|
+
:default => 'development'
|
8
|
+
},
|
5
9
|
:path => {
|
6
10
|
:short => 'f',
|
7
11
|
:default => Proc.new { Dir.pwd }
|
@@ -20,19 +24,15 @@ module Boxlet
|
|
20
24
|
:default => 'rack',
|
21
25
|
:sanitizer => Proc.new { |p| p.to_sym }
|
22
26
|
},
|
23
|
-
:environment => {
|
24
|
-
:short => 'E',
|
25
|
-
:default => 'development'
|
26
|
-
},
|
27
27
|
:daemonize => {
|
28
|
-
:short => '
|
28
|
+
:short => 'd',
|
29
29
|
:default => 'false',
|
30
|
-
:sanitizer => Proc.new { |p| p == 'true' }
|
30
|
+
:sanitizer => Proc.new { |p| p == true || p == 'true' }
|
31
31
|
},
|
32
32
|
:debug => {
|
33
|
-
:short => '
|
33
|
+
:short => 'D',
|
34
34
|
:default => 'true',
|
35
|
-
:sanitizer => Proc.new { |p| p == 'true' }
|
35
|
+
:sanitizer => Proc.new { |p| p == true || p == 'true' }
|
36
36
|
},
|
37
37
|
:upload_dir => {
|
38
38
|
:short => 'U',
|
@@ -50,6 +50,14 @@ module Boxlet
|
|
50
50
|
:short => 'C',
|
51
51
|
:default => '90%',
|
52
52
|
:sanitizer => Proc.new { |p| (p.to_i.to_s == p) ? p.to_i : p }
|
53
|
+
},
|
54
|
+
:pid_file => {
|
55
|
+
:short => 'P',
|
56
|
+
:default => Proc.new { Dir.pwd + "/server.pid" }
|
57
|
+
},
|
58
|
+
:log_file => {
|
59
|
+
:short => 'L',
|
60
|
+
:default => Proc.new { Dir.pwd + "/server.log" }
|
53
61
|
}
|
54
62
|
}
|
55
63
|
|
@@ -57,8 +65,8 @@ module Boxlet
|
|
57
65
|
def populate_params!(argv, path_to_config)
|
58
66
|
@raw_config = load_config_file(path_to_config)
|
59
67
|
@raw_params = parse_arguments(argv)
|
60
|
-
|
61
|
-
@config = @
|
68
|
+
|
69
|
+
@config = @raw_params
|
62
70
|
|
63
71
|
@config[:debug] = @raw_config[:debug] || @raw_params[:debug]
|
64
72
|
if @config[:debug]
|
@@ -80,7 +88,8 @@ module Boxlet
|
|
80
88
|
private
|
81
89
|
|
82
90
|
def parse_arguments(argv)
|
83
|
-
params = Hash.new
|
91
|
+
# params = Hash.new
|
92
|
+
params = @raw_config
|
84
93
|
|
85
94
|
ARGS.each_pair do |param_name, param_attrs|
|
86
95
|
param_short_name = param_attrs[:short]
|
data/lib/boxlet/version.rb
CHANGED
data/lib/handlers/thin.rb
CHANGED
@@ -20,13 +20,19 @@ module Boxlet
|
|
20
20
|
# default_host = environment == 'development' ? : '0.0.0.0'
|
21
21
|
host = @params.delete(:Host) || 'localhost'
|
22
22
|
port = @params.delete(:Port) || 8077
|
23
|
-
|
23
|
+
# pp @params
|
24
24
|
args = [host, port, @app, @params]
|
25
25
|
|
26
26
|
# Thin versions below 0.8.0 do not support additional options
|
27
27
|
args.pop if ::Thin::VERSION::MAJOR < 1 && ::Thin::VERSION::MINOR < 8
|
28
28
|
server = ::Thin::Server.new(*args)
|
29
29
|
yield server if block_given?
|
30
|
+
|
31
|
+
if @params[:daemonize] == true
|
32
|
+
server.pid_file = @params[:pid_file]
|
33
|
+
server.log_file = @params[:log_file]
|
34
|
+
server.daemonize
|
35
|
+
end
|
30
36
|
server.start
|
31
37
|
end
|
32
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: boxlet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- arktisklada
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|