(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgname) op: assign_op.Equal rhs: {<uwsgi>} spids: [12] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgver) op: assign_op.Equal rhs: {<2.0.15>} spids: [15] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgrel) op: assign_op.Equal rhs: {<0>} spids: [18] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgdesc) op: assign_op.Equal rhs: {(DQ <'uWSGI application container server'>)} spids: [21] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:url) op: assign_op.Equal rhs: {(DQ <'http://projects.unbit.it/uwsgi/'>)} spids: [26] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arch) op: assign_op.Equal rhs: {(DQ <all>)} spids: [31] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:license) op: assign_op.Equal rhs: {(DQ <GPL2>)} spids: [36] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:depends) op: assign_op.Equal rhs: {(DQ <mailcap>)} spids: [41] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:install) op: assign_op.Equal rhs: {(DQ <uwsgi.pre-install>)} spids: [46] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgusers) op: assign_op.Equal rhs: {(DQ <uwsgi>)} spids: [51] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkggroups) op: assign_op.Equal rhs: {(DQ <uwsgi>)} spids: [56] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:makedepends) op: assign_op.Equal rhs: { (DQ <'\n'> <'\tattr-dev\n'> <'\tcurl-dev\n'> <'\tgeoip-dev\n'> <'\tjansson-dev\n'> <'\tlibcap-dev\n'> <'\tlinux-headers\n'> <'\tlinux-pam-dev\n'> <'\tlibxml2-dev\n'> <'\tlibxslt-dev\n'> <'\tlua5.2-dev\n'> <'\tpaxmark\n'> <'\tpcre-dev\n'> <'\tpostgresql-dev\n'> <'\tpython\n'> <'\tpython2-dev\n'> <'\tpython3-dev\n'> <'\tzeromq-dev\n'> <'\tzlib-dev\n'> <'\t'> ) } spids: [61] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:source) op: assign_op.Equal rhs: { (DQ <'http://projects.unbit.it/downloads/uwsgi-'> (${ Id.VSub_Name pkgver) <'.tar.gz\n'> <'\tuwsgi.initd\n'> <'\tuwsgi.ini\n'> <'\treadme.emperor\n'> <'\talpine.buildconf\n'> <'\tmusl-fix-python.patch\n'> <'\t'> ) } spids: [85] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:builddir) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$srcdir') </> ($ Id.VSub_DollarName '$pkgname') <-> ($ Id.VSub_DollarName '$pkgver') ) } spids: [100] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_plugins) op: assign_op.Equal rhs: { (DQ <'\n'> <'\talarm_curl\n'> <'\tcache\n'> <'\tcarbon\n'> <'\tcgi\n'> <'\tcheaper_backlog2\n'> <'\tcheaper_busyness\n'> <'\tcorerouter\n'> <'\tcurl_cron\n'> <'\tdumbloop\n'> <'\tdummy\n'> <'\techo\n'> <'\temperor_amqp\n'> <'\temperor_pg\n'> <'\temperor_zeromq\n'> <'\tfastrouter\n'> <'\tforkptyrouter\n'> <'\tgeoip\n'> <'\tgevent\n'> <'\tgraylog2\n'> <'\thttp\n'> <'\tlegion_cache_fetch\n'> <'\tlogcrypto\n'> <'\tlogfile\n'> <'\tlogpipe\n'> <'\tlogsocket\n'> <'\tlogzmq\n'> <'\tlua\n'> <'\tmsgpack\n'> <'\tnagios\n'> <'\tnotfound\n'> <'\tpam\n'> <'\tping\n'> <'\tpty\n'> <'\tpython\n'> <'\trawrouter\n'> <'\tredislog\n'> <'\trouter_basicauth\n'> <'\trouter_cache\n'> <'\trouter_expires\n'> <'\trouter_hash\n'> <'\trouter_http\n'> <'\trouter_memcached\n'> <'\trouter_metrics\n'> <'\trouter_radius\n'> <'\trouter_redirect\n'> <'\trouter_redis\n'> <'\trouter_rewrite\n'> <'\trouter_static\n'> <'\trouter_uwsgi\n'> <'\trpc\n'> <'\trrdtool\n'> <'\trsyslog\n'> <'\tsignal\n'> <'\tspooler\n'> <'\tsslrouter\n'> <'\tstats_pusher_file\n'> <'\tstats_pusher_socket\n'> <'\tstats_pusher_statsd\n'> <'\tsymcall\n'> <'\tsyslog\n'> <'\ttransformation_chunked\n'> <'\ttransformation_gzip\n'> <'\ttransformation_offload\n'> <'\ttransformation_template\n'> <'\ttransformation_tofile\n'> <'\ttuntap\n'> <'\tugreen\n'> <'\twebdav\n'> <'\txslt\n'> <'\tzabbix\n'> <'\tzergpool\n'> <'\t'> ) } spids: [116] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_plugins3) op: assign_op.Equal rhs: {(DQ <'gevent:gevent3 python:python3'>)} spids: [199] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:subpackages) op: assign_op.Equal rhs: {(DQ )} spids: [205] ) ] ) (command.ForEach iter_name: _p iter_words: [{($ Id.VSub_DollarName '$_plugins')} {($ Id.VSub_DollarName '$_plugins3')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:subpackages) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$subpackages') <' uwsgi-'> (braced_var_sub token: <Id.VSub_Name _p> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{<'*:'>}) ) <':_plugin'> ) } spids: [223] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_desc_gevent) op: assign_op.Equal rhs: {(DQ <'uWSGI plugin for gevent (Python 2)'>)} spids: [238] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_desc_gevent3) op: assign_op.Equal rhs: {(DQ <'uWSGI plugin for gevent (Python 3)'>)} spids: [243] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_desc_python) op: assign_op.Equal rhs: {(DQ <'uWSGI plugin for Python 2'>)} spids: [248] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_desc_python3) op: assign_op.Equal rhs: {(DQ <'uWSGI plugin for Python 3'>)} spids: [253] ) ] ) (command.ShFunction name: prepare body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<default_prepare>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<cp>} {(DQ ($ Id.VSub_DollarName '$srcdir')) </alpine.buildconf>} {<buildconf/alpine.ini>} ) ] ) ) (command.ShFunction name: build body: (command.BraceGroup children: [ (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))}) (C {<msg>} {(DQ <'Building core'>)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<python2>} {<uwsgiconfig.py>} {<--build>} {<alpine>}] more_env: [(env_pair name:CC val:{(DQ <gcc>)} spids:[314])] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<export>} {<Id.Lit_VarLike 'UWSGICONFIG_LUAPC='> (DQ <lua5.2>)}) (C {<local>} {<item>}) (command.ForEach iter_name: item iter_words: [{($ Id.VSub_DollarName '$_plugins')}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_build>} {<python>} {(DQ ($ Id.VSub_DollarName '$item'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] ) ) (command.ForEach iter_name: item iter_words: [{($ Id.VSub_DollarName '$_plugins3')}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<_build>} {<python3>} {(DQ ($ Id.VSub_DollarName '$item'))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] ) ) ] ) ) (command.ShFunction name: _build body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'python='> (DQ ($ Id.VSub_Number '$1'))}) (C {<local>} {<Id.Lit_VarLike 'plugin='> (DQ (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{<':*'>}) ) ) } ) (C {<local>} {<Id.Lit_VarLike 'myname='> (DQ (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{<'*:'>}) ) ) } ) (C {<msg>} { (DQ <'Building '> ($ Id.VSub_DollarName '$plugin') <' plugin ('> ($ Id.VSub_DollarName '$myname') <')'> ) } ) (C {($ Id.VSub_DollarName '$python')} {<uwsgiconfig.py>} {<--plugin>} {<plugins/> ($ Id.VSub_DollarName '$plugin')} {<alpine>} {($ Id.VSub_DollarName '$myname')} ) ] ) ) (command.ShFunction name: package body: (command.BraceGroup children: [ (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<install>} {<-m>} {<755>} {<-D>} {<uwsgi>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) </usr/sbin/uwsgi>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<install>} {<-m>} {<644>} {<-D>} {(DQ ($ Id.VSub_DollarName '$srcdir')) </readme.emperor>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) </etc/uwsgi/conf.d/readme.emperor>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<install>} {<-m>} {<644>} {<-D>} {(DQ ($ Id.VSub_DollarName '$srcdir')) </uwsgi.ini>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) </etc/uwsgi/uwsgi.ini>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<install>} {<-m>} {<755>} {<-D>} {(DQ ($ Id.VSub_DollarName '$srcdir')) </uwsgi.initd>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) </etc/init.d/uwsgi>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<install>} {<-m>} {<775>} {<-d>} {<-o>} {<root>} {<-g>} {<uwsgi>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) </var/log/uwsgi>} ) (C {<paxmark>} {<-em>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) </usr/sbin/uwsgi>}) ] ) ) (command.ShFunction name: _plugin body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'name='> (DQ (braced_var_sub token: <Id.VSub_Name subpkgname> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {($ Id.VSub_DollarName '$pkgname') <->} ) ) ) } ) (C {<local>} {<Id.Lit_VarLike 'desc='> (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<eval>} { (DQ <'echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <_desc_> ($ Id.VSub_DollarName '$name') ) } ) ] ) ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgdesc) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name desc> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(DQ <'uWSGI plugin '> ($ Id.VSub_DollarName '$name'))} ) ) ) } spids: [675] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:depends) op: assign_op.Equal rhs: {(DQ <uwsgi>)} spids: [688] ) ] ) (C {<cd>} {(DQ ($ Id.VSub_DollarName '$builddir'))}) (C {<local>} {<Id.Lit_VarLike 'requires='> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {<sed>} {(SQ <'$a print(" ".join(REQUIRES))'>)} {<plugins/> ($ Id.VSub_DollarName '$name') </uwsgiplugin.py>} ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) (command.Simple words: [{<python3>}] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) ] negated: F ) ] ) ) } ) (command.Sentence child:(C {<local>} {<req>}) terminator:<Id.Op_Semi _>) (command.ForEach iter_name: req iter_words: [{($ Id.VSub_DollarName '$requires')}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$_plugins'))}) (C {<grep>} {<-qw>} {(DQ ($ Id.VSub_DollarName '$req'))}) ] negated: F ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:depends) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$depends') <' '> ($ Id.VSub_DollarName '$pkgname') <-> ($ Id.VSub_DollarName '$req') ) } spids: [771] ) ] ) ] spids: [749 768] ) ] else_action: [ (C {<error>} { (DQ <"There's no subpackage for requirement "> ($ Id.VSub_DollarName '$req') <'!'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<install>} {<-m>} {<755>} {<-D>} {(${ Id.VSub_Name name) <_plugin.so>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) </usr/lib/uwsgi/> (${ Id.VSub_Name name) <_plugin.so> } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sha512sums) op: assign_op.Equal rhs: { (DQ < 'cb3ce7dc9eb9806151b04b04dc80ac7204cb4ddadf295eea98d5ebbf3a8c02f4b0bfb9a0490997c5edf427e39d3073a2d5b4fe7bd8ec458b30c0aab8e1da9bef uwsgi-2.0.15.tar.gz\n' > < '63137d45437e00deb970d66e2abddf7f235636b748f6cf545f54ff5557066c2a71db5c4a3bab2edceb4e65d3d7fac887f1f4c0e77658127e02b64d3026780b4c uwsgi.initd\n' > < '370202e143d0e041a2e36905346080d3ca592c9a74705a8c4e142a1307d22b921c10e673d683ca284ea27d184474ed86edd7723a6e590d35a562ad7cf6afa529 uwsgi.ini\n' > < '2798c9d2e49e29292ffe6a5a29b866301c78d5f322fc5d07dfa9569efdaa5220237a5f6744652fbdd957be29311ddaff190541333f042cbf0e907dfa98ce3e2a readme.emperor\n' > < 'f3cff00926929a5bb40afafb65fd5228582af35fbf524562282020c4c4ae9c659231b2381f4b3cceb18e8f3f6c888c21bdd8ed4ddcd81e92fbc6a0891800ce38 alpine.buildconf\n' > < 'de68b16b44e554a79c073c9befa10566796316dbf4c375b4d6b633d80b0282694cca233f0a70f3d6570584324f14276826bbeb8f38b550c00087a05f9ba9227f musl-fix-python.patch' > ) } spids: [838] ) ] ) ] )