(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\u00e1draig 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: False 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/") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (".*") (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ($ VSub_Name "$file") (Lit_Other "$") (/) (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) ("/;t") ) } spids: [208] ) ] spids: [208] ) ] spids: [205 222] ) 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: [237 241] ) } spids: [236] ) ] spids: [236] ) (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: False ) ] ) left_token: <Left_Backtick "`"> spids: [270 282] ) ("</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: False ) terminator: <Op_Semi ";"> ) ] spids: [291] ) spids: [287 290] ) (AndOr children: [ (Pipeline children: [ (C {(find)} {($ VSub_Number "$1")} {(-type)} {(f)} {(-printf)} { (DQ ("%p") (EscapedLiteralPart token:<Lit_EscapedChar "\\t">) ("%T@") (EscapedLiteralPart token:<Lit_EscapedChar "\\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: True ) 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: [419 424] ) } spids: [418] ) ] spids: [418] ) (AndOr children: [ (C {(Lit_Other "[")} {($ VSub_Name "$i")} {(-eq)} {($ VSub_Name "$num_files")} {(Lit_Other "]")} ) (ControlFlow token: <ControlFlow_Break break> ) ] op_id: Op_DAmp ) ] spids: [-1 408] ) ] spids: [-1 442] ) ] spids: [384 444] ) ) (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: [459 469] ) } spids: [458] ) ] spids: [458] ) (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: [473 485] ) } spids: [472] ) ] spids: [472] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:title) op: Equal rhs: {(DQ )} spids: [488] ) ] spids: [488] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keywords) op: Equal rhs: {(DQ )} spids: [493] ) ] spids: [493] ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:description) op: Equal rhs: {(DQ )} spids: [498] ) ] spids: [498] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name "$file"))}) (C {(grep)} {(-Eq)} {(SQ <"\\.(html|shtml|php)$">)}) ] negated: False ) 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: -1 arg_word: {(DQ ($ VSub_Name "$file"))} spids: [535] ) ] ) ] ) left_token: <Left_Backtick "`"> spids: [526 540] ) } spids: [525] ) ] spids: [525] ) (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: -1 arg_word: {(DQ ($ VSub_Name "$file"))} spids: [553] ) ] ) ] ) left_token: <Left_Backtick "`"> spids: [544 558] ) } spids: [543] ) ] spids: [543] ) (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: -1 arg_word: {(DQ ($ VSub_Name "$file"))} spids: [571] ) ] ) ] ) left_token: <Left_Backtick "`"> spids: [562 576] ) } spids: [561] ) ] spids: [561] ) (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: -1 arg_word: {(DQ ($ VSub_Name "$file"))} spids: [589] ) ] ) ] ) left_token: <Left_Backtick "`"> spids: [580 594] ) } spids: [579] ) ] spids: [579] ) (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: [597] ) ] spids: [597] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name "$extracted_text"))}) (C {(xml_unescaped)}) ] negated: False ) 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: -1 arg_word: {(2)} spids: [634] ) ] ) (C {(exit)} {(1)}) ] spids: [-1 623] ) ] spids: [-1 643] ) ] spids: [-1 522] ) (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: [666 678] ) } spids: [665] ) ] spids: [665] ) ] spids: [646 659] ) ] spids: [-1 681] ) (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: False ) ] ) left_token: <Left_Backtick "`"> spids: [685 699] ) } spids: [684] ) ] spids: [684] ) (AndOr 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: [714] ) ] spids: [714] ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tags) op:Equal rhs:{(DQ )} spids:[720])] spids: [720] ) (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: False 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>") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) (" ") ) } ) ] ) left_token: <Left_Backtick "`"> spids: [756 769] ) } spids: [755] ) ] spids: [755] ) ] spids: [752 772] ) spids: [748 750] ) ] spids: [-1 740] ) ] spids: [-1 775] ) (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: [812] ) ] spids: [812] ) ] spids: [-1 809] ) ] 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>") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) (" ") ) } ) ] ) left_token: <Left_Backtick "`"> spids: [821 833] ) } spids: [820] ) ] spids: [820] ) ] spids: [817 836] ) ] spids: [-1 789] ) ] spids: [-1 839] ) (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: [455 875] ) ) ] negated: False ) (C {(echo)} {(SQ <"</channel>\n"> <"</rss>">)}) ] op_id: Op_DAmp ) ] )