(CommandList children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name "$VBM"))})) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(command)} {(-v)} {(VBoxManage)}] redirects: [ (Redir op_id: Redir_GreatAnd fd: -1 arg_word: {(/dev/null)} spids: [41] ) ] ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ("VBoxManage not found!"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[55])] ) (SimpleCommand words: [ {(echo)} { (DQ ( " Please ensure VirtualBox is installed and VBoxManage is on your system PATH." ) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[65])] ) (C {(exit)} {(1)}) ] spids: [-1 46] ) ] spids: [-1 74] ) (FuncDef name: check_version body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:MIN_MAJOR) op: Equal rhs: {(4)} spids: [87] ) ] spids: [85] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:MIN_MINOR) op: Equal rhs: {(3)} spids: [93] ) ] spids: [91] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(SQ <.>)} spids: [100] ) ] spids: [98] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(VBoxManage)} {(--version)})] ) left_token: <Left_CommandSub "$("> spids: [110 114] ) ) } spids: [108] ) ] spids: [106] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:version_array) op:Equal spids:[120])] spids: [118] ) (SimpleCommand words: [{(read)} {(-a)} {(version_array)}] redirects: [ (Redir op_id: Redir_TLess fd: -1 arg_word: {(DQ ($ VSub_Name "$version"))} spids: [129] ) ] ) (If arms: [ (if_arm cond: [ (Pipeline children: [ (DBracket expr: (LogicalOr left: (BoolBinary op_id: BoolBinary_gt left: { (DQ (BracedVarSub token: <VSub_Name version_array> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 0)}) ) spids: [144 149] ) ) } right: {(DQ ($ VSub_Name "$MIN_MAJOR"))} ) right: (LogicalAnd left: (BoolBinary op_id: BoolBinary_ge left: { (DQ (BracedVarSub token: <VSub_Name version_array> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 0)}) ) spids: [163 168] ) ) } right: {(DQ ($ VSub_Name "$MIN_MAJOR"))} ) right: (BoolBinary op_id: BoolBinary_ge left: { (DQ (BracedVarSub token: <VSub_Name version_array> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [182 187] ) ) } right: {(DQ ($ VSub_Name "$MIN_MINOR"))} ) ) ) ) ] negated: True ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ("ERROR: VirtualBox ") ($ VSub_Name "$version") (" is less than ") ($ VSub_Name "$MIN_MAJOR") (.) ($ VSub_Name "$MIN_MINOR") (".x!") ) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: -1 arg_word: {(2)} spids: [214] ) ] ) (SimpleCommand words: [ {(echo)} { (DQ (" Only VirtualBox >= ") ($ VSub_Name "$MIN_MAJOR") (.) ($ VSub_Name "$MIN_MINOR") (".x is officially supported.") ) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: -1 arg_word: {(2)} spids: [228] ) ] ) (C {(exit)} {(1)}) ] spids: [-1 199] ) ] spids: [-1 237] ) ] spids: [82] ) spids: [78 81] ) (C {(check_version)}) (C {(unset)} {(-f)} {(check_version)}) (C {(export)} {(Lit_VarLike "VBM=") (VBoxManage)}) ] spids: [-1 27] ) ] spids: [-1 260] ) ] )