test_server 0.3.2 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +5 -13
  2. data/.gitignore +3 -2
  3. data/Gemfile +8 -12
  4. data/README.md +2 -2
  5. data/Rakefile +27 -10
  6. data/Rakefile.rails +4 -0
  7. data/app/assets/stylesheets/application.scss +2 -2
  8. data/config/application.rb +21 -3
  9. data/config/environments/production.rb +0 -8
  10. data/files/secrets.yml.erb +20 -0
  11. data/lib/test_server/actions/initialize_application.rb +6 -0
  12. data/lib/test_server/cli/main.rb +3 -1
  13. data/lib/test_server/config.rb +5 -2
  14. data/lib/test_server/version.rb +1 -1
  15. data/public/assets/ajax-loader-8deebb46e9598adab64ca18a097090f2.gif +0 -0
  16. data/public/assets/application-b8f8c1a2dda0ed76ca05e01be6fef6be.js +13451 -0
  17. data/public/assets/application-b8f8c1a2dda0ed76ca05e01be6fef6be.js.gz +0 -0
  18. data/public/assets/application-c2d56ef291192c32403d07556c36de26.css +8222 -0
  19. data/public/assets/application-c2d56ef291192c32403d07556c36de26.css.gz +0 -0
  20. data/public/assets/bootstrap-sass/dist/fonts/glyphicons-halflings-regular-3e35c7e527383fc6fc479c17111469de.ttf +0 -0
  21. data/public/assets/bootstrap-sass/dist/fonts/glyphicons-halflings-regular-483c8aa83c1cae07664b1c959523d062.woff +0 -0
  22. data/public/assets/bootstrap-sass/dist/fonts/glyphicons-halflings-regular-f61f75238afd91ceeef4a5e4c639ead4.svg +229 -0
  23. data/public/assets/bootstrap-sass/dist/fonts/glyphicons-halflings-regular-fe255aca45c0f6e7c8b2a1ed7c7a5274.eot +0 -0
  24. data/public/assets/bootstrap-sass/docs-assets/ico/apple-touch-icon-144-precomposed-dc1944e21bfdedf37f0626c17fe4761b.png +0 -0
  25. data/public/assets/bootstrap-sass/docs-assets/ico/favicon-5ee6a35987b7feae485871297a51e474.png +0 -0
  26. data/public/assets/bootstrap-sass/docs-assets/js/application-0981da122477809b03e6316775fba8ce.js +105 -0
  27. data/public/assets/bootstrap-sass/docs-assets/js/application-0981da122477809b03e6316775fba8ce.js.gz +0 -0
  28. data/public/assets/bootstrap-sass/examples/screenshots/carousel-4fc912866ec1da66bf3ca268dedf2fd0.jpg +0 -0
  29. data/public/assets/bootstrap-sass/examples/screenshots/grid-65fc56df081af8c364a3e43baa48a7f9.jpg +0 -0
  30. data/public/assets/bootstrap-sass/examples/screenshots/jumbotron-05e53fe8b84407cac9996bb8a7617d1f.jpg +0 -0
  31. data/public/assets/bootstrap-sass/examples/screenshots/jumbotron-narrow-c1456e53d5471cb59fd56efa0630407a.jpg +0 -0
  32. data/public/assets/bootstrap-sass/examples/screenshots/justified-nav-28adff9e12d21bc716cb8b4b45a5170a.jpg +0 -0
  33. data/public/assets/bootstrap-sass/examples/screenshots/navbar-9e619f72d4430e54820d5cf959899782.jpg +0 -0
  34. data/public/assets/bootstrap-sass/examples/screenshots/navbar-fixed-58ee4e4e189f9d59408c5be13638eae6.jpg +0 -0
  35. data/public/assets/bootstrap-sass/examples/screenshots/navbar-static-2be1617daecba84fc924b05da62ab618.jpg +0 -0
  36. data/public/assets/bootstrap-sass/examples/screenshots/non-responsive-4dbd6b23b283fc02cba682873bd715f4.jpg +0 -0
  37. data/public/assets/bootstrap-sass/examples/screenshots/offcanvas-bc3fe2949cd853c2a8900307956c8a97.jpg +0 -0
  38. data/public/assets/bootstrap-sass/examples/screenshots/sign-in-f70aa602b9439d930e0153262e70c935.jpg +0 -0
  39. data/public/assets/bootstrap-sass/examples/screenshots/starter-template-244e96ea0834aaf68ac2d51b4779ea02.jpg +0 -0
  40. data/public/assets/bootstrap-sass/examples/screenshots/sticky-footer-3709ae2872cf73ad6eadb9cf1e471ee3.jpg +0 -0
  41. data/public/assets/bootstrap-sass/examples/screenshots/sticky-footer-navbar-5587044c445c613c499c94987c3655b4.jpg +0 -0
  42. data/public/assets/bootstrap-sass/examples/screenshots/theme-21ab06bfc9b7f21b4fc8e803da11f13d.jpg +0 -0
  43. data/public/assets/bootstrap-sass/fonts/glyphicons-halflings-regular-3e35c7e527383fc6fc479c17111469de.ttf +0 -0
  44. data/public/assets/bootstrap-sass/fonts/glyphicons-halflings-regular-483c8aa83c1cae07664b1c959523d062.woff +0 -0
  45. data/public/assets/bootstrap-sass/fonts/glyphicons-halflings-regular-f61f75238afd91ceeef4a5e4c639ead4.svg +229 -0
  46. data/public/assets/bootstrap-sass/fonts/glyphicons-halflings-regular-fe255aca45c0f6e7c8b2a1ed7c7a5274.eot +0 -0
  47. data/public/assets/manifest-399d632024eeab469766a0adcd038b49.json +1 -0
  48. data/public/assets/open-sans/fonts/bold/opensans-bold-webfont-5ab08b90fbb2b65c7fa85b6257ab7c75.eot +0 -0
  49. data/public/assets/open-sans/fonts/bold/opensans-bold-webfont-750a875c4f25392d79776eb913ce7a2a.svg +958 -0
  50. data/public/assets/open-sans/fonts/bold/opensans-bold-webfont-d245c81584bc209186b92046a460e46a.woff +0 -0
  51. data/public/assets/open-sans/fonts/bold/opensans-bold-webfont-e7a6debf8f091e4503e044cfd5be0c41.ttf +0 -0
  52. data/public/assets/open-sans/fonts/bold-italic/opensans-bold-italic-webfont-3343098c02ad5c9255acc597f6d0865a.woff +0 -0
  53. data/public/assets/open-sans/fonts/bold-italic/opensans-bold-italic-webfont-4de1e5ddb76bb4bc65ecd0bf26d18052.ttf +0 -0
  54. data/public/assets/open-sans/fonts/bold-italic/opensans-bold-italic-webfont-90994dcc0d06a4e813fe6789ec46409d.eot +0 -0
  55. data/public/assets/open-sans/fonts/bold-italic/opensans-bold-italic-webfont-d125b28836bb8f399ae1a996b933792f.svg +958 -0
  56. data/public/assets/open-sans/fonts/extrabold/opensans-extrabold-webfont-4390d91f0b15889beaad27555d1a73ed.eot +0 -0
  57. data/public/assets/open-sans/fonts/extrabold/opensans-extrabold-webfont-5afffe461cab895cdb1b2915173f9c40.ttf +0 -0
  58. data/public/assets/open-sans/fonts/extrabold/opensans-extrabold-webfont-97541ae028af017f8c73e5c193001d42.svg +958 -0
  59. data/public/assets/open-sans/fonts/extrabold/opensans-extrabold-webfont-b41639c02d95cce9a3afabec40966e87.woff +0 -0
  60. data/public/assets/open-sans/fonts/extrabold-italic/opensans-extrabold-italic-webfont-4688d243519b0043c628699427e33d08.ttf +0 -0
  61. data/public/assets/open-sans/fonts/extrabold-italic/opensans-extrabold-italic-webfont-6124b23773362839bbb9fe59c5c42669.eot +0 -0
  62. data/public/assets/open-sans/fonts/extrabold-italic/opensans-extrabold-italic-webfont-b288b8bb2c0456f513c66e5f3d1a8e86.woff +0 -0
  63. data/public/assets/open-sans/fonts/extrabold-italic/opensans-extrabold-italic-webfont-da60ccbb572a495f477b2175c04d1960.svg +958 -0
  64. data/public/assets/open-sans/fonts/italic/opensans-italic-webfont-a3e912390ca29982acbe95e8bf31c679.ttf +0 -0
  65. data/public/assets/open-sans/fonts/italic/opensans-italic-webfont-b4669a561cdae44f45b60a0ee2e7e8cd.woff +0 -0
  66. data/public/assets/open-sans/fonts/italic/opensans-italic-webfont-d8a07c962e6a9bebab24506c7b0e53a5.svg +958 -0
  67. data/public/assets/open-sans/fonts/italic/opensans-italic-webfont-ef65d5a7ec248309b3d39185eab4de46.eot +0 -0
  68. data/public/assets/open-sans/fonts/light/opensans-light-webfont-0f32077bd4cbff507ff8ffc7e9f207f0.ttf +0 -0
  69. data/public/assets/open-sans/fonts/light/opensans-light-webfont-1337f63e97d6102f2a3a241fac129c7a.woff +0 -0
  70. data/public/assets/open-sans/fonts/light/opensans-light-webfont-6d641cac3cbf66342fe91dfc29723d34.eot +0 -0
  71. data/public/assets/open-sans/fonts/light/opensans-light-webfont-8273be5ff945da30906b8fd7fac767aa.svg +958 -0
  72. data/public/assets/open-sans/fonts/light-italic/opensans-light-italic-webfont-31f3f5d1f66d7ebbdd3d6f462707bee6.ttf +0 -0
  73. data/public/assets/open-sans/fonts/light-italic/opensans-light-italic-webfont-a5ef1006892c0a391e29f7c839982463.woff +0 -0
  74. data/public/assets/open-sans/fonts/light-italic/opensans-light-italic-webfont-b8b819ed29a82b0be6c0de1e8246b1dd.eot +0 -0
  75. data/public/assets/open-sans/fonts/light-italic/opensans-light-italic-webfont-f239c2432833ae460c2294be532f9ea7.svg +958 -0
  76. data/public/assets/open-sans/fonts/regular/opensans-regular-webfont-001b7e40367093d95c1d5e47f32c0830.ttf +0 -0
  77. data/public/assets/open-sans/fonts/regular/opensans-regular-webfont-356deed95e2b29ee22d793842fe14c14.eot +0 -0
  78. data/public/assets/open-sans/fonts/regular/opensans-regular-webfont-8d971e991a2e1b8c6bfb18e879c8a024.woff +0 -0
  79. data/public/assets/open-sans/fonts/regular/opensans-regular-webfont-c89373b333fa6e878d2e54da360d60d1.svg +958 -0
  80. data/public/assets/open-sans/fonts/semibold/opensans-semibold-webfont-3e3ce2430855173bdb61b444afd27798.svg +958 -0
  81. data/public/assets/open-sans/fonts/semibold/opensans-semibold-webfont-66d0e5df946a12d08438dd7c935ae3c1.eot +0 -0
  82. data/public/assets/open-sans/fonts/semibold/opensans-semibold-webfont-92eb41279d9e4bb36db7d798f4a3ce53.woff +0 -0
  83. data/public/assets/open-sans/fonts/semibold/opensans-semibold-webfont-a351567fbcf31a8a7ff8cf20b88da14f.ttf +0 -0
  84. data/public/assets/open-sans/fonts/semibold-italic/opensans-semibold-italic-webfont-096e5044aeb4a52cd9e943054c0d1916.svg +958 -0
  85. data/public/assets/open-sans/fonts/semibold-italic/opensans-semibold-italic-webfont-175ec3bae342e25dd251f86e8f5584b2.eot +0 -0
  86. data/public/assets/open-sans/fonts/semibold-italic/opensans-semibold-italic-webfont-450906046944eae72690caf27a30bec1.woff +0 -0
  87. data/public/assets/open-sans/fonts/semibold-italic/opensans-semibold-italic-webfont-f9131100953e2ee6bb7ea636bef99935.ttf +0 -0
  88. data/script/precompile +4 -0
  89. data/share/archlinux/Gemfile.rb.erb +9 -2
  90. data/share/archlinux/PKGBUILD.sh.erb +117 -30
  91. data/share/archlinux/bundle_config.yaml.erb +3 -0
  92. data/share/archlinux/config.yaml.erb +2 -0
  93. data/share/archlinux/database.yml.erb +25 -0
  94. data/share/archlinux/secrets.yml.erb +20 -0
  95. data/share/archlinux/startup.sh.erb +5 -0
  96. data/share/archlinux/test_server.install +22 -3
  97. data/share/{archlinux → systemd}/tmpfiles.conf.erb +0 -0
  98. data/spec/controllers/errors_controller_spec.rb +12 -12
  99. data/test_server.gemspec +13 -2
  100. data/tmp/.keep +0 -0
  101. metadata +218 -54
  102. data/share/systemd/test_server.service +0 -9
