(List (Com {[LIT_CHARS hash]} {[LIT_CHARS -r]}) (= scope= flags=0 words=[] bindings=[('PROG', {[VarSub 0 transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "*"] [LIT_SLASH /]}]]})]) (FunctionDef usage [] (List (= scope= flags=0 words=[] bindings=[('ret', {[VarSub 1 test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 0]}]})]) (If (Com {[LIT_OTHER "["]} {[VarSub ret]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS exec]} < (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 3), > ) (ElseTrue) (Com {[LIT_CHARS exec]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 3), > ) ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EoF' do_expansion=True body_word={[DQ [VarSub PROG][LIT_CHARS " path-to-keyfile\n"]]} 0), (DescriptorRedirectNode target={[LIT_CHARS 3]} &"> 1), > ) (Com {[LIT_CHARS exec]} < (DescriptorRedirectNode target={[LIT_CHARS -]} &"> 3), > ) (Com {[LIT_CHARS exit]} {[VarSub ret]}) ) ) (= scope= flags=0 words=[] bindings=[('keypath', {[DQ [VarSub 1 test_op=VS_TEST_COLON_HYPHEN {[VarSub HOME] [LIT_SLASH /] [LIT_CHARS .ssh] [LIT_SLASH /] [LIT_CHARS id_rsa.bcpc]}]]})]) (= scope= flags=0 words=[] bindings=[('distroot', {[LIT_CHARS /var/www/cobbler/pub/keys]})]) (Pipeline (Com {[LIT_CHARS yes]}) (Com {[LIT_CHARS ssh-keygen]} {[LIT_CHARS -N]} {[SQ ]} {[LIT_CHARS -f]} {[DQ [VarSub keypath]]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub SUDO_UID]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS chown]} {[DQ [VarSub SUDO_UID]]} {[DQ [VarSub keypath]]}) ) (Com {[LIT_CHARS install]} {[LIT_CHARS -D]} {[DQ [VarSub keypath][LIT_CHARS .pub]]} {[DQ [VarSub distroot][LIT_CHARS /root]]}) )