veewee 0.2.3 → 0.3.0.alpha1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/Gemfile +1 -2
- data/Gemfile.lock +53 -30
- data/License +21 -0
- data/README-LIB.md +2 -0
- data/README.md +35 -62
- data/Rakefile +54 -88
- data/bin/veewee +13 -70
- data/bin/veewee-kvm-old +34 -0
- data/bin/veewee-vagrant +55 -0
- data/bin/veewee-vmfusion +34 -0
- data/lib/fission.rb +41 -0
- data/lib/fission/cli.rb +76 -0
- data/lib/fission/command.rb +15 -0
- data/lib/fission/command/clone.rb +68 -0
- data/lib/fission/command/delete.rb +71 -0
- data/lib/fission/command/snapshot_create.rb +52 -0
- data/lib/fission/command/snapshot_list.rb +45 -0
- data/lib/fission/command/snapshot_revert.rb +54 -0
- data/lib/fission/command/start.rb +69 -0
- data/lib/fission/command/status.rb +31 -0
- data/lib/fission/command/stop.rb +49 -0
- data/lib/fission/command/suspend.rb +67 -0
- data/lib/fission/config.rb +29 -0
- data/lib/fission/core_ext/class.rb +5 -0
- data/lib/fission/core_ext/file.rb +7 -0
- data/lib/fission/core_ext/object.rb +112 -0
- data/lib/fission/error.rb +9 -0
- data/lib/fission/fusion.rb +17 -0
- data/lib/fission/leasesfile.rb +74 -0
- data/lib/fission/metadata.rb +39 -0
- data/lib/fission/response.rb +16 -0
- data/lib/fission/ui.rb +22 -0
- data/lib/fission/version.rb +3 -0
- data/lib/fission/vm.rb +361 -0
- data/lib/net/vnc/vnc.rb +341 -0
- data/lib/vagrant_init.rb +5 -2
- data/lib/veewee.rb +20 -3
- data/lib/veewee/builder/core/box.rb +32 -0
- data/lib/veewee/builder/core/box/vnc.rb +122 -0
- data/lib/veewee/builder/core/builder.rb +90 -0
- data/lib/veewee/builder/core/builder/build.rb +250 -0
- data/lib/veewee/builder/core/builder/iso.rb +120 -0
- data/lib/veewee/builder/core/builder/transaction.rb +25 -0
- data/lib/veewee/builder/core/builder/tunnel.rb +46 -0
- data/lib/veewee/builder/kvm/box.rb +130 -0
- data/lib/veewee/builder/kvm/builder.rb +38 -0
- data/lib/veewee/builder/virtualbox/box.rb +121 -0
- data/lib/veewee/builder/virtualbox/builder.rb +48 -0
- data/lib/veewee/builder/virtualbox/helper/_snapshots.rb +105 -0
- data/lib/veewee/builder/virtualbox/helper/_transaction.rb +135 -0
- data/lib/veewee/builder/virtualbox/helper/console_type.rb +62 -0
- data/lib/veewee/builder/virtualbox/helper/create.rb +210 -0
- data/lib/veewee/builder/virtualbox/helper/destroy.rb +79 -0
- data/lib/veewee/builder/virtualbox/helper/export_vagrant.rb +87 -0
- data/lib/veewee/builder/virtualbox/helper/validate_vagrant.rb +35 -0
- data/lib/veewee/builder/vmfusion/box.rb +137 -0
- data/lib/veewee/builder/vmfusion/builder.rb +78 -0
- data/lib/veewee/builder/vmfusion/helper/create.rb +68 -0
- data/lib/veewee/builder/vmfusion/helper/export_ova.rb +26 -0
- data/lib/veewee/builder/vmfusion/helper/template.rb +39 -0
- data/lib/veewee/builder/vmfusion/helper/template.vmx.erb +81 -0
- data/lib/veewee/builder/vmfusion/helper/validate_vmfusion.rb +37 -0
- data/lib/veewee/builder/vmfusion/info/export_ovf.info +103 -0
- data/lib/veewee/cli.rb +55 -0
- data/lib/veewee/command.rb +10 -20
- data/lib/veewee/command/base.rb +106 -0
- data/lib/veewee/command/group_base.rb +107 -0
- data/lib/veewee/command/helpers.rb +13 -0
- data/lib/veewee/command/kvm.rb +85 -0
- data/lib/veewee/command/named_base.rb +14 -0
- data/lib/veewee/command/vagrant.rb +108 -0
- data/lib/veewee/command/version.rb +13 -0
- data/lib/veewee/command/virtualbox.rb +86 -0
- data/lib/veewee/command/vmfusion.rb +113 -0
- data/lib/veewee/config.rb +89 -3
- data/lib/veewee/config/builders.rb +36 -0
- data/lib/veewee/config/collection.rb +82 -0
- data/lib/veewee/config/component.rb +19 -0
- data/lib/veewee/config/definition.rb +44 -0
- data/lib/veewee/config/ostypes.yml +165 -0
- data/lib/veewee/config/veewee.rb +21 -0
- data/lib/veewee/definition.rb +130 -0
- data/lib/veewee/environment.rb +367 -0
- data/lib/veewee/error.rb +20 -0
- data/lib/veewee/templates/locales/en.yml +30 -0
- data/lib/veewee/ui.rb +83 -0
- data/lib/veewee/util/scancode.rb +112 -0
- data/lib/veewee/util/shell.rb +42 -0
- data/lib/veewee/util/ssh.rb +158 -0
- data/lib/veewee/util/tcp.rb +88 -0
- data/lib/veewee/util/web.rb +63 -0
- data/lib/veewee/vagrant/config.rb +7 -0
- data/lib/veewee/version.rb +6 -1
- data/templates/CentOS-4.8-i386/definition.rb +3 -3
- data/templates/CentOS-4.8-i386/postinstall.sh +2 -2
- data/templates/CentOS-5.5-x86_64-netboot/definition.rb +1 -1
- data/templates/CentOS-5.5-x86_64-netboot/postinstall.sh +1 -1
- data/templates/CentOS-5.6-i386-netboot/definition.rb +3 -3
- data/templates/CentOS-5.6-i386-netboot/ks.cfg +2 -2
- data/templates/CentOS-5.6-i386-netboot/postinstall.sh +2 -2
- data/templates/CentOS-5.6-i386/definition.rb +2 -2
- data/templates/CentOS-5.6-i386/postinstall.sh +2 -2
- data/templates/CentOS-5.6-x86_64-netboot/definition.rb +3 -3
- data/templates/CentOS-5.6-x86_64-netboot/ks.cfg +1 -1
- data/templates/CentOS-5.6-x86_64-netboot/postinstall.sh +1 -1
- data/templates/CentOS-5.7-i386-netboot/postinstall.sh +3 -3
- data/templates/CentOS-5.7-x86_64-netboot/postinstall.sh +1 -1
- data/templates/CentOS-6.0-i386-netboot/definition.rb +2 -2
- data/templates/CentOS-6.0-i386-netboot/postinstall.sh +2 -2
- data/templates/CentOS-6.0-i386/definition.rb +2 -2
- data/templates/CentOS-6.0-i386/postinstall.sh +2 -2
- data/templates/CentOS-6.0-x86_64-minimal/definition.rb +2 -2
- data/templates/CentOS-6.0-x86_64-minimal/postinstall.sh +4 -17
- data/templates/CentOS-6.0-x86_64-netboot/definition.rb +2 -2
- data/templates/CentOS-6.0-x86_64-netboot/postinstall.sh +2 -2
- data/templates/CentOS-6.0-x86_64/definition.rb +2 -2
- data/templates/CentOS-6.0-x86_64/postinstall.sh +2 -2
- data/templates/Debian-5.0.8-amd64-netboot/definition.rb +1 -1
- data/templates/Debian-5.0.8-amd64-netboot/postinstall.sh +1 -1
- data/templates/Debian-5.0.8-i386-netboot/definition.rb +1 -1
- data/templates/Debian-5.0.8-i386-netboot/postinstall.sh +1 -1
- data/templates/{Debian-6.0.3-amd64-netboot → Debian-6.0.2-amd64-netboot}/definition.rb +4 -4
- data/templates/{ubuntu-11.10-server-amd64-ishaya → Debian-6.0.2-amd64-netboot}/postinstall.sh +23 -42
- data/templates/{Debian-6.0.3-amd64-netboot → Debian-6.0.2-amd64-netboot}/preseed.cfg +0 -0
- data/templates/{Debian-6.0.3-i386-netboot → Debian-6.0.2-i386-netboot}/definition.rb +4 -4
- data/templates/{Debian-6.0.3-i386-netboot → Debian-6.0.2-i386-netboot}/postinstall.sh +1 -1
- data/templates/{Debian-6.0.3-i386-netboot → Debian-6.0.2-i386-netboot}/preseed.cfg +0 -0
- data/templates/Fedora-14-amd64-netboot/definition.rb +2 -2
- data/templates/Fedora-14-amd64-netboot/postinstall.sh +2 -2
- data/templates/Fedora-14-amd64/definition.rb +2 -2
- data/templates/Fedora-14-amd64/postinstall.sh +2 -2
- data/templates/Fedora-14-i386-netboot/definition.rb +2 -2
- data/templates/Fedora-14-i386-netboot/postinstall.sh +2 -2
- data/templates/Fedora-14-i386/definition.rb +2 -2
- data/templates/Fedora-14-i386/postinstall.sh +2 -2
- data/templates/Fedora-15-i386-netboot/definition.rb +2 -2
- data/templates/Fedora-15-i386/definition.rb +3 -3
- data/templates/Sysrescuecd-2.0.0-experimental/definition.rb +1 -1
- data/templates/archlinux-i386-netboot/aif.cfg +14 -8
- data/templates/archlinux-i386-netboot/definition.rb +7 -4
- data/templates/archlinux-i386-netboot/postinstall.sh +17 -5
- data/templates/archlinux-i386-netboot/postinstall2.sh +1 -3
- data/templates/archlinux-i386/definition.rb +4 -4
- data/templates/archlinux-i386/postinstall.sh +1 -1
- data/templates/archlinux-x86_64-netboot/aif.cfg +14 -8
- data/templates/archlinux-x86_64-netboot/definition.rb +7 -4
- data/templates/archlinux-x86_64-netboot/postinstall.sh +16 -1
- data/templates/archlinux-x86_64-netboot/postinstall2.sh +1 -3
- data/templates/archlinux-x86_64/definition.rb +2 -2
- data/templates/archlinux-x86_64/postinstall.sh +1 -1
- data/templates/freebsd-8.2-experimental/definition.rb +1 -1
- data/templates/freebsd-8.2-pcbsd-i386-netboot/definition.rb +2 -5
- data/templates/freebsd-8.2-pcbsd-i386-netboot/postinstall.sh +1 -1
- data/templates/freebsd-8.2-pcbsd-i386/definition.rb +3 -4
- data/templates/freebsd-8.2-pcbsd-i386/postinstall.sh +1 -1
- data/templates/gentoo-latest-i386-experimental/definition.rb +7 -7
- data/templates/gentoo-latest-i386-experimental/postinstall.sh +1 -1
- data/templates/openSUSE-11.4-DVD-i586/postinstall.sh +1 -1
- data/templates/openSUSE-11.4-DVD-x86_64/postinstall.sh +1 -1
- data/templates/openSUSE-11.4-NET-i586/postinstall.sh +1 -1
- data/templates/openSUSE-11.4-NET-x86_64/postinstall.sh +1 -1
- data/templates/openindiana-148-ai-x86/definition.rb +3 -3
- data/templates/openindiana-148-ai-x86/postinstall.sh +1 -1
- data/templates/opensuse-11.4-i386-experimental/definition.rb +1 -1
- data/templates/opensuse-11.4-i386-experimental/postinstall.sh +1 -1
- data/templates/solaris-11-express-i386/definition.rb +3 -3
- data/templates/solaris-11-express-i386/postinstall.sh +1 -1
- data/templates/ubuntu-10.04.2-amd64-netboot/definition.rb +1 -1
- data/templates/ubuntu-10.04.2-amd64-netboot/postinstall.sh +1 -1
- data/templates/ubuntu-10.04.2-server-i386-netboot/definition.rb +1 -1
- data/templates/ubuntu-10.04.2-server-i386-netboot/postinstall.sh +1 -1
- data/templates/ubuntu-10.04.3-server-amd64-alt/definition.rb +6 -6
- data/templates/ubuntu-10.04.3-server-amd64-alt/postinstall.sh +1 -1
- data/templates/ubuntu-10.04.3-server-amd64/base.sh +11 -0
- data/templates/ubuntu-10.04.3-server-amd64/chef.sh +2 -0
- data/templates/ubuntu-10.04.3-server-amd64/cleanup.sh +19 -0
- data/templates/ubuntu-10.04.3-server-amd64/definition.rb +19 -11
- data/templates/ubuntu-10.04.3-server-amd64/preseed.cfg +4 -4
- data/templates/ubuntu-10.04.3-server-amd64/puppet.sh +1 -0
- data/templates/ubuntu-10.04.3-server-amd64/ruby.sh +24 -0
- data/templates/ubuntu-10.04.3-server-amd64/vagrant.sh +27 -0
- data/templates/ubuntu-10.04.3-server-amd64/virtualbox.sh +12 -0
- data/templates/ubuntu-10.04.3-server-i386/postinstall.sh +1 -1
- data/templates/ubuntu-10.10-server-amd64-netboot/definition.rb +1 -1
- data/templates/ubuntu-10.10-server-amd64-netboot/postinstall.sh +1 -1
- data/templates/ubuntu-10.10-server-amd64/base.sh +11 -0
- data/templates/ubuntu-10.10-server-amd64/chef.sh +2 -0
- data/templates/ubuntu-10.10-server-amd64/cleanup.sh +19 -0
- data/templates/ubuntu-10.10-server-amd64/definition.rb +20 -8
- data/templates/ubuntu-10.10-server-amd64/postinstall.sh +1 -1
- data/templates/ubuntu-10.10-server-amd64/preseed.cfg +5 -5
- data/templates/ubuntu-10.10-server-amd64/puppet.sh +1 -0
- data/templates/ubuntu-10.10-server-amd64/ruby.sh +24 -0
- data/templates/ubuntu-10.10-server-amd64/vagrant.sh +27 -0
- data/templates/ubuntu-10.10-server-amd64/virtualbox.sh +12 -0
- data/templates/ubuntu-10.10-server-i386-netboot/definition.rb +1 -1
- data/templates/ubuntu-10.10-server-i386-netboot/postinstall.sh +1 -1
- data/templates/ubuntu-10.10-server-i386/definition.rb +1 -1
- data/templates/ubuntu-10.10-server-i386/postinstall.sh +1 -1
- data/templates/ubuntu-11.04-server-amd64/apt-upgrade.sh +4 -0
- data/templates/ubuntu-11.04-server-amd64/chef.sh +1 -0
- data/templates/ubuntu-11.04-server-amd64/definition.rb +32 -9
- data/templates/ubuntu-11.04-server-amd64/network-cleanup.sh +14 -0
- data/templates/ubuntu-11.04-server-amd64/nfs-client.sh +3 -0
- data/templates/ubuntu-11.04-server-amd64/puppet.sh +1 -0
- data/templates/ubuntu-11.04-server-amd64/remove-build-essentials.sh +3 -0
- data/templates/ubuntu-11.04-server-amd64/ruby.sh +29 -0
- data/templates/ubuntu-11.04-server-amd64/ssh-keys.sh +7 -0
- data/templates/ubuntu-11.04-server-amd64/sudo.sh +4 -0
- data/templates/ubuntu-11.04-server-amd64/timestamp.sh +1 -0
- data/templates/ubuntu-11.04-server-amd64/vbox_additions.sh +11 -0
- data/templates/ubuntu-11.04-server-amd64/zero-disk.sh +3 -0
- data/templates/ubuntu-11.04-server-i386/definition.rb +2 -2
- data/templates/ubuntu-11.04-server-i386/postinstall.sh +1 -1
- data/templates/ubuntu-8.04.4-server-amd64/definition.rb +1 -2
- data/templates/ubuntu-8.04.4-server-amd64/postinstall.sh +7 -8
- data/templates/ubuntu-8.04.4-server-amd64/preseed.cfg +1 -0
- data/templates/ubuntu-8.04.4-server-i386/definition.rb +2 -2
- data/templates/ubuntu-8.04.4-server-i386/postinstall.sh +3 -25
- data/templates/windows-2008R2-amd64/cygwin-setup.exe +0 -0
- data/templates/windows-2008R2-amd64/definition.rb +1 -1
- data/templates/windows-2008R2-amd64/install-winrm.bat +0 -2
- data/templates/windows-2008R2-amd64/postinstall.sh +1 -1
- data/templates/windows-2008R2-amd64/win7/Autounattend.xml +180 -0
- data/test/build_test.rb +50 -0
- data/test/definition_test.rb +11 -0
- data/test/definitions/test_definition/_test_me.sh +1 -0
- data/test/definitions/test_definition/autorun0 +3 -0
- data/test/definitions/test_definition/definition.rb +27 -0
- data/test/environment_test.rb +67 -0
- data/validation/features/steps/ssh_steps.rb +52 -52
- data/validation/vagrant.feature +64 -48
- data/veewee.gemspec +14 -9
- metadata +243 -213
- data/lib/veewee/command/basebox.rb +0 -63
- data/lib/veewee/command/basebox_build.rb +0 -32
- data/lib/veewee/command/basebox_define.rb +0 -28
- data/lib/veewee/command/basebox_destroy.rb +0 -22
- data/lib/veewee/command/basebox_export.rb +0 -22
- data/lib/veewee/command/basebox_list.rb +0 -23
- data/lib/veewee/command/basebox_ostypes.rb +0 -23
- data/lib/veewee/command/basebox_templates.rb +0 -23
- data/lib/veewee/command/basebox_undefine.rb +0 -22
- data/lib/veewee/command/basebox_validate.rb +0 -26
- data/lib/veewee/export.rb +0 -81
- data/lib/veewee/scancode.rb +0 -151
- data/lib/veewee/session.rb +0 -907
- data/lib/veewee/shell.rb +0 -54
- data/lib/veewee/ssh.rb +0 -193
- data/lib/veewee/transaction.rb +0 -122
- data/lib/veewee/utils.rb +0 -26
- data/lib/veewee/web.rb +0 -48
- data/templates/CentOS-6.1-x86_64-minimal/definition.rb +0 -15
- data/templates/CentOS-6.1-x86_64-minimal/ks.cfg +0 -37
- data/templates/CentOS-6.1-x86_64-minimal/postinstall.sh +0 -50
- data/templates/CentOS-6.2-x86_64-minimal/definition.rb +0 -15
- data/templates/CentOS-6.2-x86_64-minimal/ks.cfg +0 -37
- data/templates/CentOS-6.2-x86_64-minimal/postinstall.sh +0 -50
- data/templates/Debian-6.0.3-amd64-netboot/postinstall.sh +0 -80
- data/templates/Fedora-15-x86_64-netboot/definition.rb +0 -29
- data/templates/Fedora-15-x86_64-netboot/ks.cfg +0 -64
- data/templates/Fedora-15-x86_64-netboot/postinstall.sh +0 -33
- data/templates/Fedora-16-i386/definition.rb +0 -17
- data/templates/Fedora-16-i386/ks.cfg +0 -72
- data/templates/Fedora-16-i386/postinstall.sh +0 -35
- data/templates/Fedora-16-x86_64/definition.rb +0 -17
- data/templates/Fedora-16-x86_64/ks.cfg +0 -72
- data/templates/Fedora-16-x86_64/postinstall.sh +0 -35
- data/templates/SLES-11-SP1-DVD-i586-GM/autoinst_de.xml +0 -1127
- data/templates/SLES-11-SP1-DVD-i586-GM/autoinst_en.xml +0 -1127
- data/templates/SLES-11-SP1-DVD-i586-GM/definition.rb +0 -37
- data/templates/SLES-11-SP1-DVD-i586-GM/postinstall.sh +0 -43
- data/templates/SLES-11-SP1-DVD-x86_64-GM/autoinst_de.xml +0 -1171
- data/templates/SLES-11-SP1-DVD-x86_64-GM/autoinst_en.xml +0 -1171
- data/templates/SLES-11-SP1-DVD-x86_64-GM/definition.rb +0 -37
- data/templates/SLES-11-SP1-DVD-x86_64-GM/postinstall.sh +0 -43
- data/templates/funtoo-latest-generic_64-stable/definition.rb +0 -34
- data/templates/funtoo-latest-generic_64-stable/postinstall.sh +0 -177
- data/templates/funtoo-latest-generic_64-stable/postinstall2.sh +0 -83
- data/templates/gentoo-latest-x86_64-experimental/definition.rb +0 -34
- data/templates/gentoo-latest-x86_64-experimental/postinstall.sh +0 -214
- data/templates/openSUSE-12.1-DVD+NET-i586/autoinst_de.xml +0 -1483
- data/templates/openSUSE-12.1-DVD+NET-i586/autoinst_en.xml +0 -1483
- data/templates/openSUSE-12.1-DVD+NET-i586/definition.rb +0 -44
- data/templates/openSUSE-12.1-DVD+NET-i586/postinstall.sh +0 -43
- data/templates/openSUSE-12.1-DVD+NET-x86_64/autoinst_de.xml +0 -1727
- data/templates/openSUSE-12.1-DVD+NET-x86_64/autoinst_en.xml +0 -1727
- data/templates/openSUSE-12.1-DVD+NET-x86_64/definition.rb +0 -44
- data/templates/openSUSE-12.1-DVD+NET-x86_64/postinstall.sh +0 -43
- data/templates/openbsd50_amd64/README +0 -28
- data/templates/openbsd50_amd64/definition.rb +0 -84
- data/templates/openbsd50_amd64/postinstall.sh +0 -81
- data/templates/openbsd50_i386/.definition.rb.swp +0 -0
- data/templates/openbsd50_i386/README +0 -28
- data/templates/openbsd50_i386/definition.rb +0 -84
- data/templates/openbsd50_i386/postinstall.sh +0 -80
- data/templates/scientificlinux-6.1-i386-netboot/definition.rb +0 -16
- data/templates/scientificlinux-6.1-i386-netboot/ks.cfg +0 -53
- data/templates/scientificlinux-6.1-i386-netboot/postinstall.sh +0 -30
- data/templates/scientificlinux-6.1-x86_64-netboot/definition.rb +0 -16
- data/templates/scientificlinux-6.1-x86_64-netboot/ks.cfg +0 -53
- data/templates/scientificlinux-6.1-x86_64-netboot/postinstall.sh +0 -30
- data/templates/ubuntu-10.04.3-server-amd64/postinstall.sh +0 -90
- data/templates/ubuntu-11.04-server-amd64/postinstall.sh +0 -96
- data/templates/ubuntu-11.10-server-amd64-ishaya/definition.rb +0 -24
- data/templates/ubuntu-11.10-server-amd64-ishaya/preseed.cfg +0 -87
- data/templates/ubuntu-11.10-server-amd64-ruby192/definition.rb +0 -24
- data/templates/ubuntu-11.10-server-amd64-ruby192/postinstall.sh +0 -90
- data/templates/ubuntu-11.10-server-amd64-ruby192/preseed.cfg +0 -87
- data/templates/ubuntu-11.10-server-amd64/definition.rb +0 -35
- data/templates/ubuntu-11.10-server-amd64/postinstall.sh +0 -88
- data/templates/ubuntu-11.10-server-amd64/preseed.cfg +0 -87
- data/templates/ubuntu-11.10-server-i386/definition.rb +0 -35
- data/templates/ubuntu-11.10-server-i386/postinstall.sh +0 -88
- data/templates/ubuntu-11.10-server-i386/preseed.cfg +0 -87
- data/templates/windows-2008R1-serverstandard-amd64/Autounattend.xml +0 -146
- data/templates/windows-2008R1-serverstandard-amd64/README.md +0 -134
- data/templates/windows-2008R1-serverstandard-amd64/cygwin-setup.exe +0 -0
- data/templates/windows-2008R1-serverstandard-amd64/definition.rb +0 -114
- data/templates/windows-2008R1-serverstandard-amd64/install-cygwin-sshd.bat +0 -40
- data/templates/windows-2008R1-serverstandard-amd64/install-guest-additions.bat +0 -5
- data/templates/windows-2008R1-serverstandard-amd64/install-winrm.bat +0 -14
- data/templates/windows-2008R1-serverstandard-amd64/oracle-cert.cer +0 -0
- data/templates/windows-2008R1-serverstandard-amd64/postinstall.sh +0 -74
- data/templates/windows-2008R1-serverstandard-amd64/sudo +0 -2
- data/templates/windows-2008R1-serverstandard-amd64/winrm.rb +0 -8
- data/templates/windows-2008R2-serverstandard-amd64/Autounattend.xml +0 -147
- data/templates/windows-2008R2-serverstandard-amd64/README.md +0 -142
- data/templates/windows-2008R2-serverstandard-amd64/definition.rb +0 -44
- data/templates/windows-2008R2-serverstandard-amd64/install-cygwin-sshd.bat +0 -41
- data/templates/windows-2008R2-serverstandard-amd64/install-winrm.bat +0 -11
- data/templates/windows-2008R2-serverstandard-amd64/oracle-cert.cer +0 -0
- data/templates/windows-2008R2-serverstandard-amd64/postinstall.sh +0 -74
- data/templates/windows-7-enterprise-amd64/Autounattend.xml +0 -149
- data/templates/windows-7-enterprise-amd64/README.md +0 -52
- data/templates/windows-7-enterprise-amd64/definition.rb +0 -39
- data/templates/windows-7-enterprise-amd64/install-cygwin-sshd.bat +0 -40
- data/templates/windows-7-enterprise-amd64/install-winrm.bat +0 -14
- data/templates/windows-7-enterprise-amd64/oracle-cert.cer +0 -0
- data/templates/windows-7-enterprise-amd64/postinstall.sh +0 -74
- data/templates/windows-7-enterprise-i386/Autounattend.xml +0 -151
- data/templates/windows-7-enterprise-i386/README.md +0 -169
- data/templates/windows-7-enterprise-i386/definition.rb +0 -40
- data/templates/windows-7-enterprise-i386/install-cygwin-sshd.bat +0 -40
- data/templates/windows-7-enterprise-i386/install-winrm.bat +0 -14
- data/templates/windows-7-enterprise-i386/oracle-cert.cer +0 -0
- data/templates/windows-7-enterprise-i386/postinstall.sh +0 -74
- data/templates/windows-7-premium-amd64/Autounattend.xml +0 -152
- data/templates/windows-7-premium-amd64/README.md +0 -171
- data/templates/windows-7-premium-amd64/definition.rb +0 -38
- data/templates/windows-7-premium-amd64/install-chefclient.bat +0 -44
- data/templates/windows-7-premium-amd64/install-winrm.bat +0 -11
- data/templates/windows-7-premium-amd64/oracle-cert.cer +0 -0
- data/templates/windows-7-premium-amd64/postinstall.sh +0 -124
- data/templates/windows-7-premium-amd64/winrm.rb +0 -8
- data/templates/windows-7-professional-amd64/Autounattend.xml +0 -152
- data/templates/windows-7-professional-amd64/README.md +0 -171
- data/templates/windows-7-professional-amd64/definition.rb +0 -41
- data/templates/windows-7-professional-amd64/install-cygwin-sshd.bat +0 -40
- data/templates/windows-7-professional-amd64/install-winrm.bat +0 -14
- data/templates/windows-7-professional-amd64/oracle-cert.cer +0 -0
- data/templates/windows-7-professional-amd64/postinstall.sh +0 -74
- data/templates/windows-7-ultimate-amd64/Autounattend.xml +0 -152
- data/templates/windows-7-ultimate-amd64/README.md +0 -89
- data/templates/windows-7-ultimate-amd64/definition.rb +0 -41
- data/templates/windows-7-ultimate-amd64/install-cygwin-sshd.bat +0 -40
- data/templates/windows-7-ultimate-amd64/install-winrm.bat +0 -14
- data/templates/windows-7-ultimate-amd64/oracle-cert.cer +0 -0
- data/templates/windows-7-ultimate-amd64/postinstall.sh +0 -74
- data/templates/windows-7sp1-ultimate-amd64/Autounattend.xml +0 -152
- data/templates/windows-7sp1-ultimate-amd64/README.md +0 -89
- data/templates/windows-7sp1-ultimate-amd64/definition.rb +0 -42
- data/templates/windows-7sp1-ultimate-amd64/install-cygwin-sshd.bat +0 -40
- data/templates/windows-7sp1-ultimate-amd64/install-winrm.bat +0 -14
- data/templates/windows-7sp1-ultimate-amd64/oracle-cert.cer +0 -0
- data/templates/windows-7sp1-ultimate-amd64/postinstall.sh +0 -74
- data/templates/windows-8-preview-dev-amd64/Autounattend.xml +0 -140
- data/templates/windows-8-preview-dev-amd64/README.md +0 -134
- data/templates/windows-8-preview-dev-amd64/cygwin-setup.exe +0 -0
- data/templates/windows-8-preview-dev-amd64/definition.rb +0 -114
- data/templates/windows-8-preview-dev-amd64/install-cygwin-sshd.bat +0 -38
- data/templates/windows-8-preview-dev-amd64/install-winrm.bat +0 -11
- data/templates/windows-8-preview-dev-amd64/oracle-cert.cer +0 -0
- data/templates/windows-8-preview-dev-amd64/postinstall.sh +0 -122
- data/templates/windows-8-preview-dev-amd64/winrm.rb +0 -8
- data/trials/docu-vbox.txt +0 -83
- data/trials/f.rb +0 -29
- data/trials/t.rb +0 -15
@@ -0,0 +1,112 @@
|
|
1
|
+
module Veewee
|
2
|
+
module Util
|
3
|
+
class Scancode
|
4
|
+
|
5
|
+
def self.string_to_keycode(thestring)
|
6
|
+
|
7
|
+
#http://www.win.tue.nl/~aeb/linux/kbd/scancodes-1.html
|
8
|
+
|
9
|
+
k=Hash.new
|
10
|
+
k['1'] = '02 82' ; k['2'] = '03 83' ; k['3'] = '04 84'; k['4']= '05 85' ;
|
11
|
+
k['5']='06 86'; k['6'] = '07 87' ; k['7'] = '08 88'; k['8'] = '09 89'; k['9']= '0a 8a';
|
12
|
+
k['0']='0b 8b'; k['-'] = '0c 8c'; k['='] = '0d 8d' ;
|
13
|
+
k['Tab'] = '0f 8f';
|
14
|
+
k['q'] = '10 90' ; k['w'] = '11 91' ; k['e'] = '12 92';
|
15
|
+
k['r'] = '13 93' ; k['t'] = '14 94' ; k['y'] = '15 95';
|
16
|
+
k['u']= '16 96' ; k['i']='17 97'; k['o'] = '18 98' ; k['p'] = '19 99' ;
|
17
|
+
|
18
|
+
k['Q'] = '2a 10 aa' ; k['W'] = '2a 11 aa' ; k['E'] = '2a 12 aa'; k['R'] = '2a 13 aa' ; k['T'] = '2a 14 aa' ; k['Y'] = '2a 15 aa'; k['U']= '2a 16 aa' ; k['I']='2a 17 aa'; k['O'] = '2a 18 aa' ; k['P'] = '2a 19 aa' ;
|
19
|
+
|
20
|
+
k['a'] = '1e 9e'; k['s'] = '1f 9f' ; k['d'] = '20 a0' ; k['f'] = '21 a1'; k['g'] = '22 a2' ; k['h'] = '23 a3' ; k['j'] = '24 a4';
|
21
|
+
k['k']= '25 a5' ; k['l']='26 a6';
|
22
|
+
k['A'] = '2a 1e aa 9e'; k['S'] = '2a 1f aa 9f' ; k['D'] = '2a 20 aa a0' ; k['F'] = '2a 21 aa a1';
|
23
|
+
k['G'] = '2a 22 aa a2' ; k['H'] = '2a 23 aa a3' ; k['J'] = '2a 24 aa a4'; k['K']= '2a 25 aa a5' ; k['L']='2a 26 aa a6';
|
24
|
+
|
25
|
+
k[';'] = '27 a7' ;k['"']='2a 28 aa a8';k['\'']='28 a8';
|
26
|
+
|
27
|
+
k['\\'] = '2b ab'; k['|'] = '2a 2b aa 8b';
|
28
|
+
|
29
|
+
k['[']='1a 9a'; k[']']='1b 9b';
|
30
|
+
k['<']='2a 33 aa b3'; k['>']='2a 34 aa b4';
|
31
|
+
k['$']='2a 05 aa 85';
|
32
|
+
k['+']='2a 0d aa 8d';
|
33
|
+
|
34
|
+
k['?']='2a 35 aa b5';
|
35
|
+
k['z'] = '2c ac'; k['x'] = '2d ad' ; k['c'] = '2e ae' ; k['v'] = '2f af'; k['b'] = '30 b0' ; k['n'] = '31 b1' ;
|
36
|
+
k['m'] = '32 b2';
|
37
|
+
k['Z'] = '2a 2c aa ac'; k['X'] = '2a 2d aa ad' ; k['C'] = '2a 2e aa ae' ; k['V'] = '2a 2f aa af';
|
38
|
+
k['B'] = '2a 30 aa b0' ; k['N'] = '2a 31 aa b1' ; k['M'] = '2a 32 aa b2';
|
39
|
+
|
40
|
+
k[',']= '33 b3' ; k['.']='34 b4'; k['/'] = '35 b5' ;k[':'] = '2a 27 aa a7';
|
41
|
+
k['%'] = '2a 06 aa 86'; k['_'] = '2a 0c aa 8c';
|
42
|
+
k['&'] = '2a 08 aa 88';
|
43
|
+
k['('] = '2a 0a aa 8a';
|
44
|
+
k[')'] = '2a 0b aa 8b';
|
45
|
+
|
46
|
+
|
47
|
+
special=Hash.new;
|
48
|
+
special['<Enter>'] = '1c 9c';
|
49
|
+
special['<Backspace>'] = '0e 8e';
|
50
|
+
special['<Spacebar>'] = '39 b9';
|
51
|
+
special['<Return>'] = '1c 9c'
|
52
|
+
special['<Esc>'] = '01 81';
|
53
|
+
special['<Tab>'] = '0f 8f';
|
54
|
+
special['<KillX>'] = '1d 38 0e';
|
55
|
+
special['<Wait>'] = 'wait';
|
56
|
+
|
57
|
+
special['<Up>'] = '48 c8';
|
58
|
+
special['<Down>'] = '50 d0';
|
59
|
+
special['<PageUp>'] = '49 c9';
|
60
|
+
special['<PageDown>'] = '51 d1';
|
61
|
+
special['<End>'] = '4f cf';
|
62
|
+
special['<Insert>'] = '52 d2';
|
63
|
+
special['<Delete>'] = '53 d3';
|
64
|
+
special['<Left>'] = '4b cb';
|
65
|
+
special['<Right>'] = '4d cd';
|
66
|
+
special['<Home>'] = '47 c7';
|
67
|
+
|
68
|
+
special['<F1>'] = '3b';
|
69
|
+
special['<F2>'] = '3c';
|
70
|
+
special['<F3>'] = '3d';
|
71
|
+
special['<F4>'] = '3e';
|
72
|
+
special['<F5>'] = '3f';
|
73
|
+
special['<F6>'] = '40';
|
74
|
+
special['<F7>'] = '41';
|
75
|
+
special['<F8>'] = '42';
|
76
|
+
special['<F9>'] = '43';
|
77
|
+
special['<F10>'] = '44';
|
78
|
+
|
79
|
+
keycodes=''
|
80
|
+
thestring.gsub!(/ /,"<Spacebar>")
|
81
|
+
|
82
|
+
until thestring.length == 0
|
83
|
+
nospecial=true;
|
84
|
+
special.keys.each { |key|
|
85
|
+
if thestring.start_with?(key)
|
86
|
+
#take thestring
|
87
|
+
#check if it starts with a special key + pop special string
|
88
|
+
keycodes=keycodes+special[key]+' ';
|
89
|
+
thestring=thestring.slice(key.length,thestring.length-key.length)
|
90
|
+
nospecial=false;
|
91
|
+
break;
|
92
|
+
end
|
93
|
+
}
|
94
|
+
if nospecial
|
95
|
+
code=k[thestring.slice(0,1)]
|
96
|
+
if !code.nil?
|
97
|
+
keycodes=keycodes+code+' '
|
98
|
+
else
|
99
|
+
env.ui.info "no scan code for #{thestring.slice(0,1)}"
|
100
|
+
end
|
101
|
+
#pop one
|
102
|
+
thestring=thestring.slice(1,thestring.length-1)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
return keycodes
|
107
|
+
end
|
108
|
+
end #Class
|
109
|
+
end #Module
|
110
|
+
end #Module
|
111
|
+
|
112
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Veewee
|
2
|
+
module Util
|
3
|
+
|
4
|
+
class ShellResult
|
5
|
+
attr_accessor :stdout
|
6
|
+
attr_accessor :stderr
|
7
|
+
attr_accessor :status
|
8
|
+
|
9
|
+
def initialize(stdout,stderr,status)
|
10
|
+
@stdout=stdout
|
11
|
+
@stderr=stderr
|
12
|
+
@status=status
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
module Shell
|
17
|
+
|
18
|
+
# http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/185404
|
19
|
+
# This should work on windows too now
|
20
|
+
# This will result in a ShellResult structure with stdout, stderr and status
|
21
|
+
def shell_exec(command,options = {})
|
22
|
+
result=ShellResult.new("","",-1)
|
23
|
+
env.ui.info "Executing #{command}" unless options[:mute]
|
24
|
+
escaped_command=command
|
25
|
+
# env.ui.info "#{escaped_command}"
|
26
|
+
IO.popen("#{escaped_command}"+ " 2>&1") { |p|
|
27
|
+
p.each_line{ |l|
|
28
|
+
result.stdout+=l
|
29
|
+
env.ui.info(l,{:new_line => false}) unless options[:mute]
|
30
|
+
}
|
31
|
+
result.status=Process.waitpid2(p.pid)[1].exitstatus
|
32
|
+
if result.status!=0
|
33
|
+
env.ui.error "Exit status was not 0 but #{result.status}" unless options[:mute]
|
34
|
+
end
|
35
|
+
}
|
36
|
+
return result
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
end #Module
|
41
|
+
end #Module
|
42
|
+
end #Module
|
@@ -0,0 +1,158 @@
|
|
1
|
+
module Veewee
|
2
|
+
module Util
|
3
|
+
|
4
|
+
class SshResult
|
5
|
+
attr_accessor :stdout
|
6
|
+
attr_accessor :stderr
|
7
|
+
attr_accessor :status
|
8
|
+
|
9
|
+
def initialize(stdout,stderr,status)
|
10
|
+
@stdout=stdout
|
11
|
+
@stderr=stderr
|
12
|
+
@status=status
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
module Ssh
|
17
|
+
|
18
|
+
require 'net/ssh'
|
19
|
+
require 'net/scp'
|
20
|
+
|
21
|
+
def when_ssh_login_works(ip="localhost", options = { } , &block)
|
22
|
+
|
23
|
+
defaults={ :port => '22', :timeout => 20000 , :user => 'vagrant', :password => 'vagrant'}
|
24
|
+
|
25
|
+
options=defaults.merge(options)
|
26
|
+
|
27
|
+
env.ui.info "Waiting for ssh login on #{ip} with user #{options[:user]} to sshd on port => #{options[:port]} to work, timeout=#{options[:timeout]} sec"
|
28
|
+
|
29
|
+
begin
|
30
|
+
Timeout::timeout(options[:timeout]) do
|
31
|
+
connected=false
|
32
|
+
while !connected do
|
33
|
+
begin
|
34
|
+
env.ui.info ".",{:new_line => false}
|
35
|
+
Net::SSH.start(ip, options[:user], { :port => options[:port] , :password => options[:password], :paranoid => false , :timeout => options[:timeout] }) do |ssh|
|
36
|
+
env.ui.info "\n"
|
37
|
+
|
38
|
+
block.call(ip);
|
39
|
+
env.ui.info ""
|
40
|
+
return true
|
41
|
+
end
|
42
|
+
rescue Net::SSH::Disconnect,Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNABORTED, Errno::ECONNRESET, Errno::ENETUNREACH,Errno::ETIMEDOUT, Errno::ENETUNREACH
|
43
|
+
sleep 5
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
rescue Timeout::Error
|
48
|
+
env.ui.error "Ssh timeout #{options[:timeout]} min has been reached."
|
49
|
+
exit -1
|
50
|
+
end
|
51
|
+
env.ui.info ""
|
52
|
+
return false
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
def ssh_transfer_file(host,filename,destination = '.' , options = {})
|
57
|
+
|
58
|
+
defaults={ :paranoid => false }
|
59
|
+
options=defaults.merge(options)
|
60
|
+
|
61
|
+
Net::SSH.start( host,options[:user],options ) do |ssh|
|
62
|
+
env.ui.info "Transferring #{filename} to #{destination} "
|
63
|
+
ssh.scp.upload!( filename, destination ) do |ch, name, sent, total|
|
64
|
+
# print "\r#{destination}: #{(sent.to_f * 100 / total.to_f).to_i}%"
|
65
|
+
env.ui.info ".",{:new_line => false}
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
69
|
+
env.ui.info ""
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
def ssh_exec(host,command, options = { :progress => "on"} )
|
74
|
+
defaults= { :port => "22", :exitcode => "0", :user => "root"}
|
75
|
+
options=defaults.merge(options)
|
76
|
+
pid=""
|
77
|
+
stdin=command
|
78
|
+
stdout=""
|
79
|
+
stderr=""
|
80
|
+
status=-99999
|
81
|
+
|
82
|
+
env.ui.info "Executing command: #{command}"
|
83
|
+
|
84
|
+
Net::SSH.start(host, options[:user], { :port => options[:port], :password => options[:password], :paranoid => false }) do |ssh|
|
85
|
+
|
86
|
+
# open a new channel and configure a minimal set of callbacks, then run
|
87
|
+
# the event loop until the channel finishes (closes)
|
88
|
+
channel = ssh.open_channel do |ch|
|
89
|
+
|
90
|
+
#request pty for sudo stuff and so
|
91
|
+
ch.request_pty do |ch, success|
|
92
|
+
raise "Error requesting pty" unless success
|
93
|
+
end
|
94
|
+
|
95
|
+
ch.exec "#{command}" do |ch, success|
|
96
|
+
raise "could not execute command" unless success
|
97
|
+
|
98
|
+
|
99
|
+
# "on_data" is called when the process writes something to stdout
|
100
|
+
ch.on_data do |c, data|
|
101
|
+
stdout+=data
|
102
|
+
|
103
|
+
env.ui.info data,{:new_line => false}
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
# "on_extended_data" is called when the process writes something to stderr
|
108
|
+
ch.on_extended_data do |c, type, data|
|
109
|
+
stderr+=data
|
110
|
+
|
111
|
+
env.ui.info data,{:new_line => false}
|
112
|
+
|
113
|
+
end
|
114
|
+
|
115
|
+
#exit code
|
116
|
+
#http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/a806b0f5dae4e1e2
|
117
|
+
channel.on_request("exit-status") do |ch, data|
|
118
|
+
exit_code = data.read_long
|
119
|
+
status=exit_code
|
120
|
+
if exit_code > 0
|
121
|
+
env.ui.info "ERROR: exit code #{exit_code}"
|
122
|
+
else
|
123
|
+
#env.ui.info "Successfully executed"
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
channel.on_request("exit-signal") do |ch, data|
|
128
|
+
env.ui.info "SIGNAL: #{data.read_long}"
|
129
|
+
end
|
130
|
+
|
131
|
+
ch.on_close {
|
132
|
+
#env.ui.info "done!"
|
133
|
+
}
|
134
|
+
#status=ch.exec "echo $?"
|
135
|
+
end
|
136
|
+
end
|
137
|
+
channel.wait
|
138
|
+
end
|
139
|
+
|
140
|
+
|
141
|
+
if (status.to_s != options[:exitcode] )
|
142
|
+
if (options[:exitcode]=="*")
|
143
|
+
#its a test so we don't need to worry
|
144
|
+
else
|
145
|
+
raise "Exitcode was not what we expected"
|
146
|
+
end
|
147
|
+
|
148
|
+
end
|
149
|
+
|
150
|
+
return Veewee::Util::SshResult.new(stdout,stderr,status)
|
151
|
+
|
152
|
+
end
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
end #Class
|
157
|
+
end #Module
|
158
|
+
end #Module
|
@@ -0,0 +1,88 @@
|
|
1
|
+
require 'socket'
|
2
|
+
require 'timeout'
|
3
|
+
|
4
|
+
module Veewee
|
5
|
+
module Util
|
6
|
+
module Tcp
|
7
|
+
|
8
|
+
def is_tcp_port_open?(ip, port)
|
9
|
+
begin
|
10
|
+
Timeout::timeout(1) do
|
11
|
+
begin
|
12
|
+
s = TCPSocket.new(ip, port)
|
13
|
+
s.close
|
14
|
+
return true
|
15
|
+
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
|
16
|
+
return false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
rescue Timeout::Error
|
20
|
+
end
|
21
|
+
|
22
|
+
return false
|
23
|
+
end
|
24
|
+
|
25
|
+
# This tries to guess a local free tcp port
|
26
|
+
def guess_free_port(min_port,max_port)
|
27
|
+
env.ui.info "Received port hint - #{min_port}"
|
28
|
+
|
29
|
+
guessed_port=nil
|
30
|
+
|
31
|
+
for port in (min_port..max_port)
|
32
|
+
unless is_tcp_port_open?(get_local_ip, port)
|
33
|
+
guessed_port=port
|
34
|
+
break
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
if guessed_port.nil?
|
39
|
+
env.ui.info "No free port available: tried #{min_port}..#{max_port}"
|
40
|
+
exit -1
|
41
|
+
else
|
42
|
+
env.ui.info "Found port #{guessed_port} available"
|
43
|
+
end
|
44
|
+
|
45
|
+
return guessed_port
|
46
|
+
end
|
47
|
+
|
48
|
+
def execute_when_tcp_available(ip="localhost", options = { } , &block)
|
49
|
+
|
50
|
+
defaults={ :port => 22, :timeout => 2 , :pollrate => 5}
|
51
|
+
|
52
|
+
options=defaults.merge(options)
|
53
|
+
|
54
|
+
begin
|
55
|
+
Timeout::timeout(options[:timeout]) do
|
56
|
+
connected=false
|
57
|
+
while !connected do
|
58
|
+
begin
|
59
|
+
env.ui.info "trying connection"
|
60
|
+
s = TCPSocket.new(ip, options[:port])
|
61
|
+
s.close
|
62
|
+
block.call(ip);
|
63
|
+
return true
|
64
|
+
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
|
65
|
+
sleep options[:pollrate]
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
rescue Timeout::Error
|
70
|
+
raise 'timeout connecting to port'
|
71
|
+
end
|
72
|
+
|
73
|
+
return false
|
74
|
+
end
|
75
|
+
|
76
|
+
def get_local_ip
|
77
|
+
orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true # turn off reverse DNS resolution temporarily
|
78
|
+
|
79
|
+
UDPSocket.open do |s|
|
80
|
+
s.connect '64.233.187.99', 1
|
81
|
+
s.addr.last
|
82
|
+
end
|
83
|
+
ensure
|
84
|
+
Socket.do_not_reverse_lookup = orig
|
85
|
+
end
|
86
|
+
end #Module
|
87
|
+
end #Module
|
88
|
+
end #Module
|
@@ -0,0 +1,63 @@
|
|
1
|
+
module Veewee
|
2
|
+
module Util
|
3
|
+
require 'webrick'
|
4
|
+
include WEBrick
|
5
|
+
module Servlet
|
6
|
+
|
7
|
+
|
8
|
+
class FileServlet < WEBrick::HTTPServlet::AbstractServlet
|
9
|
+
|
10
|
+
attr_reader :env
|
11
|
+
|
12
|
+
def initialize(server,localfile,env)
|
13
|
+
super(server)
|
14
|
+
@server=server
|
15
|
+
@localfile=localfile
|
16
|
+
@env=env
|
17
|
+
end
|
18
|
+
|
19
|
+
def do_GET(request,response)
|
20
|
+
response['Content-Type']='text/plain'
|
21
|
+
response.status = 200
|
22
|
+
env.ui.info "Serving file #{@localfile}"
|
23
|
+
displayfile=File.open(@localfile,'r')
|
24
|
+
content=displayfile.read()
|
25
|
+
response.body=content
|
26
|
+
#If we shut too fast it might not get the complete file
|
27
|
+
sleep 2
|
28
|
+
@server.shutdown
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
module Web
|
34
|
+
|
35
|
+
def wait_for_http_request(filename,options={:timeout => 10, :web_dir => "", :port => 7125})
|
36
|
+
|
37
|
+
|
38
|
+
# Calculate the OS equivalent of /dev/null , on windows this is NUL:
|
39
|
+
# http://www.ruby-forum.com/topic/115472
|
40
|
+
fn = test(?e, '/dev/null') ? '/dev/null' : 'NUL:'
|
41
|
+
|
42
|
+
webrick_logger=WEBrick::Log.new(fn, WEBrick::Log::INFO)
|
43
|
+
|
44
|
+
web_dir=options[:web_dir]
|
45
|
+
filename=filename
|
46
|
+
s= ::WEBrick::HTTPServer.new(
|
47
|
+
:Port => options[:port],
|
48
|
+
:Logger => webrick_logger,
|
49
|
+
:AccessLog => webrick_logger
|
50
|
+
)
|
51
|
+
env.logger.debug ("mounting file /#{filename}")
|
52
|
+
s.mount("/#{filename}", Veewee::Util::Servlet::FileServlet,File.join(web_dir,filename),env)
|
53
|
+
trap("INT"){
|
54
|
+
s.shutdown
|
55
|
+
env.ui.info "Stopping webserver"
|
56
|
+
exit
|
57
|
+
}
|
58
|
+
s.start
|
59
|
+
end
|
60
|
+
|
61
|
+
end #Class
|
62
|
+
end #Module
|
63
|
+
end #Module
|