test_server 0.3.2 → 0.3.4

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.
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