(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgname) op: assign_op.Equal rhs: {<seafile>} spids: [6] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgver) op: assign_op.Equal rhs: {<4.2.6>} spids: [9] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgrel) op: assign_op.Equal rhs: {<3>} spids: [12] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgdesc) op: assign_op.Equal rhs: { (DQ < 'Cloud storage system with advanced support for file syncing, privacy protection and teamwork' > ) } spids: [15] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:url) op: assign_op.Equal rhs: {(DQ <'https://github.com/haiwen/seafile/'>)} spids: [20] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arch) op: assign_op.Equal rhs: {(DQ <all>)} spids: [25] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:license) op: assign_op.Equal rhs: {(DQ <GPL3>)} spids: [30] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:makedepends) op: assign_op.Equal rhs: { (DQ <'autoconf automake bash ccnet-dev curl-dev fuse-dev glib-dev\n'> <'\tintltool jansson-dev libarchive-dev libevent-dev libevhtp-dev\n'> <'\tlibsearpc-dev libtool libzdb-dev openssl-dev sqlite-dev util-linux-dev\n'> <'\tvala bsd-compat-headers libevhtp-dev'> ) } spids: [35] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:depends) op: assign_op.Equal rhs: {(DQ <'bash '> (${ Id.VSub_Name pkgname) <-common>)} spids: [43] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgusers) op: assign_op.Equal rhs: {(DQ <seafile>)} spids: [52] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkggroups) op: assign_op.Equal rhs: {(DQ <seafile>)} spids: [57] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:source) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$pkgname') <-> ($ Id.VSub_DollarName '$pkgver') <'.tar.gz::https://github.com/haiwen/seafile/archive/v'> (${ Id.VSub_Name pkgver) <'.tar.gz\n'> < ' seafile-controller.patch seafile-scripts.patch seafile.initd seafile.confd' > ) } spids: [62] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:subpackages) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$pkgname') <'-dev '> ($ Id.VSub_DollarName '$pkgname') <'-doc py-'> ($ Id.VSub_DollarName '$pkgname') <':py '> ($ Id.VSub_DollarName '$pkgname') <'-server\n'> <'\t'> ($ Id.VSub_DollarName '$pkgname') <-common> ) } spids: [75] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:install) op: assign_op.Equal rhs: {(DQ <'seafile-server.pre-install seafile-server.post-install'>)} spids: [90] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_builddir) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name srcdir) <'/'> (${ Id.VSub_Name pkgname) <-> (${ Id.VSub_Name pkgver)) } spids: [96] ) ] ) (command.ShFunction name: prepare body: (BraceGroup children: [ (C {<local>} {<pf>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cd>} {(DQ (${ Id.VSub_Name _builddir))}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.ForEach iter_name: pf iter_words: [{($ Id.VSub_DollarName '$source')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$pf')} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <.patch>}] action: [ (command.Sentence child: (C {<msg>} {($ Id.VSub_DollarName '$pf')}) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<patch>} {<-p1>} {<-i>} {(DQ ($ Id.VSub_DollarName '$srcdir')) <'/'> (${ Id.VSub_Name pf)} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] spids: [158 160 186 -1] ) ] ) ] ) ) ] ) ) (command.ShFunction name: build body: (BraceGroup children: [ (C {<cd>} {(DQ (${ Id.VSub_Name _builddir))}) (C {<'./autogen.sh'>}) (C {<'./configure'>} {<--prefix> <Id.Lit_Equals '='> <'/usr'>} {<--sysconfdir> <Id.Lit_Equals '='> <'/etc'>} {<--mandir> <Id.Lit_Equals '='> <'/usr/share/man'>} {<--infodir> <Id.Lit_Equals '='> <'/usr/share/info'>} {<--enable-server>} {<--enable-python>} {<--enable-fuse>} {<--enable-client>} {<--enable-console>} ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<make>} {<Id.Lit_VarLike 'CFLAGS='> (DQ ($ Id.VSub_DollarName '$CFLAGS') <' '> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<pkgconf>} {<--cflags>} {<evhtp>}) ) ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] ) ) (command.ShFunction name: package body: (BraceGroup children: [ (C {<cd>} {(DQ (${ Id.VSub_Name _builddir))}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<make>} {<Id.Lit_VarLike 'DESTDIR='> (DQ (${ Id.VSub_Name pkgdir))} {<install>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<rm>} {(DQ (${ Id.VSub_Name pkgdir)) <'/usr/lib/libseafile.la'>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] ) ) (command.ShFunction name: py body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arch) op: assign_op.Equal rhs: {(DQ <noarch>)} spids: [346] ) ] ) (C {<cd>} {(DQ ($ Id.VSub_DollarName '$_builddir'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pkgdesc) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$pkgname') <' python bindings'>)} spids: [359] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<install>} {<-d>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/lib'>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mv>} {(DQ ($ Id.VSub_DollarName '$pkgdir')) <'/usr/lib/python'> <Id.Lit_Star '*'>} {(DQ ($ Id.VSub_DollarName '$subpkgdir')) <'/usr/lib/'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] ) ) (command.ShFunction name: common body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name subpkgdir)) <'/usr/bin'>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name subpkgdir)) <'/usr/lib'>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (C {<mv>} {(DQ (${ Id.VSub_Name pkgdir)) <'/usr/bin/seafile'>} {(DQ (${ Id.VSub_Name subpkgdir)) <'/usr/bin'>} ) (C {<mv>} {(DQ (${ Id.VSub_Name pkgdir)) <'/usr/lib/libseafile.so.0'> <Id.Lit_Star '*'>} {(DQ (${ Id.VSub_Name subpkgdir)) <'/usr/lib'>} ) ] ) ) (command.ShFunction name: server body: (BraceGroup children: [ (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name subpkgdir)) <'/usr/bin'>}) (command.ForEach iter_name: b iter_words: [{(DQ (${ Id.VSub_Name pkgdir)) <'/usr/bin/'> <Id.Lit_Star '*'>}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$b'))} right: {(DQ (${ Id.VSub_Name pkgdir) <'/usr/bin/seaf-cli'>)} ) ) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$b'))} right: { (DQ (${ Id.VSub_Name pkgdir) <'/usr/bin/seaf-daemon'> ) } ) ) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$b'))} right: {(DQ (${ Id.VSub_Name pkgdir) <'/usr/bin/seafile'>)} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mv>} {(DQ ($ Id.VSub_DollarName '$b'))} {(DQ (${ Id.VSub_Name subpkgdir) <'/usr/bin'>)} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] spids: [521 583] ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {<-m>} {<755>} {<-p>} {(DQ (${ Id.VSub_Name subpkgdir)) <'/usr/share/seafile'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cp>} {<-ar>} {(DQ (${ Id.VSub_Name _builddir)) <'/scripts'>} {(DQ (${ Id.VSub_Name subpkgdir)) <'/usr/share/seafile'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<install>} {<-D>} {<-m0644>} {(DQ (${ Id.VSub_Name srcdir)) <'/seafile.confd'>} {(DQ (${ Id.VSub_Name subpkgdir)) <'/etc/conf.d/seafile'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<install>} {<-D>} {<-m0755>} {(DQ (${ Id.VSub_Name srcdir)) <'/seafile.initd'>} {(DQ (${ Id.VSub_Name subpkgdir)) <'/etc/init.d/seafile'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SEAFILE_HOME) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name subpkgdir)) <'/var/lib/seafile'>} spids: [722] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SEAFILE_DEFAULT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$SEAFILE_HOME') <'/default'>} spids: [731] ) ] ) (command.Simple words: [{<mkdir>} {<-m>} {<755>} {<-p>} {($ Id.VSub_DollarName '$SEAFILE_DEFAULT')}] redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (C {<chown>} {<seafile> <Id.Lit_Colon ':'> <seafile>} {($ Id.VSub_DollarName '$SEAFILE_DEFAULT')} ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:md5sums) op: assign_op.Equal rhs: { (DQ <'d05600bf1187e0354ee8e85f3074a786 seafile-4.2.6.tar.gz\n'> <'3f2b5457441871a4922d873e2b386711 seafile-controller.patch\n'> <'5d5217a4616ba9d57b56f0b61797b419 seafile-scripts.patch\n'> <'d2319373c376bff87a3005057d887193 seafile.initd\n'> <'cc33cc3ef3b04415a7b1d160e6b64e2b seafile.confd'> ) } spids: [761] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sha256sums) op: assign_op.Equal rhs: { (DQ < 'a4a51dbdd5b2c49a8b1cb16ffacea92a0f52b5a0050c0de20057893f183d9e40 seafile-4.2.6.tar.gz\n' > <'03fa3d43bcaed4bf720e7cbec5ea0fe9e1d8d90987bc8b69a045dafe10e1c27a seafile-controller.patch\n'> < '42fc1ed64c0a3cac0c5f74f2c269d96eba80e8b7a9dbff6332726342b576edf6 seafile-scripts.patch\n' > <'aaf173e5df205fc4b152f6d75c5b3b7ec738bb1acbbe413ea6fce268b1d830c1 seafile.initd\n'> <'a78183173ce054a245878d309dda9bff7981193d2b0594d299030e403e857952 seafile.confd'> ) } spids: [770] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sha512sums) op: assign_op.Equal rhs: { (DQ < '83d55c0cd6ac6fdca5b6dde50c0d3f402894621271bf9b2c5e24106672ac091c23c7ba8e124d88f5142d2eed4373f078f45793699402bf7732804762f1928cfa seafile-4.2.6.tar.gz\n' > < '6b70df847d2d3f1fbd856f220dd5686d04c1ee4810c60d3bb28c80e85f508d3b448a0e6cfb9a83a43876285968ec917867838ef31c00cfb431a8e1e953241246 seafile-controller.patch\n' > < '9af26dbbc62c2e135d1ecb29243de658524d3cdbcfdfbaafcb30e137d0230792a7466b7b01a449a113ddf87f89acdceaf8c06192dd2ee28b3bbd18e9973a7b0d seafile-scripts.patch\n' > < '66b84519ab66e7435da13a2ed1869bac3ead1f7b46ed4b0a5ecda6dfcea056c5e0af8abcf1eba00fc2e68b8df7e07e3951968c385850f01ecf46f08dfdbe7083 seafile.initd\n' > < '051ccc065a3b7abc7c802e00e364da1c3f689e133c4ba37385dbff97cfe8ad4b490cf53778344d129213fb0238258690a47f5e737387bce1368db59d22ee8504 seafile.confd' > ) } spids: [779] ) ] ) ] )