vagrant-unbundled 2.2.4.0 → 2.2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (438) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +44 -0
  3. data/Gemfile.lock +10 -10
  4. data/LICENSE +1 -1
  5. data/README.md +10 -0
  6. data/RELEASE.md +11 -25
  7. data/contrib/bash/completion.sh +1 -1
  8. data/lib/vagrant/action/builtin/mixin_synced_folders.rb +7 -1
  9. data/lib/vagrant/action/general/package.rb +18 -0
  10. data/lib/vagrant/action/runner.rb +1 -1
  11. data/lib/vagrant/action/warden.rb +1 -1
  12. data/lib/vagrant/batch_action.rb +14 -0
  13. data/lib/vagrant/box_collection.rb +1 -1
  14. data/lib/vagrant/bundler.rb +29 -8
  15. data/lib/vagrant/cli.rb +1 -1
  16. data/lib/vagrant/environment.rb +50 -5
  17. data/lib/vagrant/machine.rb +4 -1
  18. data/lib/vagrant/plugin/v2/trigger.rb +12 -3
  19. data/lib/vagrant/shared_helpers.rb +8 -0
  20. data/lib/vagrant/util/guest_inspection.rb +19 -0
  21. data/lib/vagrant/vagrantfile.rb +18 -14
  22. data/plugins/commands/box/command/update.rb +8 -2
  23. data/plugins/commands/cloud/box/create.rb +1 -1
  24. data/plugins/commands/cloud/box/delete.rb +1 -1
  25. data/plugins/commands/cloud/provider/create.rb +1 -1
  26. data/plugins/commands/cloud/provider/delete.rb +1 -1
  27. data/plugins/commands/cloud/provider/update.rb +1 -1
  28. data/plugins/commands/cloud/provider/upload.rb +1 -1
  29. data/plugins/commands/cloud/publish.rb +1 -1
  30. data/plugins/commands/cloud/search.rb +1 -1
  31. data/plugins/commands/cloud/version/create.rb +1 -1
  32. data/plugins/commands/cloud/version/delete.rb +1 -1
  33. data/plugins/commands/cloud/version/release.rb +1 -1
  34. data/plugins/commands/cloud/version/revoke.rb +1 -1
  35. data/plugins/commands/cloud/version/update.rb +1 -1
  36. data/plugins/commands/global-status/command.rb +11 -0
  37. data/plugins/commands/snapshot/command/list.rb +2 -1
  38. data/plugins/commands/snapshot/command/pop.rb +3 -1
  39. data/plugins/communicators/ssh/communicator.rb +0 -1
  40. data/plugins/guests/bsd/cap/{virtualbox.rb → mount_virtualbox_shared_folder.rb} +1 -1
  41. data/plugins/guests/bsd/plugin.rb +2 -2
  42. data/plugins/guests/coreos/cap/change_host_name.rb +24 -7
  43. data/plugins/guests/coreos/cap/configure_networks.rb +48 -64
  44. data/plugins/guests/freebsd/cap/configure_networks.rb +2 -2
  45. data/plugins/guests/freebsd/cap/mount_virtualbox_shared_folder.rb +76 -0
  46. data/plugins/guests/freebsd/plugin.rb +10 -0
  47. data/plugins/hosts/bsd/cap/nfs.rb +1 -1
  48. data/plugins/hosts/freebsd/cap/nfs.rb +1 -1
  49. data/plugins/hosts/void/cap/nfs.rb +1 -1
  50. data/plugins/kernel_v2/config/vm_trigger.rb +1 -1
  51. data/plugins/providers/docker/action/connect_networks.rb +77 -0
  52. data/plugins/providers/docker/action/destroy_network.rb +50 -0
  53. data/plugins/providers/docker/action/prepare_networks.rb +355 -0
  54. data/plugins/providers/docker/action.rb +9 -3
  55. data/plugins/providers/docker/driver/compose.rb +13 -1
  56. data/plugins/providers/docker/driver.rb +148 -4
  57. data/plugins/providers/docker/errors.rb +28 -0
  58. data/plugins/providers/docker/provider.rb +8 -0
  59. data/plugins/providers/virtualbox/cap.rb +1 -0
  60. data/plugins/provisioners/ansible/cap/guest/debian/ansible_install.rb +5 -5
  61. data/plugins/provisioners/ansible/cap/guest/fedora/ansible_install.rb +5 -5
  62. data/plugins/provisioners/ansible/cap/guest/pip/pip.rb +15 -2
  63. data/plugins/provisioners/ansible/cap/guest/redhat/ansible_install.rb +5 -5
  64. data/plugins/provisioners/ansible/cap/guest/ubuntu/ansible_install.rb +2 -2
  65. data/plugins/provisioners/ansible/config/guest.rb +3 -0
  66. data/plugins/provisioners/ansible/provisioner/guest.rb +5 -2
  67. data/plugins/provisioners/chef/cap/freebsd/chef_installed.rb +1 -1
  68. data/plugins/provisioners/chef/cap/linux/chef_installed.rb +1 -1
  69. data/plugins/provisioners/chef/cap/omnios/chef_installed.rb +1 -1
  70. data/plugins/provisioners/chef/cap/windows/chef_installed.rb +2 -2
  71. data/plugins/provisioners/chef/provisioner/base.rb +1 -1
  72. data/plugins/synced_folders/rsync/command/rsync_auto.rb +5 -1
  73. data/plugins/synced_folders/rsync/default_unix_cap.rb +1 -1
  74. data/plugins/synced_folders/rsync/helper.rb +8 -7
  75. data/plugins/synced_folders/smb/synced_folder.rb +21 -0
  76. data/templates/locales/en.yml +8 -4
  77. data/templates/locales/providers_docker.yml +70 -0
  78. data/templates/nfs/{exports_freebsd.erb → exports_bsd.erb} +0 -0
  79. data/vendor/bundle/ruby/2.6.0/bundler/gems/vagrant-spec-abfc34474d12/vagrant-spec.gemspec +3 -3
  80. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/bcrypt_pbkdf-1.0.1/bcrypt_pbkdf_ext.so +0 -0
  81. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/bcrypt_pbkdf-1.0.1/gem.build_complete +0 -0
  82. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/bcrypt_pbkdf-1.0.1/gem_make.out +19 -0
  83. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/unf_ext-0.0.7.6/gem.build_complete +0 -0
  84. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/unf_ext-0.0.7.6/gem_make.out +16 -0
  85. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/unf_ext-0.0.7.6/mkmf.log +35 -0
  86. data/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/unf_ext-0.0.7.6/unf_ext.so +0 -0
  87. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/.travis.yml +8 -0
  88. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/CHANGELOG.md +3 -0
  89. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/COPYING +23 -0
  90. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/Gemfile +2 -0
  91. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/Gemfile.lock +31 -0
  92. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/README.md +31 -0
  93. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/Rakefile +56 -0
  94. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/bcrypt_pbkdf.gemspec +29 -0
  95. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/.sitearchdir.time +0 -0
  96. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/Makefile +265 -0
  97. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/bcrypt_pbkdf.c +169 -0
  98. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/bcrypt_pbkdf.o +0 -0
  99. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/bcrypt_pbkdf_ext.c +44 -0
  100. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/bcrypt_pbkdf_ext.o +0 -0
  101. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/bcrypt_pbkdf_ext.so +0 -0
  102. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/blf.h +90 -0
  103. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/blowfish.c +698 -0
  104. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/blowfish.o +0 -0
  105. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/crypto_api.h +3 -0
  106. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/crypto_hash_sha512.h +19 -0
  107. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/explicit_bzero.c +20 -0
  108. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/explicit_bzero.o +0 -0
  109. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/extconf.rb +3 -0
  110. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/hash_sha512.c +320 -0
  111. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/hash_sha512.o +0 -0
  112. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/includes.h +27 -0
  113. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/sha2.h +13 -0
  114. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/util.h +0 -0
  115. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/ext/mri/utils.h +5 -0
  116. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/lib/bcrypt_pbkdf.rb +24 -0
  117. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/lib/bcrypt_pbkdf_ext.so +0 -0
  118. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/test/bcrypt_pnkdf/engine_test.rb +76 -0
  119. data/vendor/bundle/ruby/2.6.0/gems/bcrypt_pbkdf-1.0.1/test/test_helper.rb +2 -0
  120. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/.document +5 -0
  121. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/.gitignore +17 -0
  122. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/.travis.yml +21 -0
  123. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/CHANGELOG.md +219 -0
  124. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/Gemfile +4 -0
  125. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/LICENSE.txt +78 -0
  126. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/README.md +67 -0
  127. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/Rakefile +111 -0
  128. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/data/public_suffix_list.dat +12985 -0
  129. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/domain_name.gemspec +36 -0
  130. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/lib/domain_name/etld_data.rb +8787 -0
  131. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/lib/domain_name/etld_data.rb.erb +11 -0
  132. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/lib/domain_name/punycode.rb +283 -0
  133. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/lib/domain_name/version.rb +3 -0
  134. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/lib/domain_name.rb +297 -0
  135. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/test/helper.rb +17 -0
  136. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/test/test_domain_name-punycode.rb +97 -0
  137. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/test/test_domain_name.rb +317 -0
  138. data/vendor/bundle/ruby/2.6.0/gems/domain_name-0.5.20190701/tool/gen_etld_data.rb +63 -0
  139. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/.gitignore +11 -0
  140. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/COPYING +18 -0
  141. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/Changelog.md +23 -0
  142. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/Gemfile +2 -0
  143. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/README.md +22 -0
  144. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/Rakefile +11 -0
  145. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/VERSION +1 -0
  146. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/examples/gss_client.rb +26 -0
  147. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/examples/gss_iov_client.rb +55 -0
  148. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/examples/gss_iov_helpers.rb +74 -0
  149. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/examples/gss_iov_server.rb +67 -0
  150. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/examples/gss_server.rb +31 -0
  151. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/gssapi.gemspec +34 -0
  152. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/lib/gssapi/exceptions.rb +50 -0
  153. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/lib/gssapi/extensions.rb +40 -0
  154. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/lib/gssapi/heimdal.rb +10 -0
  155. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/lib/gssapi/lib_gssapi.rb +414 -0
  156. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/lib/gssapi/lib_gssapi_loader.rb +80 -0
  157. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/lib/gssapi/simple.rb +269 -0
  158. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/lib/gssapi.rb +18 -0
  159. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/preamble +5 -0
  160. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/test/spec/gssapi_simple_spec.rb +70 -0
  161. data/vendor/bundle/ruby/2.6.0/gems/gssapi-1.3.0/test/spec/test_buffer_spec.rb +15 -0
  162. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/Code-of-Conduct.md +73 -0
  163. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/Contributing.md +141 -0
  164. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/History.md +223 -0
  165. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/Licence.md +25 -0
  166. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/Manifest.txt +31 -0
  167. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/README.rdoc +200 -0
  168. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/Rakefile +284 -0
  169. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/lib/mime/type/columnar.rb +57 -0
  170. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/lib/mime/type.rb +587 -0
  171. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/lib/mime/types/_columnar.rb +136 -0
  172. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/lib/mime/types/cache.rb +58 -0
  173. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/lib/mime/types/columnar.rb +3 -0
  174. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/lib/mime/types/container.rb +96 -0
  175. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/lib/mime/types/deprecations.rb +32 -0
  176. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/lib/mime/types/full.rb +19 -0
  177. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/lib/mime/types/loader.rb +146 -0
  178. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/lib/mime/types/logger.rb +39 -0
  179. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/lib/mime/types/registry.rb +90 -0
  180. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/lib/mime/types.rb +231 -0
  181. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/lib/mime-types.rb +3 -0
  182. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/test/bad-fixtures/malformed +9 -0
  183. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/test/fixture/json.json +1 -0
  184. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/test/fixture/old-data +9 -0
  185. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/test/fixture/yaml.yaml +55 -0
  186. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/test/minitest_helper.rb +13 -0
  187. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/test/test_mime_type.rb +610 -0
  188. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/test/test_mime_types.rb +169 -0
  189. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/test/test_mime_types_cache.rb +118 -0
  190. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/test/test_mime_types_class.rb +159 -0
  191. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/test/test_mime_types_lazy.rb +49 -0
  192. data/vendor/bundle/ruby/2.6.0/gems/mime-types-3.3/test/test_mime_types_loader.rb +32 -0
  193. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/Code-of-Conduct.md +75 -0
  194. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/Contributing.md +161 -0
  195. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/History.md +396 -0
  196. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/Licence.md +25 -0
  197. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/Manifest.txt +31 -0
  198. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/README.md +63 -0
  199. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/Rakefile +94 -0
  200. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/data/mime-types.json +1 -0
  201. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/data/mime.content_type.column +2212 -0
  202. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/data/mime.docs.column +2212 -0
  203. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/data/mime.encoding.column +2212 -0
  204. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/data/mime.flags.column +2212 -0
  205. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/data/mime.friendly.column +2212 -0
  206. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/data/mime.pext.column +2212 -0
  207. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/data/mime.use_instead.column +2212 -0
  208. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/data/mime.xrefs.column +2212 -0
  209. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/lib/mime/types/data.rb +21 -0
  210. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/lib/mime-types-data.rb +3 -0
  211. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/types/application.yaml +16342 -0
  212. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/types/audio.yaml +1644 -0
  213. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/types/chemical.yaml +71 -0
  214. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/types/conference.yaml +9 -0
  215. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/types/drawing.yaml +15 -0
  216. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/types/font.yaml +65 -0
  217. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/types/image.yaml +1069 -0
  218. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/types/message.yaml +200 -0
  219. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/types/model.yaml +302 -0
  220. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/types/multipart.yaml +179 -0
  221. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/types/text.yaml +1046 -0
  222. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/types/video.yaml +1070 -0
  223. data/vendor/bundle/ruby/2.6.0/gems/mime-types-data-3.2019.0904/types/world.yaml +8 -0
  224. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/README.md +313 -0
  225. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/Rakefile +18 -0
  226. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/TODO +15 -0
  227. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/central_directory.rb +208 -0
  228. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/compressor.rb +9 -0
  229. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/constants.rb +63 -0
  230. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/crypto/encryption.rb +11 -0
  231. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/crypto/null_encryption.rb +43 -0
  232. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/crypto/traditional_encryption.rb +99 -0
  233. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/decompressor.rb +13 -0
  234. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/deflater.rb +34 -0
  235. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/dos_time.rb +48 -0
  236. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/entry.rb +688 -0
  237. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/entry_set.rb +86 -0
  238. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/errors.rb +17 -0
  239. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/extra_field/generic.rb +43 -0
  240. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/extra_field/ntfs.rb +90 -0
  241. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/extra_field/old_unix.rb +44 -0
  242. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/extra_field/universal_time.rb +47 -0
  243. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/extra_field/unix.rb +37 -0
  244. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/extra_field/zip64.rb +68 -0
  245. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/extra_field/zip64_placeholder.rb +15 -0
  246. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/extra_field.rb +101 -0
  247. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/file.rb +436 -0
  248. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/filesystem.rb +627 -0
  249. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/inflater.rb +66 -0
  250. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/input_stream.rb +173 -0
  251. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/ioextras/abstract_input_stream.rb +111 -0
  252. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/ioextras/abstract_output_stream.rb +43 -0
  253. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/ioextras.rb +36 -0
  254. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/null_compressor.rb +15 -0
  255. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/null_decompressor.rb +27 -0
  256. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/null_input_stream.rb +10 -0
  257. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/output_stream.rb +189 -0
  258. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/pass_thru_compressor.rb +23 -0
  259. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/pass_thru_decompressor.rb +40 -0
  260. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/streamable_directory.rb +15 -0
  261. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/streamable_stream.rb +56 -0
  262. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip/version.rb +3 -0
  263. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/lib/zip.rb +69 -0
  264. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/samples/example.rb +81 -0
  265. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/samples/example_filesystem.rb +31 -0
  266. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/samples/example_recursive.rb +54 -0
  267. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/samples/gtk_ruby_zip.rb +84 -0
  268. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/samples/qtzip.rb +92 -0
  269. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/samples/write_simple.rb +12 -0
  270. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/samples/zipfind.rb +66 -0
  271. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/basic_zip_file_test.rb +60 -0
  272. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/case_sensitivity_test.rb +69 -0
  273. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/central_directory_entry_test.rb +69 -0
  274. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/central_directory_test.rb +100 -0
  275. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/crypto/null_encryption_test.rb +57 -0
  276. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/crypto/traditional_encryption_test.rb +80 -0
  277. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/WarnInvalidDate.zip +0 -0
  278. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/file1.txt +46 -0
  279. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/file1.txt.deflatedData +0 -0
  280. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/file2.txt +1504 -0
  281. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/globTest/foo/bar/baz/foo.txt +0 -0
  282. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/globTest/foo.txt +0 -0
  283. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/globTest/food.txt +0 -0
  284. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/globTest.zip +0 -0
  285. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/gpbit3stored.zip +0 -0
  286. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/mimetype +1 -0
  287. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/notzippedruby.rb +7 -0
  288. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/ntfs.zip +0 -0
  289. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/oddExtraField.zip +0 -0
  290. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/Makefile +10 -0
  291. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/jwilk/README.md +5 -0
  292. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/jwilk/absolute1.zip +0 -0
  293. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/jwilk/absolute2.zip +0 -0
  294. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/jwilk/dirsymlink.zip +0 -0
  295. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/jwilk/dirsymlink2a.zip +0 -0
  296. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/jwilk/dirsymlink2b.zip +0 -0
  297. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/jwilk/relative0.zip +0 -0
  298. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/jwilk/relative2.zip +0 -0
  299. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/jwilk/symlink.zip +0 -0
  300. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/relative1.zip +0 -0
  301. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/tilde.zip +0 -0
  302. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/tuzovakaoff/README.md +3 -0
  303. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/tuzovakaoff/absolutepath.zip +0 -0
  304. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/path_traversal/tuzovakaoff/symlink.zip +0 -0
  305. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/rubycode.zip +0 -0
  306. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/rubycode2.zip +0 -0
  307. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/test.xls +0 -0
  308. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/testDirectory.bin +0 -0
  309. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/zip64-sample.zip +0 -0
  310. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/zipWithDirs.zip +0 -0
  311. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/data/zipWithEncryption.zip +0 -0
  312. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/deflater_test.rb +65 -0
  313. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/encryption_test.rb +42 -0
  314. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/entry_set_test.rb +163 -0
  315. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/entry_test.rb +154 -0
  316. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/errors_test.rb +35 -0
  317. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/extra_field_test.rb +76 -0
  318. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/file_extract_directory_test.rb +54 -0
  319. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/file_extract_test.rb +83 -0
  320. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/file_permissions_test.rb +65 -0
  321. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/file_split_test.rb +57 -0
  322. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/file_test.rb +646 -0
  323. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/filesystem/dir_iterator_test.rb +58 -0
  324. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/filesystem/directory_test.rb +139 -0
  325. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/filesystem/file_mutating_test.rb +87 -0
  326. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/filesystem/file_nonmutating_test.rb +508 -0
  327. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/filesystem/file_stat_test.rb +64 -0
  328. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/gentestfiles.rb +126 -0
  329. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/inflater_test.rb +14 -0
  330. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/input_stream_test.rb +182 -0
  331. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/ioextras/abstract_input_stream_test.rb +102 -0
  332. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/ioextras/abstract_output_stream_test.rb +106 -0
  333. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/ioextras/fake_io_test.rb +18 -0
  334. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/local_entry_test.rb +154 -0
  335. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/output_stream_test.rb +128 -0
  336. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/pass_thru_compressor_test.rb +30 -0
  337. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/pass_thru_decompressor_test.rb +14 -0
  338. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/path_traversal_test.rb +141 -0
  339. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/samples/example_recursive_test.rb +37 -0
  340. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/settings_test.rb +95 -0
  341. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/test_helper.rb +234 -0
  342. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/unicode_file_names_and_comments_test.rb +62 -0
  343. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/zip64_full_test.rb +51 -0
  344. data/vendor/bundle/ruby/2.6.0/gems/rubyzip-1.2.4/test/zip64_support_test.rb +14 -0
  345. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/.document +5 -0
  346. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/.gitignore +19 -0
  347. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/.travis.yml +24 -0
  348. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/CHANGELOG.md +42 -0
  349. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/Gemfile +4 -0
  350. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/LICENSE.txt +22 -0
  351. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/README.md +57 -0
  352. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/Rakefile +31 -0
  353. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/ext/unf_ext/.sitearchdir.time +0 -0
  354. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/ext/unf_ext/Makefile +265 -0
  355. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/ext/unf_ext/extconf.rb +50 -0
  356. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/ext/unf_ext/unf/normalizer.hh +139 -0
  357. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/ext/unf_ext/unf/table.hh +13617 -0
  358. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/ext/unf_ext/unf/trie/char_stream.hh +150 -0
  359. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/ext/unf_ext/unf/trie/node.hh +25 -0
  360. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/ext/unf_ext/unf/trie/searcher.hh +194 -0
  361. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/ext/unf_ext/unf/util.hh +24 -0
  362. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/ext/unf_ext/unf.cc +75 -0
  363. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/ext/unf_ext/unf.o +0 -0
  364. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/ext/unf_ext/unf_ext.so +0 -0
  365. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/lib/unf_ext/version.rb +5 -0
  366. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/lib/unf_ext.rb +5 -0
  367. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/lib/unf_ext.so +0 -0
  368. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/test/helper.rb +18 -0
  369. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/test/normalization-test.txt +112332 -0
  370. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/test/test_unf_ext.rb +41 -0
  371. data/vendor/bundle/ruby/2.6.0/gems/unf_ext-0.0.7.6/unf_ext.gemspec +42 -0
  372. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/LICENSE +202 -0
  373. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/README.md +276 -0
  374. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/bin/rwinrm +90 -0
  375. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/connection.rb +84 -0
  376. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/connection_opts.rb +90 -0
  377. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/exceptions.rb +88 -0
  378. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/http/response_handler.rb +127 -0
  379. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/http/transport.rb +462 -0
  380. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/http/transport_factory.rb +64 -0
  381. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/output.rb +58 -0
  382. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/create_pipeline.xml.erb +167 -0
  383. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/fragment.rb +68 -0
  384. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/init_runspace_pool.xml.erb +224 -0
  385. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/message.rb +128 -0
  386. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/message_data/base.rb +47 -0
  387. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/message_data/error_record.rb +66 -0
  388. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/message_data/pipeline_host_call.rb +30 -0
  389. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/message_data/pipeline_output.rb +48 -0
  390. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/message_data/pipeline_state.rb +38 -0
  391. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/message_data/runspacepool_host_call.rb +30 -0
  392. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/message_data/runspacepool_state.rb +37 -0
  393. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/message_data/session_capability.rb +34 -0
  394. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/message_data.rb +40 -0
  395. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/message_defragmenter.rb +62 -0
  396. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/message_factory.rb +74 -0
  397. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/message_fragmenter.rb +58 -0
  398. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/powershell_output_decoder.rb +142 -0
  399. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/receive_response_reader.rb +95 -0
  400. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/session_capability.xml.erb +7 -0
  401. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/psrp/uuid.rb +39 -0
  402. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/shells/base.rb +187 -0
  403. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/shells/cmd.rb +63 -0
  404. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/shells/power_shell.rb +206 -0
  405. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/shells/retryable.rb +44 -0
  406. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/shells/shell_factory.rb +56 -0
  407. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/version.rb +5 -0
  408. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/base.rb +57 -0
  409. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/cleanup_command.rb +60 -0
  410. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/close_shell.rb +49 -0
  411. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/command.rb +100 -0
  412. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/command_output.rb +75 -0
  413. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/command_output_decoder.rb +54 -0
  414. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/configuration.rb +44 -0
  415. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/create_pipeline.rb +64 -0
  416. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/create_shell.rb +115 -0
  417. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/header.rb +213 -0
  418. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/init_runspace_pool.rb +96 -0
  419. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/iso8601_duration.rb +58 -0
  420. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/keep_alive.rb +66 -0
  421. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/receive_response_reader.rb +128 -0
  422. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/send_data.rb +66 -0
  423. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/soap.rb +49 -0
  424. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/wql_pull.rb +54 -0
  425. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/wql_query.rb +98 -0
  426. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm/wsmv/write_stdin.rb +86 -0
  427. data/vendor/bundle/ruby/2.6.0/gems/winrm-2.3.2/lib/winrm.rb +37 -0
  428. data/vendor/bundle/ruby/2.6.0/specifications/bcrypt_pbkdf-1.0.1.gemspec +49 -0
  429. data/vendor/bundle/ruby/2.6.0/specifications/domain_name-0.5.20190701.gemspec +46 -0
  430. data/vendor/bundle/ruby/2.6.0/specifications/gssapi-1.3.0.gemspec +36 -0
  431. data/vendor/bundle/ruby/2.6.0/specifications/mime-types-3.3.gemspec +84 -0
  432. data/vendor/bundle/ruby/2.6.0/specifications/mime-types-data-3.2019.0904.gemspec +60 -0
  433. data/vendor/bundle/ruby/2.6.0/specifications/rubyzip-1.2.4.gemspec +44 -0
  434. data/vendor/bundle/ruby/2.6.0/specifications/unf_ext-0.0.7.6.gemspec +51 -0
  435. data/vendor/bundle/ruby/2.6.0/specifications/winrm-2.3.2.gemspec +73 -0
  436. data/version.txt +1 -1
  437. metadata +365 -6
  438. data/templates/nfs/exports.erb +0 -5
