(command.CommandList
  children: [
    (C {<psql>} {<-U>} {<postgres>} {<-h>} {<localhost>} {<-c>} {(SQ <'drop database if exists kallithea;'>)})
    (C {<psql>} {<-U>} {<postgres>} {<-h>} {<localhost>} {<-c>} {(SQ <'create database kallithea;'>)})
    (C {<paster>} {<setup-db>} {<rc.ini>} {<--force-yes>} {<--user> <Id.Lit_Equals '='> <username>} 
      {<--password> <Id.Lit_Equals '='> <qweqwe>} {<--email> <Id.Lit_Equals '='> <username> <Id.Lit_Splice '@example'> <.com>} 
      {<--repos> <Id.Lit_Equals '='> <'/home/username/repos'>} {<--no-public-access>}
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:API_KEY)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<psql>} {<-R>} {(DQ <' '>)} {<-A>} {<-U>} {<postgres>} {<-h>} {<localhost>} {<-c>} 
                        {(DQ <'select api_key from users where admin=TRUE'>)} {<-d>} {<kallithea>}
                      )
                      (C {<awk>} {(SQ <'{print $2}'>)})
                    ]
                    negated: F
                  )
              )
            }
          spids: [63]
        )
      ]
    )
    (C {<echo>} {(DQ <'run those after running server'>)})
    (C {<paster>} {<serve>} {<rc.ini>} {<--pid-file> <Id.Lit_Equals '='> <rc.pid>} {<--daemon>})
    (C {<sleep>} {<3>})
    (C {<kallithea-api>} {<--apikey> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$API_KEY')} 
      {<--apihost> <Id.Lit_Equals '='> <http> <Id.Lit_Colon ':'> <'//127.0.0.1'> <Id.Lit_Colon ':'> <5001>} {<create_user>} {<username> <Id.Lit_Colon ':'> <demo1>} {<password> <Id.Lit_Colon ':'> <qweqwe>} 
      {<email> <Id.Lit_Colon ':'> <demo1> <Id.Lit_Splice '@example'> <.com>}
    )
    (C {<kallithea-api>} {<--apikey> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$API_KEY')} 
      {<--apihost> <Id.Lit_Equals '='> <http> <Id.Lit_Colon ':'> <'//127.0.0.1'> <Id.Lit_Colon ':'> <5001>} {<create_user>} {<username> <Id.Lit_Colon ':'> <demo2>} {<password> <Id.Lit_Colon ':'> <qweqwe>} 
      {<email> <Id.Lit_Colon ':'> <demo2> <Id.Lit_Splice '@example'> <.com>}
    )
    (C {<kallithea-api>} {<--apikey> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$API_KEY')} 
      {<--apihost> <Id.Lit_Equals '='> <http> <Id.Lit_Colon ':'> <'//127.0.0.1'> <Id.Lit_Colon ':'> <5001>} {<create_user>} {<username> <Id.Lit_Colon ':'> <demo3>} {<password> <Id.Lit_Colon ':'> <qweqwe>} 
      {<email> <Id.Lit_Colon ':'> <demo3> <Id.Lit_Splice '@example'> <.com>}
    )
    (C {<kallithea-api>} {<--apikey> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$API_KEY')} 
      {<--apihost> <Id.Lit_Equals '='> <http> <Id.Lit_Colon ':'> <'//127.0.0.1'> <Id.Lit_Colon ':'> <5001>} {<create_user_group>} {<group_name> <Id.Lit_Colon ':'> <demo12>}
    )
    (C {<kallithea-api>} {<--apikey> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$API_KEY')} 
      {<--apihost> <Id.Lit_Equals '='> <http> <Id.Lit_Colon ':'> <'//127.0.0.1'> <Id.Lit_Colon ':'> <5001>} {<add_user_to_user_group>} {<usergroupid> <Id.Lit_Colon ':'> <demo12>} 
      {<userid> <Id.Lit_Colon ':'> <demo1>}
    )
    (C {<kallithea-api>} {<--apikey> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$API_KEY')} 
      {<--apihost> <Id.Lit_Equals '='> <http> <Id.Lit_Colon ':'> <'//127.0.0.1'> <Id.Lit_Colon ':'> <5001>} {<add_user_to_user_group>} {<usergroupid> <Id.Lit_Colon ':'> <demo12>} 
      {<userid> <Id.Lit_Colon ':'> <demo2>}
    )
    (C {<echo>} {(DQ <'killing server'>)})
    (C {<kill>} {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<cat>} {<rc.pid>}))})
    (C {<rm>} {<rc.pid>})
  ]
)