aptinabox 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YmY2MzI0MGU0NTg0YWEyMGE3MTBjNjg1YTIwNmY4ZWExOTZjZmYyNg==
5
+ data.tar.gz: !binary |-
6
+ NGNlMjRmNGJmOWU5OTM1M2JmNjVmNDUyYmJkYWFlNzZlY2RlNGM5OQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ ZmI0MGI5N2I0ZWY5ODRkMGQ5MzlhMGI0ZTFhMTU2NTFlOTBmNjZmMDE5NjFh
10
+ NTAzYmFmZTg5YTQ5YjMwYzU1YzIzOThhYjc3ZWI1YWFiMzIyZDdkZmMwYTc2
11
+ MjVhZWYwNWZkOTZlZTUxMWU3YzBmYjkwZjAyOGNhNTE5NDdmMDI=
12
+ data.tar.gz: !binary |-
13
+ ZDhkMTI0ZjljN2Q1ZTA5YWE3NGU0ZTRlMjM3NjlmYmJmOTZmZWM4MTVmOWM0
14
+ OGJiNTlhM2Y0OGM5OTQzZGJlNDM2MDIwNTI5OWI1NmNlMWQ3ZmVkNmE4NGEy
15
+ YmJlNjAzNmJkMTNkYzA4OTNiMDJiNGE1MTAyMTY3YWYzNGE2YWQ=
@@ -0,0 +1,32 @@
1
+ require 'sinatra/base'
2
+ require 'aptinabox/version'
3
+ require 'aptinabox/config'
4
+ require 'json'
5
+
6
+ module Aptinabox
7
+ class Server < Sinatra::Base
8
+
9
+ before do
10
+ headers 'X-Powered-By' => "aptinabox #{AptinaboxVersion}"
11
+ end
12
+
13
+ get '/' do
14
+ return 'This will eventually list gems - But right now that is not important to us. Later!'
15
+ end
16
+
17
+ post '/upload' do
18
+ if params[:file].nil? or params[:label].nil?
19
+ return { :error => 'Expected parameters: file, label' }.to_json
20
+ end
21
+
22
+ # Pass `--ignore=extension` as we're working with a Tempfile object and it will eat the file extension.
23
+ `reprepro --ignore=extension -b #{Config.reprepro_path}/#{params[:label]} includedeb #{params[:label]} #{params[:file][:tempfile].path}`
24
+ if $?.exitstatus == 0
25
+ return { :file => params[:file][:filename] }.to_json
26
+ else
27
+ return { :error => $?.exitstatus }.to_json
28
+ end
29
+ end
30
+
31
+ end
32
+ end
@@ -0,0 +1,29 @@
1
+
2
+ module Aptinabox
3
+ class Config
4
+
5
+ def self.config_path
6
+ File.join(Gem.user_home, '.gem', 'aptinabox')
7
+ end
8
+
9
+
10
+ def self.reprepro_path
11
+ reprepro_path = Gem.configuration.load_file(config_path)['reprepro_path']
12
+ unless reprepro_path
13
+ raise ArgumentError, "reprepro_path not set in #{config_path}"
14
+ end
15
+
16
+ return reprepro_path
17
+ end
18
+
19
+ def self.reprepro_label_list
20
+ reprepro_label_list = Gem.configuration.load_file(config_path)['reprepro_label_list']
21
+ unless reprepro_label_list
22
+ raise ArgumentError, "reprepro_label_list not set in #{config_path}"
23
+ end
24
+
25
+ return reprepro_label_list
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1 @@
1
+ AptinaboxVersion = '0.0.1'
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: aptinabox
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - TJ Biddle
8
+ - Inflection, LLC
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-10-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sinatra
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ! '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ! '>='
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: puma
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ description: While currently very minimally featured - I would like for this to eventually
43
+ serve as a proper Reprepro web frontend.
44
+ email:
45
+ - tjbiddle@inflection.com
46
+ executables: []
47
+ extensions: []
48
+ extra_rdoc_files: []
49
+ files:
50
+ - lib/aptinabox/config.rb
51
+ - lib/aptinabox/version.rb
52
+ - lib/aptinabox.rb
53
+ homepage: http://github.com/inflection/aptinabox
54
+ licenses: []
55
+ metadata: {}
56
+ post_install_message:
57
+ rdoc_options: []
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ requirements: []
71
+ rubyforge_project:
72
+ rubygems_version: 2.0.6
73
+ signing_key:
74
+ specification_version: 4
75
+ summary: Easily manage Reprepro APT repositories. Inspired by Geminabox.
76
+ test_files: []