@@ -0,0 +1,688 @@
1
+ require 'pathname'
2
+ module Zip
3
+ class Entry
4
+ STORED = 0
5
+ DEFLATED = 8
6
+ # Language encoding flag (EFS) bit
7
+ EFS = 0b100000000000
8
+
9
+ attr_accessor :comment, :compressed_size, :crc, :extra, :compression_method,
10
+ :name, :size, :local_header_offset, :zipfile, :fstype, :external_file_attributes,
11
+ :internal_file_attributes,
12
+ :gp_flags, :header_signature, :follow_symlinks,
13
+ :restore_times, :restore_permissions, :restore_ownership,
14
+ :unix_uid, :unix_gid, :unix_perms,
15
+ :dirty
16
+ attr_reader :ftype, :filepath # :nodoc:
17
+
18
+ def set_default_vars_values
19
+ @local_header_offset = 0
20
+ @local_header_size = nil # not known until local entry is created or read
21
+ @internal_file_attributes = 1
22
+ @external_file_attributes = 0
23
+ @header_signature = ::Zip::CENTRAL_DIRECTORY_ENTRY_SIGNATURE
24
+
25
+ @version_needed_to_extract = VERSION_NEEDED_TO_EXTRACT
26
+ @version = VERSION_MADE_BY
27
+
28
+ @ftype = nil # unspecified or unknown
29
+ @filepath = nil
30
+ @gp_flags = 0
31
+ if ::Zip.unicode_names
32
+ @gp_flags |= EFS
33
+ @version = 63
34
+ end
35
+ @follow_symlinks = false
36
+
37
+ @restore_times = true
38
+ @restore_permissions = false
39
+ @restore_ownership = false
40
+ # BUG: need an extra field to support uid/gid's
41
+ @unix_uid = nil
42
+ @unix_gid = nil
43
+ @unix_perms = nil
44
+ # @posix_acl = nil
45
+ # @ntfs_acl = nil
46
+ @dirty = false
47
+ end
48
+
49
+ def check_name(name)
50
+ return unless name.start_with?('/')
51
+ raise ::Zip::EntryNameError, "Illegal ZipEntry name '#{name}', name must not start with /"
52
+ end
53
+
54
+ def initialize(*args)
55
+ name = args[1] || ''
56
+ check_name(name)
57
+
58
+ set_default_vars_values
59
+ @fstype = ::Zip::RUNNING_ON_WINDOWS ? ::Zip::FSTYPE_FAT : ::Zip::FSTYPE_UNIX
60
+
61
+ @zipfile = args[0] || ''
62
+ @name = name
63
+ @comment = args[2] || ''
64
+ @extra = args[3] || ''
65
+ @compressed_size = args[4] || 0
66
+ @crc = args[5] || 0
67
+ @compression_method = args[6] || ::Zip::Entry::DEFLATED
68
+ @size = args[7] || 0
69
+ @time = args[8] || ::Zip::DOSTime.now
70
+
71
+ @ftype = name_is_directory? ? :directory : :file
72
+ @extra = ::Zip::ExtraField.new(@extra.to_s) unless @extra.is_a?(::Zip::ExtraField)
73
+ end
74
+
75
+ def time
76
+ if @extra['UniversalTime']
77
+ @extra['UniversalTime'].mtime
78
+ elsif @extra['NTFS']
79
+ @extra['NTFS'].mtime
80
+ else
81
+ # Standard time field in central directory has local time
82
+ # under archive creator. Then, we can't get timezone.
83
+ @time
84
+ end
85
+ end
86
+
87
+ alias mtime time
88
+
89
+ def time=(value)
90
+ unless @extra.member?('UniversalTime') || @extra.member?('NTFS')
91
+ @extra.create('UniversalTime')
92
+ end
93
+ (@extra['UniversalTime'] || @extra['NTFS']).mtime = value
94
+ @time = value
95
+ end
96
+
97
+ def file_type_is?(type)
98
+ raise InternalError, "current filetype is unknown: #{inspect}" unless @ftype
99
+ @ftype == type
100
+ end
101
+
102
+ # Dynamic checkers
103
+ %w[directory file symlink].each do |k|
104
+ define_method "#{k}?" do
105
+ file_type_is?(k.to_sym)
106
+ end
107
+ end
108
+
109
+ def name_is_directory? #:nodoc:all
110
+ @name.end_with?('/')
111
+ end
112
+
113
+ # Is the name a relative path, free of `..` patterns that could lead to
114
+ # path traversal attacks? This does NOT handle symlinks; if the path
115
+ # contains symlinks, this check is NOT enough to guarantee safety.
116
+ def name_safe?
117
+ cleanpath = Pathname.new(@name).cleanpath
118
+ return false unless cleanpath.relative?
119
+ root = ::File::SEPARATOR
120
+ naive_expanded_path = ::File.join(root, cleanpath.to_s)
121
+ ::File.absolute_path(cleanpath.to_s, root) == naive_expanded_path
122
+ end
123
+
124
+ def local_entry_offset #:nodoc:all
125
+ local_header_offset + @local_header_size
126
+ end
127
+
128
+ def name_size
129
+ @name ? @name.bytesize : 0
130
+ end
131
+
132
+ def extra_size
133
+ @extra ? @extra.local_size : 0
134
+ end
135
+
136
+ def comment_size
137
+ @comment ? @comment.bytesize : 0
138
+ end
139
+
140
+ def calculate_local_header_size #:nodoc:all
141
+ LOCAL_ENTRY_STATIC_HEADER_LENGTH + name_size + extra_size
142
+ end
143
+
144
+ # check before rewriting an entry (after file sizes are known)
145
+ # that we didn't change the header size (and thus clobber file data or something)
146
+ def verify_local_header_size!
147
+ return if @local_header_size.nil?
148
+ new_size = calculate_local_header_size
149
+ raise Error, "local header size changed (#{@local_header_size} -> #{new_size})" if @local_header_size != new_size
150
+ end
151
+
152
+ def cdir_header_size #:nodoc:all
153
+ CDIR_ENTRY_STATIC_HEADER_LENGTH + name_size +
154
+ (@extra ? @extra.c_dir_size : 0) + comment_size
155
+ end
156
+
157
+ def next_header_offset #:nodoc:all
158
+ local_entry_offset + compressed_size + data_descriptor_size
159
+ end
160
+
161
+ # Extracts entry to file dest_path (defaults to @name).
162
+ # NB: The caller is responsible for making sure dest_path is safe, if it
163
+ # is passed.
164
+ def extract(dest_path = nil, &block)
165
+ if dest_path.nil? && !name_safe?
166
+ puts "WARNING: skipped #{@name} as unsafe"
167
+ return self
168
+ end
169
+
170
+ dest_path ||= @name
171
+ block ||= proc { ::Zip.on_exists_proc }
172
+
173
+ if directory? || file? || symlink?
174
+ __send__("create_#{@ftype}", dest_path, &block)
175
+ else
176
+ raise "unknown file type #{inspect}"
177
+ end
178
+
179
+ self
180
+ end
181
+
182
+ def to_s
183
+ @name
184
+ end
185
+
186
+ class << self
187
+ def read_zip_short(io) # :nodoc:
188
+ io.read(2).unpack('v')[0]
189
+ end
190
+
191
+ def read_zip_long(io) # :nodoc:
192
+ io.read(4).unpack('V')[0]
193
+ end
194
+
195
+ def read_zip_64_long(io) # :nodoc:
196
+ io.read(8).unpack('Q<')[0]
197
+ end
198
+
199
+ def read_c_dir_entry(io) #:nodoc:all
200
+ path = if io.respond_to?(:path)
201
+ io.path
202
+ else
203
+ io
204
+ end
205
+ entry = new(path)
206
+ entry.read_c_dir_entry(io)
207
+ entry
208
+ rescue Error
209
+ nil
210
+ end
211
+
212
+ def read_local_entry(io)
213
+ entry = new(io)
214
+ entry.read_local_entry(io)
215
+ entry
216
+ rescue Error
217
+ nil
218
+ end
219
+ end
220
+
221
+ public
222
+
223
+ def unpack_local_entry(buf)
224
+ @header_signature,
225
+ @version,
226
+ @fstype,
227
+ @gp_flags,
228
+ @compression_method,
229
+ @last_mod_time,
230
+ @last_mod_date,
231
+ @crc,
232
+ @compressed_size,
233
+ @size,
234
+ @name_length,
235
+ @extra_length = buf.unpack('VCCvvvvVVVvv')
236
+ end
237
+
238
+ def read_local_entry(io) #:nodoc:all
239
+ @local_header_offset = io.tell
240
+
241
+ static_sized_fields_buf = io.read(::Zip::LOCAL_ENTRY_STATIC_HEADER_LENGTH) || ''
242
+
243
+ unless static_sized_fields_buf.bytesize == ::Zip::LOCAL_ENTRY_STATIC_HEADER_LENGTH
244
+ raise Error, 'Premature end of file. Not enough data for zip entry local header'
245
+ end
246
+
247
+ unpack_local_entry(static_sized_fields_buf)
248
+
249
+ unless @header_signature == ::Zip::LOCAL_ENTRY_SIGNATURE
250
+ raise ::Zip::Error, "Zip local header magic not found at location '#{local_header_offset}'"
251
+ end
252
+ set_time(@last_mod_date, @last_mod_time)
253
+
254
+ @name = io.read(@name_length)
255
+ extra = io.read(@extra_length)
256
+
257
+ @name.tr!('\\', '/')
258
+ if ::Zip.force_entry_names_encoding
259
+ @name.force_encoding(::Zip.force_entry_names_encoding)
260
+ end
261
+
262
+ if extra && extra.bytesize != @extra_length
263
+ raise ::Zip::Error, 'Truncated local zip entry header'
264
+ else
265
+ if @extra.is_a?(::Zip::ExtraField)
266
+ @extra.merge(extra) if extra
267
+ else
268
+ @extra = ::Zip::ExtraField.new(extra)
269
+ end
270
+ end
271
+ parse_zip64_extra(true)
272
+ @local_header_size = calculate_local_header_size
273
+ end
274
+
275
+ def pack_local_entry
276
+ zip64 = @extra['Zip64']
277
+ [::Zip::LOCAL_ENTRY_SIGNATURE,
278
+ @version_needed_to_extract, # version needed to extract
279
+ @gp_flags, # @gp_flags
280
+ @compression_method,
281
+ @time.to_binary_dos_time, # @last_mod_time
282
+ @time.to_binary_dos_date, # @last_mod_date
283
+ @crc,
284
+ zip64 && zip64.compressed_size ? 0xFFFFFFFF : @compressed_size,
285
+ zip64 && zip64.original_size ? 0xFFFFFFFF : @size,
286
+ name_size,
287
+ @extra ? @extra.local_size : 0].pack('VvvvvvVVVvv')
288
+ end
289
+
290
+ def write_local_entry(io, rewrite = false) #:nodoc:all
291
+ prep_zip64_extra(true)
292
+ verify_local_header_size! if rewrite
293
+ @local_header_offset = io.tell
294
+
295
+ io << pack_local_entry
296
+
297
+ io << @name
298
+ io << @extra.to_local_bin if @extra
299
+ @local_header_size = io.tell - @local_header_offset
300
+ end
301
+
302
+ def unpack_c_dir_entry(buf)
303
+ @header_signature,
304
+ @version, # version of encoding software
305
+ @fstype, # filesystem type
306
+ @version_needed_to_extract,
307
+ @gp_flags,
308
+ @compression_method,
309
+ @last_mod_time,
310
+ @last_mod_date,
311
+ @crc,
312
+ @compressed_size,
313
+ @size,
314
+ @name_length,
315
+ @extra_length,
316
+ @comment_length,
317
+ _, # diskNumberStart
318
+ @internal_file_attributes,
319
+ @external_file_attributes,
320
+ @local_header_offset,
321
+ @name,
322
+ @extra,
323
+ @comment = buf.unpack('VCCvvvvvVVVvvvvvVV')
324
+ end
325
+
326
+ def set_ftype_from_c_dir_entry
327
+ @ftype = case @fstype
328
+ when ::Zip::FSTYPE_UNIX
329
+ @unix_perms = (@external_file_attributes >> 16) & 0o7777
330
+ case (@external_file_attributes >> 28)
331
+ when ::Zip::FILE_TYPE_DIR
332
+ :directory
333
+ when ::Zip::FILE_TYPE_FILE
334
+ :file
335
+ when ::Zip::FILE_TYPE_SYMLINK
336
+ :symlink
337
+ else
338
+ # best case guess for whether it is a file or not
339
+ # Otherwise this would be set to unknown and that entry would never be able to extracted
340
+ if name_is_directory?
341
+ :directory
342
+ else
343
+ :file
344
+ end
345
+ end
346
+ else
347
+ if name_is_directory?
348
+ :directory
349
+ else
350
+ :file
351
+ end
352
+ end
353
+ end
354
+
355
+ def check_c_dir_entry_static_header_length(buf)
356
+ return if buf.bytesize == ::Zip::CDIR_ENTRY_STATIC_HEADER_LENGTH
357
+ raise Error, 'Premature end of file. Not enough data for zip cdir entry header'
358
+ end
359
+
360
+ def check_c_dir_entry_signature
361
+ return if header_signature == ::Zip::CENTRAL_DIRECTORY_ENTRY_SIGNATURE
362
+ raise Error, "Zip local header magic not found at location '#{local_header_offset}'"
363
+ end
364
+
365
+ def check_c_dir_entry_comment_size
366
+ return if @comment && @comment.bytesize == @comment_length
367
+ raise ::Zip::Error, 'Truncated cdir zip entry header'
368
+ end
369
+
370
+ def read_c_dir_extra_field(io)
371
+ if @extra.is_a?(::Zip::ExtraField)
372
+ @extra.merge(io.read(@extra_length))
373
+ else
374
+ @extra = ::Zip::ExtraField.new(io.read(@extra_length))
375
+ end
376
+ end
377
+
378
+ def read_c_dir_entry(io) #:nodoc:all
379
+ static_sized_fields_buf = io.read(::Zip::CDIR_ENTRY_STATIC_HEADER_LENGTH)
380
+ check_c_dir_entry_static_header_length(static_sized_fields_buf)
381
+ unpack_c_dir_entry(static_sized_fields_buf)
382
+ check_c_dir_entry_signature
383
+ set_time(@last_mod_date, @last_mod_time)
384
+ @name = io.read(@name_length)
385
+ if ::Zip.force_entry_names_encoding
386
+ @name.force_encoding(::Zip.force_entry_names_encoding)
387
+ end
388
+ read_c_dir_extra_field(io)
389
+ @comment = io.read(@comment_length)
390
+ check_c_dir_entry_comment_size
391
+ set_ftype_from_c_dir_entry
392
+ parse_zip64_extra(false)
393
+ end
394
+
395
+ def file_stat(path) # :nodoc:
396
+ if @follow_symlinks
397
+ ::File.stat(path)
398
+ else
399
+ ::File.lstat(path)
400
+ end
401
+ end
402
+
403
+ def get_extra_attributes_from_path(path) # :nodoc:
404
+ return if Zip::RUNNING_ON_WINDOWS
405
+ stat = file_stat(path)
406
+ @unix_uid = stat.uid
407
+ @unix_gid = stat.gid
408
+ @unix_perms = stat.mode & 0o7777
409
+ end
410
+
411
+ def set_unix_permissions_on_path(dest_path)
412
+ # BUG: does not update timestamps into account
413
+ # ignore setuid/setgid bits by default. honor if @restore_ownership
414
+ unix_perms_mask = 0o1777
415
+ unix_perms_mask = 0o7777 if @restore_ownership
416
+ ::FileUtils.chmod(@unix_perms & unix_perms_mask, dest_path) if @restore_permissions && @unix_perms
417
+ ::FileUtils.chown(@unix_uid, @unix_gid, dest_path) if @restore_ownership && @unix_uid && @unix_gid && ::Process.egid == 0
418
+ # File::utimes()
419
+ end
420
+
421
+ def set_extra_attributes_on_path(dest_path) # :nodoc:
422
+ return unless file? || directory?
423
+
424
+ case @fstype
425
+ when ::Zip::FSTYPE_UNIX
426
+ set_unix_permissions_on_path(dest_path)
427
+ end
428
+ end
429
+
430
+ def pack_c_dir_entry
431
+ zip64 = @extra['Zip64']
432
+ [
433
+ @header_signature,
434
+ @version, # version of encoding software
435
+ @fstype, # filesystem type
436
+ @version_needed_to_extract, # @versionNeededToExtract
437
+ @gp_flags, # @gp_flags
438
+ @compression_method,
439
+ @time.to_binary_dos_time, # @last_mod_time
440
+ @time.to_binary_dos_date, # @last_mod_date
441
+ @crc,
442
+ zip64 && zip64.compressed_size ? 0xFFFFFFFF : @compressed_size,
443
+ zip64 && zip64.original_size ? 0xFFFFFFFF : @size,
444
+ name_size,
445
+ @extra ? @extra.c_dir_size : 0,
446
+ comment_size,
447
+ zip64 && zip64.disk_start_number ? 0xFFFF : 0, # disk number start
448
+ @internal_file_attributes, # file type (binary=0, text=1)
449
+ @external_file_attributes, # native filesystem attributes
450
+ zip64 && zip64.relative_header_offset ? 0xFFFFFFFF : @local_header_offset,
451
+ @name,
452
+ @extra,
453
+ @comment
454
+ ].pack('VCCvvvvvVVVvvvvvVV')
455
+ end
456
+
457
+ def write_c_dir_entry(io) #:nodoc:all
458
+ prep_zip64_extra(false)
459
+ case @fstype
460
+ when ::Zip::FSTYPE_UNIX
461
+ ft = case @ftype
462
+ when :file
463
+ @unix_perms ||= 0o644
464
+ ::Zip::FILE_TYPE_FILE
465
+ when :directory
466
+ @unix_perms ||= 0o755
467
+ ::Zip::FILE_TYPE_DIR
468
+ when :symlink
469
+ @unix_perms ||= 0o755
470
+ ::Zip::FILE_TYPE_SYMLINK
471
+ end
472
+
473
+ unless ft.nil?
474
+ @external_file_attributes = (ft << 12 | (@unix_perms & 0o7777)) << 16
475
+ end
476
+ end
477
+
478
+ io << pack_c_dir_entry
479
+
480
+ io << @name
481
+ io << (@extra ? @extra.to_c_dir_bin : '')
482
+ io << @comment
483
+ end
484
+
485
+ def ==(other)
486
+ return false unless other.class == self.class
487
+ # Compares contents of local entry and exposed fields
488
+ keys_equal = %w[compression_method crc compressed_size size name extra filepath].all? do |k|
489
+ other.__send__(k.to_sym) == __send__(k.to_sym)
490
+ end
491
+ keys_equal && time.dos_equals(other.time)
492
+ end
493
+
494
+ def <=>(other)
495
+ to_s <=> other.to_s
496
+ end
497
+
498
+ # Returns an IO like object for the given ZipEntry.
499
+ # Warning: may behave weird with symlinks.
500
+ def get_input_stream(&block)
501
+ if @ftype == :directory
502
+ yield ::Zip::NullInputStream if block_given?
503
+ ::Zip::NullInputStream
504
+ elsif @filepath
505
+ case @ftype
506
+ when :file
507
+ ::File.open(@filepath, 'rb', &block)
508
+ when :symlink
509
+ linkpath = ::File.readlink(@filepath)
510
+ stringio = ::StringIO.new(linkpath)
511
+ yield(stringio) if block_given?
512
+ stringio
513
+ else
514
+ raise "unknown @file_type #{@ftype}"
515
+ end
516
+ else
517
+ zis = ::Zip::InputStream.new(@zipfile, local_header_offset)
518
+ zis.instance_variable_set(:@complete_entry, self)
519
+ zis.get_next_entry
520
+ if block_given?
521
+ begin
522
+ yield(zis)
523
+ ensure
524
+ zis.close
525
+ end
526
+ else
527
+ zis
528
+ end
529
+ end
530
+ end
531
+
532
+ def gather_fileinfo_from_srcpath(src_path) # :nodoc:
533
+ stat = file_stat(src_path)
534
+ @ftype = case stat.ftype
535
+ when 'file'
536
+ if name_is_directory?
537
+ raise ArgumentError,
538
+ "entry name '#{newEntry}' indicates directory entry, but " \
539
+ "'#{src_path}' is not a directory"
540
+ end
541
+ :file
542
+ when 'directory'
543
+ @name += '/' unless name_is_directory?
544
+ :directory
545
+ when 'link'
546
+ if name_is_directory?
547
+ raise ArgumentError,
548
+ "entry name '#{newEntry}' indicates directory entry, but " \
549
+ "'#{src_path}' is not a directory"
550
+ end
551
+ :symlink
552
+ else
553
+ raise "unknown file type: #{src_path.inspect} #{stat.inspect}"
554
+ end
555
+
556
+ @filepath = src_path
557
+ get_extra_attributes_from_path(@filepath)
558
+ end
559
+
560
+ def write_to_zip_output_stream(zip_output_stream) #:nodoc:all
561
+ if @ftype == :directory
562
+ zip_output_stream.put_next_entry(self, nil, nil, ::Zip::Entry::STORED)
563
+ elsif @filepath
564
+ zip_output_stream.put_next_entry(self, nil, nil, compression_method || ::Zip::Entry::DEFLATED)
565
+ get_input_stream { |is| ::Zip::IOExtras.copy_stream(zip_output_stream, is) }
566
+ else
567
+ zip_output_stream.copy_raw_entry(self)
568
+ end
569
+ end
570
+
571
+ def parent_as_string
572
+ entry_name = name.chomp('/')
573
+ slash_index = entry_name.rindex('/')
574
+ slash_index ? entry_name.slice(0, slash_index + 1) : nil
575
+ end
576
+
577
+ def get_raw_input_stream(&block)
578
+ if @zipfile.respond_to?(:seek) && @zipfile.respond_to?(:read)
579
+ yield @zipfile
580
+ else
581
+ ::File.open(@zipfile, 'rb', &block)
582
+ end
583
+ end
584
+
585
+ def clean_up
586
+ # By default, do nothing
587
+ end
588
+
589
+ private
590
+
591
+ def set_time(binary_dos_date, binary_dos_time)
592
+ @time = ::Zip::DOSTime.parse_binary_dos_format(binary_dos_date, binary_dos_time)
593
+ rescue ArgumentError
594
+ warn 'Invalid date/time in zip entry' if ::Zip.warn_invalid_date
595
+ end
596
+
597
+ def create_file(dest_path, _continue_on_exists_proc = proc { Zip.continue_on_exists_proc })
598
+ if ::File.exist?(dest_path) && !yield(self, dest_path)
599
+ raise ::Zip::DestinationFileExistsError,
600
+ "Destination '#{dest_path}' already exists"
601
+ end
602
+ ::File.open(dest_path, 'wb') do |os|
603
+ get_input_stream do |is|
604
+ set_extra_attributes_on_path(dest_path)
605
+
606
+ buf = ''.dup
607
+ while (buf = is.sysread(::Zip::Decompressor::CHUNK_SIZE, buf))
608
+ os << buf
609
+ end
610
+ end
611
+ end
612
+ end
613
+
614
+ def create_directory(dest_path)
615
+ return if ::File.directory?(dest_path)
616
+ if ::File.exist?(dest_path)
617
+ if block_given? && yield(self, dest_path)
618
+ ::FileUtils.rm_f dest_path
619
+ else
620
+ raise ::Zip::DestinationFileExistsError,
621
+ "Cannot create directory '#{dest_path}'. " \
622
+ 'A file already exists with that name'
623
+ end
624
+ end
625
+ ::FileUtils.mkdir_p(dest_path)
626
+ set_extra_attributes_on_path(dest_path)
627
+ end
628
+
629
+ # BUG: create_symlink() does not use &block
630
+ def create_symlink(dest_path)
631
+ # TODO: Symlinks pose security challenges. Symlink support temporarily
632
+ # removed in view of https://github.com/rubyzip/rubyzip/issues/369 .
633
+ puts "WARNING: skipped symlink #{dest_path}"
634
+ end
635
+
636
+ # apply missing data from the zip64 extra information field, if present
637
+ # (required when file sizes exceed 2**32, but can be used for all files)
638
+ def parse_zip64_extra(for_local_header) #:nodoc:all
639
+ return if @extra['Zip64'].nil?
640
+ if for_local_header
641
+ @size, @compressed_size = @extra['Zip64'].parse(@size, @compressed_size)
642
+ else
643
+ @size, @compressed_size, @local_header_offset = @extra['Zip64'].parse(@size, @compressed_size, @local_header_offset)
644
+ end
645
+ end
646
+
647
+ def data_descriptor_size
648
+ (@gp_flags & 0x0008) > 0 ? 16 : 0
649
+ end
650
+
651
+ # create a zip64 extra information field if we need one
652
+ def prep_zip64_extra(for_local_header) #:nodoc:all
653
+ return unless ::Zip.write_zip64_support
654
+ need_zip64 = @size >= 0xFFFFFFFF || @compressed_size >= 0xFFFFFFFF
655
+ need_zip64 ||= @local_header_offset >= 0xFFFFFFFF unless for_local_header
656
+ if need_zip64
657
+ @version_needed_to_extract = VERSION_NEEDED_TO_EXTRACT_ZIP64
658
+ @extra.delete('Zip64Placeholder')
659
+ zip64 = @extra.create('Zip64')
660
+ if for_local_header
661
+ # local header always includes size and compressed size
662
+ zip64.original_size = @size
663
+ zip64.compressed_size = @compressed_size
664
+ else
665
+ # central directory entry entries include whichever fields are necessary
666
+ zip64.original_size = @size if @size >= 0xFFFFFFFF
667
+ zip64.compressed_size = @compressed_size if @compressed_size >= 0xFFFFFFFF
668
+ zip64.relative_header_offset = @local_header_offset if @local_header_offset >= 0xFFFFFFFF
669
+ end
670
+ else
671
+ @extra.delete('Zip64')
672
+
673
+ # if this is a local header entry, create a placeholder
674
+ # so we have room to write a zip64 extra field afterward
675
+ # (we won't know if it's needed until the file data is written)
676
+ if for_local_header
677
+ @extra.create('Zip64Placeholder')
678
+ else
679
+ @extra.delete('Zip64Placeholder')
680
+ end
681
+ end
682
+ end
683
+ end
684
+ end
685
+
686
+ # Copyright (C) 2002, 2003 Thomas Sondergaard
687
+ # rubyzip is free software; you can redistribute it and/or
688
+ # modify it under the terms of the ruby license.