(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:num_files) op:Equal rhs:{(10)} spids:[125])] spids: [125] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:site) op: Equal rhs: {(DQ (www.pixelbeat.org))} spids: [128] ) ] spids: [128] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:author) op: Equal rhs: {(DQ ('P@draigBrady.com (P\xc3\xa1draig Brady)'))} spids: [133] ) ] spids: [133] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:suggested_update_freq) op: Equal rhs: {(1440)} spids: [138] ) ] spids: [138] ) (C {(Lit_Other ':')} { (BracedVarSub token: <VSub_Name TITLE> suffix_op: (StringUnary op_id:VTest_Equals arg_word:{($ VSub_Name '$site')}) spids: [147 151] ) } ) (C {(Lit_Other ':')} { (BracedVarSub token: <VSub_Name DESCRIPTION> suffix_op: (StringUnary op_id: VTest_Equals arg_word: {(DQ ('latest from ') ($ VSub_Name '$site'))} ) spids: [155 162] ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:include_re) op: Equal rhs: {(SQ <'(^|/)[.].+|(^|/)[^.]+$|[.](c|cpp|py|sh|rc|tips|fortune|html)$'>)} spids: [168] ) ] spids: [168] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:exclude_re) op: Equal rhs: { (SQ < '(\\.git/|priv/|tmp/|.htaccess|xvpics|timeline\\.html|modified\\.html|head\\.html|header\\.html|footer\\.html|footer-home\\.html|adds\\.html|last\\.html|fslint/(NEWS\\.html|md5sum)|README)' > ) } spids: [177] ) ] spids: [177] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:default_files) op: Equal rhs: {(DQ ('index.html index.shtml index.php'))} spids: [186] ) ] spids: [186] ) (ForEach iter_name: file iter_words: [{($ VSub_Name '$default_files')}] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:replace_default_files) op: Equal rhs: { (DQ ($ VSub_Name '$replace_default_files') ('; s/') (Lit_Other '\\') ('(.*') (Lit_Other '\\') (')') ($ VSub_Name '$file') (Lit_Other '$') (/) (Lit_Other '\\') ('1/;t') ) } spids: [208] ) ] spids: [208] ) ] spids: [205 223] ) spids: [201 203] ) (C {(echo)} { (SQ <'<?xml version="1.0" encoding="utf-8"?>\n'> <'<?xml-stylesheet type="text/css" href="rss2.css" ?>\n'> <'\n'> <'<rss version="2.0">\n'> <'<channel>'> ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:time) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(date)} {(--rfc-2822)})]) left_token: <Left_Backtick '`'> spids: [238 242] ) } spids: [237] ) ] spids: [237] ) (C {(echo)} { (DQ ('\n') ('<title>') ($ VSub_Name '$TITLE') ('</title>\n') ('<ttl>') ($ VSub_Name '$suggested_update_freq') ('</ttl>\n') ('<link>http://') ($ VSub_Name '$site') (/) ($ VSub_Number '$1') ('</link>\n') ('<generator>http://www.pixelbeat.org/scripts/bashfeed</generator>\n') ('<description>') ($ VSub_Name '$DESCRIPTION') ('</description>\n') ('<managingEditor>') ($ VSub_Name '$author') ('</managingEditor>\n') ('<lastBuildDate>') ($ VSub_Name '$time') ('</lastBuildDate>\n') ('<language>') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$LANG')}) (C {(sed)} {(SQ <'s/\\(..\\)_.*/\\1/'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [271 283] ) ('</language>\n') ) } ) (FuncDef name: xml_unescaped body: (BraceGroup children: [ (Sentence child: (Pipeline children: [ (C {(sed)} {(SQ <'s/&//g; s/&[lg]t;//g; s/"//g'>)}) (C {(grep)} {(-q)} {(DQ ('[&<>]'))}) ] negated: F ) terminator: <Op_Semi ';'> ) ] spids: [292] ) spids: [288 291] ) (AndOr ops: [Op_DAmp] children: [ (Pipeline children: [ (C {(find)} {($ VSub_Number '$1')} {(-type)} {(f)} {(-printf)} {(DQ ('%p') (Lit_Other '\\') ('t%T@') (Lit_Other '\\') (n))} ) (C {(sed)} {(SQ <'s/^\\.\\///'>)}) (C {(sort)} {(-k2) (Lit_Comma ',') (2nr)}) (C {(cut)} {(-f1)}) (C {(grep)} {(-E)} {(DQ ($ VSub_Name '$include_re'))}) (C {(grep)} {(-Ev)} {(DQ ($ VSub_Name '$exclude_re'))}) (While cond: [(Sentence child:(C {(read)} {(file)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(head)} {(DQ ($ VSub_Name '$file'))}) (C {(grep)} {(-Fiq)} {(SQ <'<!--Exclude from bashfeed-->'>)}) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ($ VSub_Name '$file'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [421 426] ) } spids: [420] ) ] spids: [420] ) (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {($ VSub_Name '$i')} {(-eq)} {($ VSub_Name '$num_files')} {(Lit_Other ']')} ) (ControlFlow token: <ControlFlow_Break break> ) ] ) ] spids: [16777215 410] ) ] spids: [16777215 444] ) ] spids: [386 446] ) ) (While cond: [(Sentence child:(C {(read)} {(file)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pubDate) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(date)} {(--reference) (Lit_Other '=') (DQ ($ VSub_Name '$file'))} {(--rfc-2822)} ) ] ) left_token: <Left_Backtick '`'> spids: [461 471] ) } spids: [460] ) ] spids: [460] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:force_update) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(date)} {(--reference) (Lit_Other '=') (DQ ($ VSub_Name '$file'))} {(DQ ('+%s'))} ) ] ) left_token: <Left_Backtick '`'> spids: [475 487] ) } spids: [474] ) ] spids: [474] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:title) op: Equal rhs: {(DQ )} spids: [490] ) ] spids: [490] ) terminator: <Op_Semi ';'> ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keywords) op: Equal rhs: {(DQ )} spids: [495] ) ] spids: [495] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:description) op: Equal rhs: {(DQ )} spids: [500] ) ] spids: [500] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$file'))}) (C {(grep)} {(-Eq)} {(SQ <'\\.(html|shtml|php)$'>)}) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:title) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(sed)} {(-n)} { (SQ < 's/.*<title>\\(.*\\)<\\/title>.*/\\1/ip;T;q' > ) } ] redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Name '$file'))} spids: [537] ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [528 542] ) } spids: [527] ) ] spids: [527] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keywords) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(sed)} {(-n)} { (SQ < 's/.*<META.*NAME="keywords".*CONTENT="\\(.*\\)".*/\\1/ip;T;q' > ) } ] redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Name '$file'))} spids: [555] ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [546 560] ) } spids: [545] ) ] spids: [545] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:description) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(sed)} {(-n)} { (SQ < 's/.*<META.*NAME="description".*CONTENT="\\(.*\\)".*/\\1/ip;T;q' > ) } ] redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Name '$file'))} spids: [573] ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [564 578] ) } spids: [563] ) ] spids: [563] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:page_author) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(sed)} {(-n)} { (SQ < 's/.*<META.*NAME="author".*CONTENT="\\(.*\\)".*/\\1/ip;T;q' > ) } ] redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Name '$file'))} spids: [591] ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [582 596] ) } spids: [581] ) ] spids: [581] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:extracted_text) op: Equal rhs: { (DQ ($ VSub_Name '$title') (' ') ($ VSub_Name '$keywords') (' ') ($ VSub_Name '$description') (Lit_Other '$') (' ') ($ VSub_Name '$page_author') ) } spids: [599] ) ] spids: [599] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$extracted_text'))}) (C {(xml_unescaped)}) ] negated: F ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ('Error: HTML metadata in ') ($ VSub_Name '$file') (' will not produce a valid XML feed') ) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [636] ) ] ) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 625] ) ] spids: [16777215 645] ) ] spids: [16777215 524] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-x)} {(DQ ($ VSub_Name '$file'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:description) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(sed)} {(-n)} {(SQ <'3s/# \\(.*\\)/\\1/p'>)} {(DQ ($ VSub_Name '$file'))} ) ] ) left_token: <Left_Backtick '`'> spids: [668 680] ) } spids: [667] ) ] spids: [667] ) ] spids: [648 661] ) ] spids: [16777215 683] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$file'))}) (C {(sed)} {(DQ ($ VSub_Name '$replace_default_files'))}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [687 701] ) } spids: [686] ) ] spids: [686] ) (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$title'))} {(Lit_Other ']')}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:title) op: Equal rhs: {(DQ ($ VSub_Name '$file'))} spids: [716] ) ] spids: [716] ) ] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tags) op:Equal rhs:{(DQ )} spids:[722])] spids: [722] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_Name '$keywords'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (ForEach iter_name: keyword iter_words: [{($ VSub_Name '$keywords')}] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tags) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(echo)} {(-ne)} { (DQ ($ VSub_Name '$tags') ('<category>') ($ VSub_Name '$keyword') ('</category>') (Lit_Other '\\') ('n ') ) } ) ] ) left_token: <Left_Backtick '`'> spids: [758 771] ) } spids: [757] ) ] spids: [757] ) ] spids: [754 774] ) spids: [750 752] ) ] spids: [16777215 742] ) ] spids: [16777215 777] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$page_author'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$page_author'))} {(Lit_Other '=')} {(DQ ($ VSub_Name '$author'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:page_author) op: Equal rhs: {(DQ )} spids: [814] ) ] spids: [814] ) ] spids: [16777215 811] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:page_author) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(echo)} {(-ne)} { (DQ ('<author>') ($ VSub_Name '$page_author') ('</author>') (Lit_Other '\\') ('n ') ) } ) ] ) left_token: <Left_Backtick '`'> spids: [823 835] ) } spids: [822] ) ] spids: [822] ) ] spids: [819 838] ) ] spids: [16777215 791] ) ] spids: [16777215 841] ) (C {(echo)} { (DQ ('\n') ('<item>\n') (' <title>') ($ VSub_Name '$title') ('</title>\n') (' <guid>http://') ($ VSub_Name '$site') (/) ($ VSub_Name '$file') ('</guid>\n') (' <pubDate>') ($ VSub_Name '$pubDate') ('</pubDate>\n') (' <link>http://') ($ VSub_Name '$site') (/) ($ VSub_Name '$file') ('#') ($ VSub_Name '$force_update') ('</link>\n') (' ') ($ VSub_Name '$page_author') ($ VSub_Name '$tags') ('<description><![CDATA[') ($ VSub_Name '$description') ('<!--') ($ VSub_Name '$force_update') ('-->]]></description>\n') ('</item>\n') ) } ) ] spids: [457 877] ) ) ] negated: F ) (C {(echo)} {(SQ <'</channel>\n'> <'</rss>'>)}) ] ) ] )