(command.CommandList children: [ (C {<.>} {(${ Id.VSub_Name BACKEND) <'/functions.sh'>}) (C {<.>} {(${ Id.VSub_Name BACKEND) <'/functions-parse.sh'>}) (command.Sentence child: (command.ShFunction name: check_autologin body: (BraceGroup children: [ (C {<get_value_from_cfg>} {<autoLoginUser>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name VAL))} {<-a>} {(DQ (${ Id.VSub_Name INSTALLTYPE))} {<Id.Lit_Equals '='>} {(DQ <PCBSD>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:AUTOU) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name VAL))} spids: [146] ) ] ) (C {<sed>} {<-i.bak>} {(DQ <'s/AutoLoginUser=/AutoLoginUser='> (${ Id.VSub_Name AUTOU) <'/g'>)} {(${ Id.VSub_Name FSMNT) <'/usr/local/kde4/share/config/kdm/kdmrc'>} ) (C {<sed>} {<-i.bak>} {(DQ <'s/AutoLoginEnable=false/AutoLoginEnable=true/g'>)} {(${ Id.VSub_Name FSMNT) <'/usr/local/kde4/share/config/kdm/kdmrc'>} ) ] spids: [114 143] ) ] ) ] ) ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShFunction name: add_user body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARGS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Number 1))} spids: [212] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-e>} {(DQ (${ Id.VSub_Name FSMNT) <'/.tmpPass'>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<run_chroot_cmd>} {(DQ <'cat /.tmpPass | pw useradd '> (${ Id.VSub_Name ARGS))} ) (C {<rc_halt>} {(DQ <'rm '> (${ Id.VSub_Name FSMNT) <'/.tmpPass'>)}) ] spids: [221 237] ) ] else_action: [ (C {<run_chroot_cmd>} {(DQ <'cat /.tmpPass | pw useradd '> (${ Id.VSub_Name ARGS))}) ] ) ] ) ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShFunction name: setup_users body: (BraceGroup children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<line>})]) body: (command.DoGroup children: [ (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$line')}) (command.Simple words: [{<grep>} {<-q>} {(DQ <'^userName='>)}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<get_value_from_string>} {(DQ (${ Id.VSub_Name line))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USERNAME) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$VAL'))} spids: [358] ) ] ) ] spids: [333 346] ) ] ) (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$line')}) (command.Simple words: [{<grep>} {<-q>} {(DQ <'^userComment='>)}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<get_value_from_string>} {(DQ (${ Id.VSub_Name line))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USERCOMMENT) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$VAL'))} spids: [411] ) ] ) ] spids: [386 399] ) ] ) (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$line')}) (command.Simple words: [{<grep>} {<-q>} {(DQ <'^userPass='>)}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<get_value_from_string>} {(DQ (${ Id.VSub_Name line))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USERPASS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$VAL'))} spids: [464] ) ] ) ] spids: [439 452] ) ] ) (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$line')}) (command.Simple words: [{<grep>} {<-q>} {(DQ <'^userEncPass='>)}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<get_value_from_string>} {(DQ (${ Id.VSub_Name line))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USERENCPASS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$VAL'))} spids: [517] ) ] ) ] spids: [492 505] ) ] ) (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$line')}) (command.Simple words: [{<grep>} {<-q>} {(DQ <'^userShell='>)}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<get_value_from_string>} {(DQ (${ Id.VSub_Name line))}) (C {<strip_white_space>} {(DQ ($ Id.VSub_DollarName '$VAL'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USERSHELL) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$VAL'))} spids: [577] ) ] ) ] spids: [545 558] ) ] ) (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$line')}) (command.Simple words: [{<grep>} {<-q>} {(DQ <'^userHome='>)}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<get_value_from_string>} {(DQ (${ Id.VSub_Name line))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USERHOME) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$VAL'))} spids: [630] ) ] ) ] spids: [605 618] ) ] ) (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$line')}) (command.Simple words: [{<grep>} {<-q>} {(DQ <'^userGroups='>)}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<get_value_from_string>} {(DQ (${ Id.VSub_Name line))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USERGROUPS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$VAL'))} spids: [683] ) ] ) ] spids: [658 671] ) ] ) (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$line')}) (command.Simple words: [{<grep>} {<-q>} {(DQ <'^commitUser'>)}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name USERNAME))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARGS) op: assign_op.Equal rhs: {(DQ <'-n '> (${ Id.VSub_Name USERNAME))} spids: [755] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name USERCOMMENT))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARGS) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name ARGS) <' -c '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name USERCOMMENT) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } spids: [783] ) ] ) ] spids: [765 780] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name USERPASS))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARGS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name ARGS) <' -h 0'>)} spids: [820] ) ] ) (command.Simple words: [{<echo>} {(DQ (${ Id.VSub_Name USERPASS))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name FSMNT) <'/.tmpPass'>} ) ] do_fork: T ) ] spids: [802 817] ) (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name USERENCPASS))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARGS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name ARGS) <' -H 0'>)} spids: [863] ) ] ) (command.Simple words: [{<echo>} {(DQ (${ Id.VSub_Name USERENCPASS))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name FSMNT) <'/.tmpPass'>} ) ] do_fork: T ) ] spids: [844 860] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARGS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name ARGS) <' -h -'>)} spids: [890] ) ] ) (command.Simple words: [{<rm>} {(${ Id.VSub_Name FSMNT) <'/.tmpPass'>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name USERSHELL))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARGS) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name ARGS) <' -s '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name USERSHELL) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } spids: [935] ) ] ) ] spids: [917 932] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARGS) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name ARGS) <' -s '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) <'/nonexistant'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } spids: [952] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name USERHOME))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARGS) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name ARGS) <' -m -d '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name USERHOME) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } spids: [987] ) ] ) ] spids: [969 984] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name USERGROUPS))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARGS) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name ARGS) <' -G '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name USERGROUPS) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } spids: [1023] ) ] ) ] spids: [1005 1020] ) ] ) (C {<add_user>} {(DQ (${ Id.VSub_Name ARGS))}) (C {<unset>} {<USERNAME>} {<USERCOMMENT>} {<USERPASS>} {<USERENCPASS>} {<USERSHELL>} {<USERHOME>} {<USERGROUPS>} ) ] spids: [732 747] ) ] else_action: [ (C {<exit_err>} { (DQ < 'ERROR: commitUser was called without any userName= entry!!!' > ) } ) ] ) ] spids: [712 725] ) ] ) ] ) redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(${ Id.VSub_Name CFGF)} ) ] ) (C {<check_autologin>}) ] ) ) terminator: <Id.Op_Semi _> ) ] )