(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sysdir) op: assign_op.Equal rhs: {(/sys/class/net)} spids: [53] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netvsc_cls) op: assign_op.Equal rhs: {(Id.Lit_LBrace '{') (f8615163-df3e-46c5-913f-f2d2f965ed0e) (Id.Lit_RBrace '}')} spids: [56] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bondcnt) op: assign_op.Equal rhs: {(0)} spids: [61] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-f)} {(/etc/redhat-release)} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:77) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cfgdir) op: assign_op.Equal rhs: {(/etc/sysconfig/network-scripts)} spids: [82] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:distro) op: assign_op.Equal rhs: {(redhat)} spids: [86] ) ] ) ] spids: [68 79] ) (if_arm cond: [ (C {(grep)} {(-q)} {(SQ (Token id:Id.Lit_Chars val:Ubuntu span_id:96))} {(/etc/issue)}) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cfgdir) op: assign_op.Equal rhs: {(/etc/network)} spids: [104] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:distro) op: assign_op.Equal rhs: {(ubuntu)} spids: [108] ) ] ) ] spids: [89 101] ) (if_arm cond: [(C {(grep)} {(-q)} {(SQ (Token id:Id.Lit_Chars val:SUSE span_id:118))} {(/etc/issue)})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cfgdir) op: assign_op.Equal rhs: {(/etc/sysconfig/network)} spids: [126] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:distro) op: assign_op.Equal rhs: {(suse)} spids: [130] ) ] ) ] spids: [111 123] ) ] else_action: [ (C {(echo)} {(DQ ('Unsupported Distro'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:143) arg_word: {(1)} ) ] ) (C {(echo)} {(Detected)} {(Distro) (Id.Lit_Other ':')} {($ Id.VSub_DollarName '$distro') (Id.Lit_Comma ',')} {(or)} {(compatible)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:list_eth) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:169) words: [ { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:170) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(cd)} {($ Id.VSub_DollarName '$sysdir')}) (command.Pipeline children: [ (C {(ls)} {(-d)} {(Id.Lit_Star '*') (/)}) (C {(cut)} {(-d/)} {(-f1)}) (C {(grep)} {(-v)} {(bond)}) ] negated: F ) ] ) ] ) ) } ] ) } spids: [168] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:eth_cnt) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:list_eth span_id:207) prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } spids: [204] ) ] ) (C {(echo)} {(List)} {(of)} {(net)} {(devices) (Id.Lit_Other ':')}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:i) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:i span_id:238)) right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$eth_cnt')}) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i)) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: list_mac index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:257) command_list: (command.CommandList children: [ (C {(cat)} {($ Id.VSub_DollarName '$sysdir') (/) (braced_var_sub token: (Token id:Id.VSub_Name val:list_eth span_id:265) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) ) (/address) } ) ] ) ) } spids: [254] ) ] ) (C {(echo)} { (braced_var_sub token: (Token id:Id.VSub_Name val:list_eth span_id:279) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) ) (Id.Lit_Comma ',') } { (braced_var_sub token: (Token id:Id.VSub_Name val:list_mac span_id:287) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) ) } ) ] ) ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:i) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:i span_id:308)) right: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$eth_cnt')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i)) body: (command.DoGroup children: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:j) right: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:i span_id:332)) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:j span_id:337)) right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$eth_cnt')}) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:j)) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:list_mac span_id:360) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) ) ) } {(Id.Lit_Equals '=')} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:list_mac span_id:371) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$j')}) ) ) ) } {(Id.Lit_RBracket ']')} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: list_match index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:list_eth span_id:388) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$j')} ) ) ) } spids: [384] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:397) ) ] spids: [354 381] ) ] ) ] ) ) ] ) ) (command.ShFunction name: create_eth_cfg_redhat body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'fn=') ($ Id.VSub_DollarName '$cfgdir') (/ifcfg-) ($ Id.VSub_Number '$1') } ) (C {(rm)} {(-f)} {($ Id.VSub_DollarName '$fn')}) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'DEVICE=') ($ Id.VSub_Number '$1')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:436) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'TYPE=') (Ethernet)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:445) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'BOOTPROTO=') (none)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:454) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'ONBOOT=') (yes)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:463) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'NM_CONTROLLED=') (no)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:472) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'PEERDNS=') (yes)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:481) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'IPV6INIT=') (yes)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:490) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'MASTER=') ($ Id.VSub_Number '$2')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:499) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'SLAVE=') (yes)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:508) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) ] ) ) (command.ShFunction name: create_eth_cfg_pri_redhat body: (command.BraceGroup children: [(C {(create_eth_cfg_redhat)} {($ Id.VSub_Number '$1')} {($ Id.VSub_Number '$2')})] ) ) (command.ShFunction name: create_bond_cfg_redhat body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'fn=') ($ Id.VSub_DollarName '$cfgdir') (/ifcfg-) ($ Id.VSub_Number '$1') } ) (C {(rm)} {(-f)} {($ Id.VSub_DollarName '$fn')}) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'DEVICE=') ($ Id.VSub_Number '$1')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:558) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'TYPE=') (Bond)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:567) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'BOOTPROTO=') (dhcp)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:576) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'ONBOOT=') (yes)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:585) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'NM_CONTROLLED=') (no)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:594) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'PEERDNS=') (yes)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:603) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'IPV6INIT=') (yes)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:612) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'BONDING_MASTER=') (yes)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:621) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [ {(echo)} {(Id.Lit_VarLike 'BONDING_OPTS=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:628) ) (Id.Lit_VarLike 'mode=') (active-backup) } {(Id.Lit_VarLike 'miimon=') (100)} {(Id.Lit_VarLike 'primary=') ($ Id.VSub_Number '$2') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:637) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:639) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) ] ) ) (command.ShFunction name: create_eth_cfg_ubuntu body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'fn=') ($ Id.VSub_DollarName '$cfgdir') (/interfaces)}) (command.Simple words: [ {(echo)} { (single_quoted left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:662) tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:663)] ) (auto) } {($ Id.VSub_Number '$1')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:669) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(iface)} {($ Id.VSub_Number '$1')} {(inet)} {(manual)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:683) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(bond-master)} {($ Id.VSub_Number '$2')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:693) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) ] ) ) (command.ShFunction name: create_eth_cfg_pri_ubuntu body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'fn=') ($ Id.VSub_DollarName '$cfgdir') (/interfaces)}) (C {(create_eth_cfg_ubuntu)} {($ Id.VSub_Number '$1')} {($ Id.VSub_Number '$2')}) (command.Simple words: [{(echo)} {(bond-primary)} {($ Id.VSub_Number '$1')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:727) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) ] ) ) (command.ShFunction name: create_bond_cfg_ubuntu body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'fn=') ($ Id.VSub_DollarName '$cfgdir') (/interfaces)}) (command.Simple words: [ {(echo)} { (single_quoted left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:750) tokens: [(Token id:Id.Char_OneChar val:'\\n' span_id:751)] ) (auto) } {($ Id.VSub_Number '$1')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:757) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(iface)} {($ Id.VSub_Number '$1')} {(inet)} {(dhcp)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:771) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(bond-mode)} {(active-backup)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:781) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(bond-miimon)} {(100)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:791) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(bond-slaves)} {(none)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:801) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) ] ) ) (command.ShFunction name: create_eth_cfg_suse body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'fn=') ($ Id.VSub_DollarName '$cfgdir') (/ifcfg-) ($ Id.VSub_Number '$1') } ) (C {(rm)} {(-f)} {($ Id.VSub_DollarName '$fn')}) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'BOOTPROTO=') (none)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:835) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'STARTMODE=') (auto)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:844) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) ] ) ) (command.ShFunction name: create_eth_cfg_pri_suse body: (command.BraceGroup children:[(C {(create_eth_cfg_suse)} {($ Id.VSub_Number '$1')})]) ) (command.ShFunction name: create_bond_cfg_suse body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'fn=') ($ Id.VSub_DollarName '$cfgdir') (/ifcfg-) ($ Id.VSub_Number '$1') } ) (C {(rm)} {(-f)} {($ Id.VSub_DollarName '$fn')}) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'BOOTPROTO=') (dhcp)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:892) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'STARTMODE=') (auto)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:901) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'BONDING_MASTER=') (yes)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:910) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'BONDING_SLAVE_0=') ($ Id.VSub_Number '$2')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:919) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [{(echo)} {(Id.Lit_VarLike 'BONDING_SLAVE_1=') ($ Id.VSub_Number '$3')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:928) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) (command.Simple words: [ {(echo)} {(Id.Lit_VarLike 'BONDING_MODULE_OPTS=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:"\\'" span_id:935) ) (Id.Lit_VarLike 'mode=') (active-backup) } {(Id.Lit_VarLike 'miimon=') (100)} {(Id.Lit_VarLike 'primary=') ($ Id.VSub_Number '$2') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:"\\'" span_id:944) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:946) fd: -1 arg_word: {($ Id.VSub_DollarName '$fn')} ) ] ) ] ) ) (command.ShFunction name: create_bond body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'bondname=') (bond) ($ Id.VSub_DollarName '$bondcnt')}) (C {(local)} {(primary)}) (C {(local)} {(secondary)}) (C {(local)} {(Id.Lit_VarLike 'class_id1=') (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:980) command_list: (command.CommandList children: [ (command.Simple words: [ {(cat)} {($ Id.VSub_DollarName '$sysdir') (/) ($ Id.VSub_Number '$1') (/device/class_id) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:990) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } ) (C {(local)} {(Id.Lit_VarLike 'class_id2=') (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:998) command_list: (command.CommandList children: [ (command.Simple words: [ {(cat)} {($ Id.VSub_DollarName '$sysdir') (/) ($ Id.VSub_Number '$2') (/device/class_id) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:1008) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$class_id1'))} {(Id.Lit_Equals '=')} {(DQ ($ Id.VSub_DollarName '$netvsc_cls'))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:primary) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [1034] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:secondary) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1038] ) ] ) ] spids: [1014 1031] ) (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$class_id2'))} {(Id.Lit_Equals '=')} {(DQ ($ Id.VSub_DollarName '$netvsc_cls'))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:primary) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1062] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:secondary) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [1066] ) ] ) ] spids: [1042 1059] ) ] else_action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:1073) arg_word: {(0)} ) ] ) (C {(echo)} { (single_quoted left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:1084) tokens: [ (Token id:Id.Char_OneChar val:'\\n' span_id:1085) (Token id:Id.Char_Literals val:'Bond name:' span_id:1086) ] ) } {($ Id.VSub_DollarName '$bondname')} ) (C {(echo)} {(configuring)} {($ Id.VSub_DollarName '$primary')}) (C {(create_eth_cfg_pri_) ($ Id.VSub_DollarName '$distro')} {($ Id.VSub_DollarName '$primary')} {($ Id.VSub_DollarName '$bondname')} ) (C {(echo)} {(configuring)} {($ Id.VSub_DollarName '$secondary')}) (C {(create_eth_cfg_) ($ Id.VSub_DollarName '$distro')} {($ Id.VSub_DollarName '$secondary')} {($ Id.VSub_DollarName '$bondname')} ) (C {(echo)} {(creating) (Id.Lit_Other ':')} {($ Id.VSub_DollarName '$bondname')} {(with)} {(primary)} {(slave) (Id.Lit_Other ':')} {($ Id.VSub_DollarName '$primary')} ) (C {(create_bond_cfg_) ($ Id.VSub_DollarName '$distro')} {($ Id.VSub_DollarName '$bondname')} {($ Id.VSub_DollarName '$primary')} {($ Id.VSub_DollarName '$secondary')} ) (C {(let)} {(Id.Lit_VarLike 'bondcnt=') (bondcnt) (Id.Lit_Other '+') (1)}) ] ) ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:i) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:i span_id:1172)) right: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$eth_cnt')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i)) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:list_match span_id:1198) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) ) ) } {(Id.Lit_RBracket ']')} ) ] action: [ (C {(create_bond)} { (braced_var_sub token: (Token id:Id.VSub_Name val:list_eth span_id:1214) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) ) } { (braced_var_sub token: (Token id:Id.VSub_Name val:list_match span_id:1221) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) ) } ) ] spids: [1190 1208] ) ] ) ] ) ) ] )