(List (Com {[LIT_CHARS source]} {[LIT_CHARS ./vmware_env.sh]} ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub VMRUN]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "vmrun not found!"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " Please ensure VMWare is installed and vmrun is accessible."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub VMDISK]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "vmware-vdiskmanager not found!"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " Please ensure VMWare is installed and vmware-vdiskmanager is accessible."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (DBracket {B1 UNARY_FILE_f {[LIT_CHARS ../proxy_setup.sh]}}) (Com {[LIT_CHARS .]} {[LIT_CHARS ../proxy_setup.sh]} ) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub CURL]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "CURL is not defined"]]} ) (Com {[LIT_CHARS exit]} ) ) ) (= scope= flags=1 words=[] bindings=[('BOOTSTRAP_VM_MEM', {[LIT_CHARS 1536]})]) (= scope= flags=1 words=[] bindings=[('BOOTSTRAP_VM_CPUs', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('CLUSTER_VM_MEM', {[LIT_CHARS 2560]})]) (= scope= flags=0 words=[] bindings=[('CLUSTER_VM_CPUs', {[LIT_CHARS 2]})]) (= scope= flags=0 words=[] bindings=[('CLUSTER_VM_DRIVE_SIZE', {[LIT_CHARS 20480]})]) (= scope= flags=0 words=[] bindings=[('VBOX_DIR', {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[VarSub BASH_SOURCE bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]})]]})]) (= scope= flags=0 words=[] bindings=[('P', {[ComSub (Com {[LIT_CHARS python]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "import os.path; print os.path.abspath("][\ LIT_ESCAPED_CHAR "\\\""][VarSub VBOX_DIR][LIT_CHARS /][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ")"]]})]})]) (If (Pipeline! (Com {[LIT_CHARS hash]} {[LIT_CHARS vagrant]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "This script requires Vagrant to be installed!"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (DBracket {B1 UNARY_STRING_z {[ComSub (Pipeline (Com {[LIT_CHARS vagrant]} {[LIT_CHARS plugin]} {[LIT_CHARS list]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS vagrant-vmware-fusion]}) )]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "This script requires vagrant-vmware-fusion to be installed!"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Try: "]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_OTHER "$"][LIT_CHARS " vagrant plugin install vagrant-vmware-fusion"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_OTHER "$"][LIT_CHARS " vagrant plugin license /path/to/license-file"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "See http://www.vagrantup.com/vmware for more info."]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "(The vagrant-vmware-fusion plugin is a commercial product.)"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (FunctionDef download_VM_files [] (List (Com {[LIT_CHARS pushd]} {[VarSub P]} ) (= scope= flags=0 words=[] bindings=[('BOX', {[SQ ]})]) (If (DBracket {B! {B1 UNARY_FILE_f {[VarSub BOX]}}}) (Com {[VarSub CURL]} {[LIT_CHARS -L]} {[LIT_CHARS -o]} {[VarSub BOX]} {[LIT_CHARS http] [LIT_OTHER ":"] [LIT_CHARS //files.vagrantup.com/precise64_vmware.box]} ) ) (Com {[LIT_CHARS popd]} ) ) ) (FunctionDef create_VMs [] (List (Com {[LIT_CHARS pushd]} {[VarSub P]} ) (If (DBracket {B! {B1 UNARY_FILE_f {[LIT_CHARS insecure_private_key]}}}) (List (Com {[LIT_CHARS vagrant]} {[LIT_CHARS status]} ) (Com {[LIT_CHARS cp]} {[VarSub HOME] [LIT_CHARS /.vagrant.d/insecure_private_key]} {[LIT_CHARS .]} ) ) ) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS up]} ) (For vm [{[LIT_CHARS 1]}, {[LIT_CHARS 2]}, {[LIT_CHARS 3]}]) (List (= scope= flags=0 words=[] bindings=[('VM_PATH', {[ComSub (Com {[LIT_CHARS ls]} {[LIT_CHARS -d]} {[LIT_CHARS .vagrant/machines/bcpc_vm] [VarSub vm] [LIT_CHARS /vmware_fusion/] [LIT_OTHER "*"] [LIT_CHARS /]})]})]) (= scope= flags=0 words=[] bindings=[('VMX_PATH', {[VarSub VM_PATH] [LIT_CHARS /precise64.vmx]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[VarSub VMX_PATH]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Can't find bcpc-vm"][VarSub vm][LIT_CHARS " in "][VarSub VM_PATH]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (For disk [{[LIT_CHARS 1]}, {[LIT_CHARS 2]}, {[LIT_CHARS 3]}, {[LIT_CHARS 4]}]) (List (= scope= flags=0 words=[] bindings=[('VMDK_FILE', {[LIT_CHARS bcpc-vm] [VarSub vm] [LIT_CHARS -] [VarSub disk] [LIT_CHARS .vmdk]})]) (= scope= flags=0 words=[] bindings=[('VMDK_PATH', {[VarSub VM_PATH] [LIT_CHARS /] [VarSub VMDK_FILE]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[VarSub VMDK_PATH]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS vagrant]} {[LIT_CHARS halt]} {[LIT_CHARS bcpc_vm] [VarSub vm]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Creating "][VarSub VMDK_PATH]]} ) (Com {[DQ [VarSub VMDISK]]} {[LIT_CHARS -c]} {[LIT_CHARS -s]} {[VarSub CLUSTER_VM_DRIVE_SIZE] [LIT_CHARS MB]} {[LIT_CHARS -a]} {[LIT_CHARS ide]} {[LIT_CHARS -t]} {[LIT_CHARS 0]} {[VarSub VMDK_PATH]} ) (Com {[LIT_CHARS cp]} {[VarSub VMX_PATH]} {[VarSub VMX_PATH] [LIT_CHARS .orig-] [VarSub disk]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub VMX_PATH]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "scsi0:"][VarSub disk][LIT_CHARS ".present = "][RIGHT_D_QUOTE "\""][LIT_CHARS TRUE][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "scsi0:"][VarSub disk][LIT_CHARS ".filename = "][RIGHT_D_QUOTE "\""][VarSub VMDK_FILE][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"]]} 0), > ) ) ) ) ) ) ) (Com {[LIT_CHARS popd]} ) ) ) (FunctionDef install_cluster [] (List (= scope= flags=0 words=[] bindings=[('environment', {[VarSub 1 test_op=VS_TEST_HYPHEN {[LIT_CHARS Test-Laptop-VMware]}]})]) (= scope= flags=0 words=[] bindings=[('ip', {[VarSub 2 test_op=VS_TEST_HYPHEN {[LIT_CHARS 10.0.100.3]}]})]) (Com {[LIT_CHARS pushd]} {[VarSub P]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "test -f /etc/default/grub.ucf-dist && sudo mv /etc/default/grub.ucf-dist /etc/default/grub"]]} ) (Com {[LIT_CHARS true]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub http_proxy]]} {[LIT_DBRACKET_LIKE "]"]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[ComSub (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "grep Acquire::http::Proxy /etc/apt/apt.conf"]]})]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "echo 'Acquire::http::Proxy "][\ LIT_ESCAPED_CHAR "\\\""][VarSub http_proxy][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ";' | sudo tee -a /etc/apt/apt.conf"]]} ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "sudo apt-get install rsync ed apparmor"]]} ) (Com {[LIT_CHARS true]} ) ) (Com {[LIT_CHARS popd]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Bootstrap complete - setting up Chef server"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "N.B. This may take approximately 30-45 minutes to complete."]]} ) (Com {[LIT_CHARS pushd]} {[LIT_CHARS ../]} ) (Com {[LIT_CHARS ./bootstrap_chef.sh]} {[LIT_CHARS --vagrant-vmware]} {[VarSub ip]} {[VarSub environment]} ) (Com {[LIT_CHARS popd]} ) (Com {[LIT_CHARS ./vmware_cobbler.sh]} ) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub BASH_SOURCE bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]]} {[DQ [VarSub 0]]}}) (List (Com {[LIT_CHARS download_VM_files]} ) (Com {[LIT_CHARS create_VMs]} ) (Com {[LIT_CHARS install_cluster]} {[VarSub *]} ) ) ) )