data/script/precompile ADDED
@@ -0,0 +1,4 @@
1
+ #!/bin/sh
2
+
3
+ #RAILS_ENV=production rake -f Rakefile.rails assets:precompile
4
+ rake -f Rakefile.rails assets:precompile
@@ -1,5 +1,12 @@
1
+ # Used to speed up package building if
2
+ # using https://github.com/dg-vrnetze/gem_server
3
+ source 'http://localhost:8082'
4
+
5
+ # Fallback
1
6
  source 'https://rubygems.org'
2
7
 
3
- <% eval(File.read(File.expand_path('../../../test_server.gemspec', __FILE__))).dependencies.each do |r| -%>
4
- gem '<%= r.name %>'
8
+ gem '<%= lookup('SOFTWARE_NAME') %>', '<%= lookup('SOFTWARE_VERSION') %>'
9
+
10
+ <% eval(File.read(lookup('GEMSPEC'))).dependencies.each do |r| -%>
11
+ gem '<%= r.name %>', '<%= r.requirement %>'
5
12
  <% end -%>
@@ -6,24 +6,30 @@ pkgdesc="test server for proxy testing"
6
6
  arch=(i686 x86_64)
7
7
  url="https://github.com/dg-vrnetze/${pkgname}"
8
8
  license=('MIT')
