(List (Com {[LIT_CHARS source]} {[LIT_CHARS ./virtualbox_env.sh]} ) (Com {[LIT_CHARS source]} {[LIT_CHARS ./vmware/vmware_env.sh]} ) (If (DBracket {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[VarSub OSTYPE]} {[LIT_CHARS msys]}} {B2 BINARY_STRING_EQUAL {[VarSub OSTYPE]} {[LIT_CHARS cygwin]}}}) (= scope= flags=0 words=[] bindings=[('RSYNCEXTRA', {[DQ [LIT_CHARS "--perms --chmod=a=rwx,Da+x"]]})]) ) (Com {[LIT_CHARS set]} {[LIT_CHARS -e]} ) (= scope= flags=0 words=[] bindings=[('DIR', {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub 0]})]})]) (If (DBracket {B2 BINARY_INT_GT {[VarSub #]} {[LIT_CHARS 1]}}) (List (= scope= flags=0 words=[] bindings=[('KEYFILE', {[DQ [LIT_CHARS bootstrap_chef.id_rsa]]})]) (= scope= flags=0 words=[] bindings=[('IP', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('BCPC_DIR', {[DQ [LIT_CHARS chef-bcpc]]})]) (= scope= flags=0 words=[] bindings=[('VAGRANT', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('VMWARE', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('VBOX', {[DQ ]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[VarSub 1]} {[DQ [LIT_CHARS --vagrant-local]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Running on the local Vagrant VM"]]} ) (= scope= flags=0 words=[] bindings=[('VAGRANT', {[DQ [LIT_CHARS true]]})]) (= scope= flags=0 words=[] bindings=[('VBOX', {[DQ [LIT_CHARS true]]})]) (= scope= flags=0 words=[] bindings=[('BCPC_DIR', {[DQ [LIT_CHARS "~vagrant/chef-bcpc"]]})]) (= scope= flags=0 words=[] bindings=[('SSH_USER', {[DQ [VarSub USER]]})]) (= scope= flags=0 words=[] bindings=[('SSH_CMD', {[DQ [LIT_CHARS "bash -c"]]})]) ) (DBracket {B2 BINARY_STRING_EQUAL {[VarSub 1]} {[DQ [LIT_CHARS --vagrant-remote]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "SSHing to the Vagrant VM"]]} ) (= scope= flags=0 words=[] bindings=[('VAGRANT', {[DQ [LIT_CHARS true]]})]) (= scope= flags=0 words=[] bindings=[('VBOX', {[DQ [LIT_CHARS true]]})]) (= scope= flags=0 words=[] bindings=[('BCPC_DIR', {[DQ [LIT_CHARS "~vagrant/chef-bcpc"]]})]) (= scope= flags=0 words=[] bindings=[('SSH_USER', {[DQ [LIT_CHARS vagrant]]})]) (= scope= flags=0 words=[] bindings=[('SSH_CMD', {[DQ [LIT_CHARS "vagrant ssh -c"]]})]) ) (DBracket {B2 BINARY_STRING_EQUAL {[VarSub 1]} {[DQ [LIT_CHARS --vagrant-vmware]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "SSHing to the Vagrant VM (on VMware)"]]} ) (= scope= flags=0 words=[] bindings=[('VAGRANT', {[DQ [LIT_CHARS true]]})]) (= scope= flags=0 words=[] bindings=[('VMWARE', {[DQ [LIT_CHARS true]]})]) (= scope= flags=0 words=[] bindings=[('BCPC_DIR', {[DQ [LIT_CHARS "~vagrant/chef-bcpc"]]})]) (= scope= flags=0 words=[] bindings=[('SSH_USER', {[DQ [LIT_CHARS vagrant]]})]) (= scope= flags=0 words=[] bindings=[('SSH_CMD', {[DQ [LIT_CHARS "vagrant ssh -c"]]})]) (= scope= flags=0 words=[] bindings=[('DIR', {[VarSub DIR] [LIT_CHARS /vmware]})]) (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]} ) ) ) ) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('SSH_USER', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('SSH_CMD', {[DQ [LIT_CHARS "ssh -t -i "][VarSub KEYFILE][LIT_CHARS " "][VarSub SSH_USER][LIT_CHARS "@"][VarSub IP]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "SSHing to the non-Vagrant machine "][VarSub IP][LIT_CHARS " as "][VarSub SSH_USER]]} ) ) ) (If (DBracket {B2 BINARY_INT_GE {[VarSub #]} {[LIT_CHARS 3]}}) (= scope= flags=0 words=[] bindings=[('CHEF_ENVIRONMENT', {[DQ [VarSub 3]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('CHEF_ENVIRONMENT', {[DQ [LIT_CHARS Test-Laptop]]})]) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Chef environment: "][VarSub CHEF_ENVIRONMENT]]} ) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: "][ComSub (Com {[LIT_CHARS basename]} {[VarSub 0]})][LIT_CHARS " --vagrant-local|--vagrant-remote|--vagrant-vmware| IP-Address [chef environment]"]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/stderr]} >"> 1), > ) (Com {[LIT_CHARS exit]} ) ) ) (If (DBracket {B! {B1 UNARY_FILE_f {[DQ [LIT_CHARS environments/][VarSub CHEF_ENVIRONMENT][LIT_CHARS .json]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Error: environment file "][VarSub CHEF_ENVIRONMENT][LIT_CHARS ".json not found"]]} ) (Com {[LIT_CHARS exit]} ) ) ) (Com {[LIT_CHARS pushd]} {[VarSub DIR]} ) (If (DBracket {B1 UNARY_STRING_z {[VarSub VAGRANT]}}) (List (If (DBracket {B! {B1 UNARY_FILE_f {[VarSub KEYFILE]}}}) (Com {[LIT_CHARS ssh-keygen]} {[LIT_CHARS -N]} {[DQ ]} {[LIT_CHARS -f]} {[VarSub KEYFILE]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Running rsync of non-Vagrant install"]]} ) (Com {[LIT_CHARS rsync]} {[VarSub RSYNCEXTRA]} {[LIT_CHARS -avP]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "ssh -i "][VarSub KEYFILE]]} {[LIT_CHARS --exclude]} {[LIT_CHARS vbox]} {[LIT_CHARS --exclude]} {[LIT_CHARS vmware]} {[LIT_CHARS --exclude]} {[VarSub KEYFILE]} {[LIT_CHARS --exclude]} {[LIT_CHARS .chef]} {[LIT_CHARS .]} {[VarSub SSH_USER] [LIT_OTHER "@"] [VarSub IP] [LIT_OTHER ":"] [LIT_CHARS chef-bcpc]} ) (Com {[LIT_CHARS rsync]} {[VarSub RSYNCEXTRA]} {[LIT_CHARS -avP]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "ssh -i "][VarSub KEYFILE]]} {[LIT_CHARS vbox/ubuntu-12.04-mini.iso]} {[VarSub SSH_USER] [LIT_OTHER "@"] [VarSub IP] [LIT_OTHER ":"] [LIT_CHARS chef-bcpc/cookbooks/bcpc/files/default/bins]} ) (Com {[VarSub SSH_CMD]} {[DQ [LIT_CHARS "cd "][VarSub BCPC_DIR][LIT_CHARS " && ./setup_ssh_keys.sh "][VarSub KEYFILE][LIT_CHARS .pub]]} ) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Running rsync of Vagrant install"]]} ) (Com {[VarSub SSH_CMD]} {[DQ [LIT_CHARS "rsync "][VarSub RSYNCEXTRA][LIT_CHARS " -avP --exclude vbox --exclude vmware --exclude .chef /chef-bcpc-host/ /home/vagrant/chef-bcpc/"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Rsync over the hypervisor mini ISO to avoid redownloading"]]} ) (Com {[VarSub SSH_CMD]} {[DQ [LIT_CHARS "rsync "][VarSub RSYNCEXTRA][LIT_CHARS " -avP /chef-bcpc-host/vbox/ubuntu-12.04-mini.iso /home/vagrant/chef-bcpc/cookbooks/bcpc/files/default/bins"]]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Updating server"]]} ) (Com {[VarSub SSH_CMD]} {[DQ [LIT_CHARS "cd "][VarSub BCPC_DIR][LIT_CHARS " && sudo apt-get -y update && sudo apt-get -y dist-upgrade"]]} ) (If (DBracket {B? LOGICAL_BINARY_AND {B1 UNARY_STRING_n {[DQ [VarSub VBOX]]}} {B1 UNARY_STRING_z {[ComSub (Pipeline (Com {[VarSub VBM]} {[LIT_CHARS snapshot]} {[LIT_CHARS bcpc-bootstrap]} {[LIT_CHARS list]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS dist-upgrade]}) )]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Taking snapshot (VirtualBox)"]]} ) (Com {[VarSub VBM]} {[LIT_CHARS snapshot]} {[LIT_CHARS bcpc-bootstrap]} {[LIT_CHARS take]} {[LIT_CHARS dist-upgrade-complete]} ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub VMWARE]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('VM_PATH', {[ComSub (Com {[LIT_CHARS ls]} {[LIT_CHARS -d]} {[LIT_CHARS .vagrant/machines/bootstrap/vmware_fusion/] [LIT_OTHER "*"] [LIT_CHARS /]})]})]) (= scope= flags=0 words=[] bindings=[('VMX_FILE', {[VarSub VM_PATH] [LIT_CHARS /precise64.vmx]})]) (If (DBracket {B1 UNARY_STRING_z {[ComSub (Pipeline (Com {[DQ [VarSub VMRUN]]} {[LIT_CHARS listSnapshots]} {[VarSub VMX_FILE]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS dist-upgrade]}) )]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Taking snapshot (VMware)"]]} ) (Com {[DQ [VarSub VMRUN]]} {[LIT_CHARS snapshot]} {[VarSub VMX_FILE]} {[LIT_CHARS dist-upgrade-complete]} ) ) ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Building binaries"]]} ) (Com {[VarSub SSH_CMD]} {[DQ [LIT_CHARS "cd "][VarSub BCPC_DIR][LIT_CHARS " && sudo ./cookbooks/bcpc/files/default/build_bins.sh"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Setting up chef server"]]} ) (Com {[VarSub SSH_CMD]} {[DQ [LIT_CHARS "cd "][VarSub BCPC_DIR][LIT_CHARS " && sudo ./setup_chef_server.sh "][VarSub IP]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Setting up chef cookbooks"]]} ) (Com {[VarSub SSH_CMD]} {[DQ [LIT_CHARS "cd "][VarSub BCPC_DIR][LIT_CHARS " && ./setup_chef_cookbooks.sh "][VarSub IP][LIT_CHARS " "][VarSub SSH_USER]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Setting up chef environment, roles, and uploading cookbooks"]]} ) (Com {[VarSub SSH_CMD]} {[DQ [LIT_CHARS "cd "][VarSub BCPC_DIR][LIT_CHARS " && knife environment from file environments/"][VarSub CHEF_ENVIRONMENT][LIT_CHARS ".json && knife role from file roles/*.json && knife cookbook upload -a -o cookbooks"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Enrolling local bootstrap node into chef"]]} ) (Com {[VarSub SSH_CMD]} {[DQ [LIT_CHARS "cd "][VarSub BCPC_DIR][LIT_CHARS " && ./setup_chef_bootstrap_node.sh "][VarSub IP][LIT_CHARS " "][VarSub CHEF_ENVIRONMENT]]} ) (Com {[LIT_CHARS popd]} ) )