(command.CommandList children: [ (command.Simple blame_tok: <cube_echo> more_env: [] words: [{<cube_echo>} {(DQ <'Hello World'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cube_package> more_env: [] words: [{<cube_package>} {<install>} {<atop>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cube_service> more_env: [] words: [{<cube_service>} {<enable>} {<atop>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cube_service> more_env: [] words: [{<cube_service>} {<start>} {<atop>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <cube_command_exists> more_env: [] words: [{<cube_command_exists>} {<dnf>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.Simple blame_tok: <dnf> more_env: [] words: [{<dnf>} {<check-update>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cube_check_return> more_env: [] words: [{<cube_check_return>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] spids: [33 41] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <cube_ensure_directory> more_env: [] words: [{<cube_ensure_directory>} {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) <'/test/'>}] redirects: [] do_fork: T ) (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <cube_read_heredoc> more_env: [] words: [{<cube_read_heredoc>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <HEREDOC>)} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'[app]\n'> <'name=${cubevar_app_name}\n'> <'test=${cubevar_app_test}\n'> ] ) ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'cubevar_app_myconfig='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cubevar_app_myconfig='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'cubevar_app_myconfig='> name: cubevar_app_myconfig ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name cube_read_heredoc_result))} ) ] redirects: [] ) ] ) (command.ShAssignment left: <Id.Lit_VarLike 'cubevar_app_name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cubevar_app_name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cubevar_app_name='> name:cubevar_app_name) op: assign_op.Equal rhs: {(DQ <'Hello World'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'cubevar_app_test='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cubevar_app_test='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cubevar_app_test='> name:cubevar_app_test) op: assign_op.Equal rhs: { (DQ <'{ host: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cube_hostname> more_env: [] words: [{<cube_hostname>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <', random: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cube_random_number> more_env: [] words: [{<cube_random_number>} {<10>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <', memory: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cube_total_memory> more_env: [] words: [{<cube_total_memory>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <', ip: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cube_interface_ipv4_address> more_env: [] words: [{<cube_interface_ipv4_address>} {<eth0>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <' }'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <cube_set_file_contents_string> more_env: [] words: [ {<cube_set_file_contents_string>} {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) <'/test/test.cfg'>} {(DQ (${ Id.VSub_Name cubevar_app_myconfig))} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.Simple blame_tok: <chmod> more_env: [] words: [ {<chmod>} {<600>} {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) <'/test/test.cfg'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cube_check_return> more_env: [] words: [{<cube_check_return>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] spids: [112 127] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.Simple blame_tok: <cube_has_role> more_env: [] words: [{<cube_has_role>} {(DQ <production>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cube_file_contains> more_env: [] words: [ {<cube_file_contains>} {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) <'/test/test.cfg'>} {(DQ <'ip: 10'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cube_throw> more_env: [] words: [{<cube_throw>} {(DQ <'Production role on test box'>)}] redirects: [] do_fork: T ) ] spids: [148 169] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] )