9
- depends=('ruby' 'libatomic_ops')
9
+ depends=('ruby')
10
10
  install=${pkgname}.install
11
- makedepends=(rubygems filegen phantomjs)
12
- source=(http://gems.rubyforge.org/gems/$pkgname-$pkgver.gem)
11
+ makedepends=('rubygems' 'filegen' 'phantomjs' 'ruby-bundler' 'libatomic_ops')
12
+ source=(<%= lookup('source') %>)
13
13
  backup=etc/${pkgname}/config.yaml
14
- #source=($pkgname-$pkgver.gem)
14
+ backup=etc/${pkgname}/database.yml
15
+ backup=etc/${pkgname}/secrets.yml
15
16
  noextract=($pkgname-$pkgver.gem)
16
17
  <%= lookup('sha') %>
17
18
 
18
19
  package() {
19
- cd "$srcdir"
20
+ cd "$pkgdir"
20
21
 
21
- _library_dir=/usr/lib/${pkgname}
22
+ _ruby_api_version=$(ruby -e "puts Gem.ruby_api_version")
23
+ _bundle_library_dir=/usr/lib/${pkgname}
24
+
25
+ _library_dir=${_bundle_library_dir}/ruby/${_ruby_api_version}
22
26
  _gem_directory="${_library_dir}/gems/${pkgname}-${pkgver}"
23
27
  _share_dir="${_gem_directory}/share"
24
28
  _systemd_dir=/usr/lib/systemd/system
25
29
  _bin_dir=/usr/bin
26
30
  _data_dir=/var/${pkgname}/data
31
+ _database_dir=${_data_dir}/db
32
+ _files_dir=${_data_dir}/files
27
33
  _log_dir=/var/log/${pkgname}
28
34
  _config_dir=/etc/${pkgname}
29
35
  _examples_dir=/usr/share/${pkgname}/examples
@@ -37,60 +43,121 @@ package() {
37
43
  _service_group=$pkgname
38
44
  _service_environment_file=${_defaults_dir}/${pkgname}
39
45
  _access_log_file=${_log_dir}/access.log
46
+ _error_log_file=${_log_dir}/error.log
40
47
  _debug_mode=false
41
48
  _log_level=warn
42
49
  _environment=production
43
50
  _listen_statement=tcp://127.0.0.1:8000
44
51
  _reload_config_signal=USR1
45
- _sass_cache_dir=$_cache_dir
52
+ _sass_cache_dir=${_cache_dir}/sass
46
53
  _pid_file=${_run_dir}/pid
47
- _executable_file=${pkgdir}${_bin_dir}/${pkgname}
54
+ _executable_file=${_bin_dir}/${pkgname}
48
55
  _gem_file="${_gem_directory}/Gemfile"
56
+ _bundle_config_directory=${_gem_directory}/.bundle
57
+ _bundle_config_file=${_bundle_config_directory}/config
58
+ _systemd_service_file=${_systemd_dir}/${pkgname}.service
59
+ _bundle_without_groups="test:development:doc:profile"
60
+ _database_configuration_file=${_config_dir}/database.yml
61
+ _database_configuration_link=${_gem_directory}/config/database.yml
62
+ _secrets_file=${_config_dir}/secrets.yml
63
+ _secrets_link=${_gem_directory}/config/secrets.yml
49
64
 
50
65
  install -d ${pkgdir}$_library_dir
51
66
  install -d ${pkgdir}$_bin_dir
52
67
  install -d ${pkgdir}$_systemd_dir
53
68
  install -d -m 770 ${pkgdir}$_data_dir
69
+ install -d -m 770 ${pkgdir}$_database_dir
70
+ install -d -m 770 ${pkgdir}$_files_dir
54
71
  install -d ${pkgdir}$_log_dir
55
72
  install -d ${pkgdir}$_config_dir
56
- #install -d ${pkgdir}$_run_dir
57
73
  install -d ${pkgdir}$_tmp_files_dir
58
74
  install -d ${pkgdir}$_sass_cache_dir
59
75
  install -d ${pkgdir}$_defaults_dir
76
+ install -d ${pkgdir}$_bundle_config_directory
60
77
 
61
-
62
- msg "Starting download of gems. Don't get alert if the download takes a lot of time. Since rubygems 2.2.0 a new algorithm to resolve dependencies is used. Upgrade to > 2.2.0 via sudo /usr/bin/gem update --system to improve performance."
78
+ msg "Starting download of gems. Don't get alert if the download takes a lot of time. Since rubygems 2.2.0 a new algorithm to resolve dependencies is used. Upgrade to > 2.2.0 via \"sudo /usr/bin/gem update --system\" to improve performance."
63
79
 
64
80
  set -x
65
81
 
66
- GEM_HOME="${pkgdir}${_library_dir}" GEM_ROOT="${pkgdir}${_library_dir}" GEM_PATH="${pkgdir}${_library_dir}" /usr/bin/gem install --ignore-dependencies --env-shebang --wrappers --no-ri --no-rdoc --no-prerelease --install-dir ${pkgdir}${_library_dir} $pkgname-$pkgver.gem bundler
67
-
68
- filegen ${pkgdir}${_share_dir}/archlinux/Gemfile.rb.erb > ${pkgdir}${_gem_file}
69
- rm ${pkgdir}${_gem_file}.lock
70
-
71
- GEM_HOME="${pkgdir}${_library_dir}" GEM_ROOT="${pkgdir}${_library_dir}" GEM_PATH="${pkgdir}${_library_dir}" bundle install --gemfile ${pkgdir}${_gem_file} --without test development
72
-
73
- GEM_HOME="${pkgdir}${_library_dir}" GEM_ROOT="${pkgdir}${_library_dir}" GEM_PATH="${pkgdir}${_library_dir}" /usr/bin/gem install --env-shebang --wrappers --no-ri --no-rdoc --no-prerelease --install-dir ${pkgdir}${_library_dir} puma
74
-
82
+ # Gem includes all files needed to build package
83
+ /usr/bin/gem install \
84
+ --env-shebang \
85
+ --no-ri \
86
+ --no-rdoc \
87
+ --no-prerelease \
88
+ --install-dir ${pkgdir}${_library_dir} \
89
+ <%= lookup('package') %>
90
+
91
+ # Installation of gems is done by using bundler because `test_server` is a
92
+ # rails-application which requires a valid Gemfile.lock which can be
93
+ # generated by bundler
94
+ SOFTWARE_NAME=$pkgname \
95
+ SOFTWARE_VERSION=$pkgver \
96
+ RUBYLIB="${pkgdir}${_gem_directory}/lib" \
97
+ GEMSPEC="${pkgdir}${_gem_directory}/${pkgname}.gemspec" \
98
+ filegen ${pkgdir}${_share_dir}/archlinux/Gemfile.rb.erb > ${pkgdir}${_gem_file}
99
+
100
+ # Remove old lock
101
+ rm -f ${pkgdir}${_gem_file}.lock
102
+
103
+ # Install gems
104
+ no_proxy='localhost' \
105
+ /usr/bin/bundle install \
106
+ --gemfile ${pkgdir}${_gem_file} \
107
+ --without $_bundle_without_groups \
108
+ --path "${pkgdir}${_bundle_library_dir}" \
109
+ --no-binstubs
110
+
111
+ ## Generate assets for production environment
112
+ #RAILS_ENV=production \
113
+ # BUNDLE_GEMFILE=${pkgdir}${_gem_file} \
114
+ # BUNDLE_PATH=${pkgdir}${_library_dir} \
115
+ # BUNDLE_WITHOUT=$_bundle_without_groups \
116
+ # BUNDLE_FROZEN=1 \
117
+ # /usr/bin/bundle exec rake \
118
+ # -f ${pkgdir}${_gem_directory}/Rakefile.rails \
119
+ # assets:precompile
120
+
121
+ # some files did not get a read bit while precompiling
122
+ find ${pkgdir}${_gem_directory}/public/assets -type f -exec chmod a+r {} \;
123
+
124
+ ## Overwrite bundler-config because it uses absolutes path written during
125
+ ## package building
126
+ #SOFTWARE_LIB=${_library_dir} \
127
+ # filegen ${pkgdir}${_share_dir}/archlinux/bundle_config.yaml.erb > ${pkgdir}${_bundle_config_file}
128
+ # Delete bundler config otherwise the environment variables (BUNDLE_*) in
129
+ # starter do not have an effect
130
+ rm ${pkgdir}${_bundle_config_file}
131
+
132
+ # A temp directory under /run is needed to run `test_server`
75
133
  RUN_DIR=$_run_dir \
76
134
  SERVICE_USER=$_service_user \
77
135
  SERVICE_GROUP=$_service_group \
78
- filegen ${pkgdir}${_share_dir}/archlinux/tmpfiles.conf.erb > ${pkgdir}${_tmp_files_file}
136
+ filegen ${pkgdir}${_share_dir}/systemd/tmpfiles.conf.erb > ${pkgdir}${_tmp_files_file}
137
+
138
+ chmod 644 ${pkgdir}${_tmp_files_file}
79
139
 
140
+ # Generate `test_server`-service file for systemd
80
141
  COMMAND="${_executable_file} serve" \
81
- DESCRIPTION='Server to proxy tests'
142
+ DESCRIPTION='Server to proxy tests' \
82
143
  SERVICE_USER=$_service_user \
83
144
  SERVICE_GROUP=$_service_group \
84
145
  DEFAULTS_FILE=$_service_environment_file \
85
- filegen ${pkgdir}${_share_dir}/systemd/${pkgname}.service.erb > ${pkgdir}$_systemd_dir/${pkgname}.service
146
+ filegen ${pkgdir}${_share_dir}/systemd/${pkgname}.service.erb > ${pkgdir}${_systemd_service_file}
147
+
148
+ chmod 644 ${pkgdir}${_systemd_service_file}
86
149
 
150
+ # Generate /etc/default/test_server-file
87
151
  VARIABLES="HOME=/home/$_service_user" \
88
152
  filegen ${pkgdir}${_share_dir}/archlinux/defaults.sh.erb > ${pkgdir}${_service_environment_file}
89
153
 
90
- chmod 644 ${pkgdir}${_tmp_files_file}
154
+ chmod 644 ${pkgdir}${_service_environment_file}
91
155
 
156
+ # Generate default configuration for `test_server`
92
157
  ACCESS_LOG=$_access_log_file \
158
+ ERROR_LOG=$_error_log_file \
93
159
  CONFIG_FILE=$_config_file \
160
+ SECRETS_FILE=$_secrets_file \
94
161
  DEBUG_MODE=$_debug_mode \
95
162
  ENVIRONMENT=$_environment \
96
163
  LISTEN=$_listen_statement \
@@ -102,19 +169,39 @@ package() {
102
169
 
103
170
  chmod 644 ${pkgdir}${_config_file}
104
171
 
105
- SOFTWARE_BINARY=$_library_dir/gems/${pkgname}-${pkgver}/bin/${pkgname} \
106
- SOFTWARE_LIB=/usr/lib/${pkgname} \
107
- filegen ${pkgdir}${_share_dir}/archlinux/startup.sh.erb > $_executable_file
172
+ # Generate Database configuration
173
+ DATABASE_DIRECTORY=$_database_dir \
174
+ filegen ${pkgdir}${_share_dir}/archlinux/database.yml.erb > ${pkgdir}${_database_configuration_file}
175
+
176
+ ln -fs ${_database_configuration_file} ${pkgdir}${_database_configuration_link}
177
+
178
+ chmod 640 ${pkgdir}${_database_configuration_file}
179
+
180
+ # Generate Secrets for your application
181
+ filegen ${pkgdir}${_share_dir}/archlinux/secrets.yml.erb > ${pkgdir}${_secrets_file}
182
+
183
+ ln -fs ${_secrets_file} ${pkgdir}${_secrets_link}
184
+
185
+ chmod 640 ${pkgdir}${_secrets_file}
186
+
187
+ # Generate wrapper to set all environment variables correctly to make
188
+ # bundler find installed ruby gems
189
+ SOFTWARE_BINARY=${_gem_directory}/bin/${pkgname} \
190
+ SOFTWARE_LIB=${_library_dir} \
191
+ BUNDLE_WITHOUT_GROUPS=$_bundle_without_groups \
192
+ GEMFILE=${_gem_file} \
193
+ filegen ${pkgdir}${_share_dir}/archlinux/startup.sh.erb > ${pkgdir}${_executable_file}
108
194
 
109
195
  chmod a+x ${pkgdir}/${_bin_dir}/${pkgname}
110
196
 
197
+ # Delete tempfiles
111
198
  rm -rf ${pkgdir}/${_library_dir}/cache
112
199
  rm -rf ${pkgdir}/${_library_dir}/{build_info,doc}
113
200
 
114
- install -D -m644 ${pkgdir}/$_share_dir/systemd/${pkgname}.service ${pkgdir}/$_systemd_dir/${pkgname}.service
115
- #install -D -m644 ${pkgdir}/$_share_dir/systemd/${pkgname}.socket ${pkgdir}/$_systemd_dir
116
-
201
+ # Install license
117
202
  install -D -m644 ${pkgdir}${_share_dir}/../LICENSE.md "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
203
+
204
+ set +x
118
205
  }
119
206
 
120
207
  # vim:set ts=2 sw=2 et:
@@ -0,0 +1,3 @@
1
+ BUNDLE_PATH: <%= lookup('SOFTWARE_LIB') %>
2
+ BUNDLE_WITHOUT: <%= lookup('WITHOUT_GROUPS') %>
3
+ BUNDLE_FROZEN: true
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  :access_log: <%= lookup('ACCESS_LOG') %>
3
+ :error_log: <%= lookup('ERROR_LOG') %>
3
4
  :config_file: <%= lookup('CONFIG_FILE') %>
5
+ :secrets_file: <%= lookup('SECRETS_FILE') %>
4
6
  :debug_mode: <%= lookup('DEBUG_MODE') %>
5
7
  :environment: <%= lookup('ENVIRONMENT') %>
6
8
  :listen: <%= lookup('LISTEN') %>
@@ -0,0 +1,25 @@
1
+ # SQLite version 3.x
2
+ # gem install sqlite3
3
+ #
4
+ # Ensure the SQLite 3 gem is defined in your Gemfile
5
+ # gem 'sqlite3'
6
+ #
7
+ default: &default
8
+ adapter: sqlite3
9
+ pool: 5
10
+ timeout: 5000
11
+
12
+ development:
13
+ <<: *default
14
+ database: <%= lookup('DATABASE_DIRECTORY') %>/development.sqlite3
15
+
16
+ # Warning: The database defined as "test" will be erased and
17
+ # re-generated from your development database when you run "rake".
18
+ # Do not set this db to the same as development or production.
19
+ test:
20
+ <<: *default
21
+ database: <%= lookup('DATABASE_DIRECTORY') %>/test.sqlite3
22
+
23
+ production:
24
+ <<: *default
25
+ database: <%= lookup('DATABASE_DIRECTORY') %>/production.sqlite3
@@ -0,0 +1,20 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key is used for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+
6
+ # Make sure the secret is at least 30 characters and all random,
7
+ # no regular words or you'll be exposed to dictionary attacks.
8
+ # You can use `rake secret` to generate a secure secret key.
9
+
10
+ # Make sure the secrets in this file are kept private
11
+ # if you're sharing your code publicly.
12
+ <%- require 'securerandom' -%>
13
+ development:
14
+ secret_key_base: <%= SecureRandom.hex(128) %>
15
+
16
+ test:
17
+ secret_key_base: <%= SecureRandom.hex(128) %>
18
+
19
+ production:
20
+ secret_key_base: <%= SecureRandom.hex(128) %>
@@ -4,6 +4,11 @@ export GEM_ROOT='<%= lookup('SOFTWARE_LIB') %>'
4
4
  export GEM_PATH='<%= lookup('SOFTWARE_LIB') %>'
5
5
  export GEM_HOME='<%= lookup('SOFTWARE_LIB') %>'
6
6
 
7
+ export BUNDLE_PATH='<%= lookup('SOFTWARE_LIB') %>'
8
+ export BUNDLE_WITHOUT='<%= lookup('BUNDLE_WITHOUT_GROUPS') %>'
9
+ export BUNDLE_FROZEN=1
10
+ export BUNDLE_GEMFILE='<%= lookup('GEMFILE') %>'
11
+
7
12
  export PATH="<%= lookup('SOFTWARE_LIB') %>/bin:$PATH"
8
13
 
9
14
  exec <%= lookup('SOFTWARE_BINARY') %> $*
@@ -8,6 +8,11 @@ _data_dir=/var/${pkgname}/data
8
8
  _log_dir=/var/log/${pkgname}
9
9
  _cache_dir=/var/cache/${pkgname}
10
10
  _sass_cache_directory=$_cache_dir
11
+ _database_dir=${_data_dir}/db
12
+ _files_dir=${_data_dir}/files
13
+ _config_dir=/etc/${pkgname}
14
+ _database_configuration_file=${_config_dir}/database.yml
15
+ _secrets_file=${_config_dir}/secrets.yml
11
16
 
12
17
  post_install() {
13
18
  if ! getent group $_admin_group >/dev/null; then
@@ -18,13 +23,22 @@ post_install() {
18
23
  useradd -m $_service_user
19
24
  fi
20
25
 
21
- for path in $_log_dir $_sass_cache_directory; do
26
+ for path in $_log_dir $_sass_cache_directory $_data_dir $_database_dir $_files_dir; do
22
27
  chown -R $_service_user:$_service_group $path
23
28
  done
24
29
 
25
30
  # Admins are allowed to write, service is allowd to read, others can do nothing
26
- chown :$_admin_group $_data_dir
27
- setfacl -m g:$_service_group:rx $_data_dir
31
+ chown :$_admin_group $_files_dir
32
+ setfacl -m g:$_service_group:rx $_files_dir
33
+
34
+ # Allow the web application to read database configuration file
35
+ chown :$_service_group $_database_configuration_file
36
+
37
+ # Allow the web application to read secrets file
38
+ chown :$_service_group $_secrets_file
39
+
40
+ # Create run directories
41
+ systemd-tmpfiles --create
28
42
 
29
43
  echo ""
30
44
  echo "Please place a config file at one of the following places:"
@@ -35,6 +49,8 @@ post_install() {
35
49
  echo ""
36
50
  echo "The package contains a \"config.yaml\" which has been placed at /etc/test_server/config.yaml during package install. Feel free to modify it."
37
51
  echo ""
52
+ echo "Make sure you add your admins to the admin group \"$_admin_group\" to enable those to upload files used for testing via scp."
53
+ echo ""
38
54
  }
39
55
 
40
56
  post_upgrade() {
@@ -62,4 +78,7 @@ post_remove() {
62
78
  if ! getent passwd $_service_user >/dev/null; then
63
79
  userdel $_service_user
64
80
  fi
81
+
82
+ # Delete run directories
83
+ systemd-tmpfiles --clean
65
84
  }
File without changes
@@ -1,12 +1,12 @@
1
- require 'spec_helper'
2
-
3
- describe TestServer::ErrorsController do
4
-
5
- describe "GET 'not_found'" do
6
- it "returns http success" do
7
- get 'not_found'
8
- response.should be_success
9
- end
10
- end
11
-
12
- end
1
+ #require 'spec_helper'
2
+ #
3
+ #describe TestServer::ErrorsController do
4
+ #
5
+ # describe "GET 'not_found'" do
6
+ # it "returns http success" do
7
+ # get 'not_found'
8
+ # response.should be_success
9
+ # end
10
+ # end
11
+ #
12
+ #end
data/test_server.gemspec CHANGED
@@ -3,6 +3,7 @@ lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  require 'test_server/version'
6
+ require 'pathname'
6
7
 
7
8
  Gem::Specification.new do |spec|
8
9
  spec.name = 'test_server'
@@ -11,9 +12,13 @@ Gem::Specification.new do |spec|
11
12
  spec.email = ['dg1@vrnetze.de']
12
13
  spec.summary = %q{Test server for proxies}
13
14
  spec.description = %q{Test server for proxies}
14
- #spec.license = 'MIT'
15
+ spec.license = 'MIT'
15
16
 
16
- spec.files = `git ls-files -z`.split("\x0")
17
+ base_path = File.expand_path('..', __FILE__)
18
+ git_files = `git ls-files -z`.split("\x0")
19
+ asset_files = Dir.glob(File.join(base_path, 'public', 'assets', '**', '*')).keep_if { |f| File.file? f }.collect { |f| Pathname.new(f).relative_path_from(Pathname.new(base_path)).to_s }
20
+
21
+ spec.files = git_files + asset_files
17
22
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
23
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
24
  spec.require_paths = ['lib']
@@ -37,8 +42,14 @@ Gem::Specification.new do |spec|
37
42
  spec.add_runtime_dependency 'sass-rails', '~> 4.0.3'
38
43
  spec.add_runtime_dependency 'sqlite3'
39
44
  spec.add_runtime_dependency 'therubyracer'
45
+ spec.add_runtime_dependency 'sprockets-rails', '~> 2.1.3'
40
46
  spec.add_runtime_dependency 'thor'
41
47
  spec.add_runtime_dependency 'turbolinks'
42
48
  spec.add_runtime_dependency 'breadcrumbs_on_rails'
43
49
  spec.add_runtime_dependency 'uglifier', '>= 1.3.0'
50
+ spec.add_runtime_dependency 'bundler', '~> 1.6.2'
51
+ spec.add_runtime_dependency 'puma', '~> 2.8.2'
52
+ spec.add_runtime_dependency 'pry'
53
+ spec.add_runtime_dependency 'pry-rails'
54
+ spec.add_runtime_dependency 'pry-debugger'
44
55
  end
data/tmp/.keep ADDED
File without changes