Home Quick start All builds News Donations
More
Log In
Light Theme Docs
Workers

SparrowCI Report - gh-avuserow-raku-audio-taglib | [image: melezhik/sparrow:ubuntu]

  • Summary
  • Pipeline YAML
  • Report
BuildID: 3310
Status: OK
Image: melezhik/sparrow:ubuntu
Worker status: OK
---
Date: 13.05.2023 @ 04:21
Time elapsed: 420 sec
---
SCM: https://github.com/avuserow/raku-audio-taglib.git
Git sha: b778a68
Git comment: Add access to raw ID3v2 tag data
image:
  - melezhik/sparrow:debian
  - melezhik/sparrow:ubuntu
  - melezhik/sparrow:archlinux
tasks:
  -
    name: main
    default: true
    language: Raku
    code: |
      use Text::Table::Simple;
      my @columns = ("Rakudo Version", "Status", "Time", "Linux Dist");
      my @rows;
      my $fail = False;
      for config()<tasks><multi-versions><state><list><> -> $i {
        @rows.push: [ $i<version>, $i<status>,  $i<time>, os() ];
        $fail = True unless $i<status> eq "OK";
      }
      my @table = lol2table(@columns,@rows);
      .say for @table;
      die "some tests failed" if $fail == True;
    depends:
      -
        name: multi-versions
  -
    name: multi-versions
    language: Raku
    config:
      list:
        - 2022.04
        - 2022.06
        - 2022.07
    code: |
      my @state;
      for config()<list><> -> $v {
        my $s = %( version => $v );
        if "{cache_root_dir()}/{$v}_ok".IO ~~ :e {
          $s<status> = "OK";
        } else {
          $s<status> = "FAIL";
        }
        if "{cache_root_dir()}/{$v}_time".IO ~~ :e {
          $s<time> = "{cache_root_dir()}/{$v}_time".IO.slurp();
        } else {
          $s<time> = "NA";
        }
        @state.push: $s;
      }
      update_state %( list => @state );
    init: |
      for config()<list><> -> $v {
        run_task("test", %( version => $v ));
      }
    subtasks:
      -
        name: test
        language: Bash
        init: |
          ignore_error
        code: |
          set -e

          echo "Linux version: $os"

          curl -sL https://rakudo.org/dl/rakudo/rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz \
          -o rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
          tar -xzf rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz          
          eval "$(rakudo-moar-$version-01-linux-x86_64-gcc/scripts/set-env.sh)"

          which raku
          which zef

          raku --version
          zef --version
          
          cd source/
          zef install . --deps-only --test-depends --build-depends --/test
          zef build .
          
          /usr/bin/time -o "${cache_root_dir}/${version}_time" \
          zef test . && touch "${cache_root_dir}/${version}_ok"
          
    depends:
      -
        name: install-deps
  -
    name: install-deps
    language: Bash
    code: |
      if test $os = "alpine"; then
        sudo apk add taglib-dev zlib-dev 
      elif test $os = "debian"; then
        sudo apt-get install -y libtag1-dev zlib1g-dev time 
      elif test $os = "ubuntu"; then
        sudo apt-get install -y libtag1-dev zlib1g-dev time 
      elif test $os = "arch"; then
        sudo pacman -S --needed --noconfirm -q taglib zlib time
      fi  
      zef install --/test Text::Table::Simple
 
04:19:00 :: [repository] - index updated from https://sparrowhub.io/repo/api/v1/index
run stage: run
[task run: task.bash - tasks/install-deps]
[dump code: task.bash]
[1] if test $os = "alpine"; then
[2]   sudo apk add taglib-dev zlib-dev 
[3] elif test $os = "debian"; then
[4]   sudo apt-get install -y libtag1-dev zlib1g-dev time 
[5] elif test $os = "ubuntu"; then
[6]   sudo apt-get install -y libtag1-dev zlib1g-dev time 
[7] elif test $os = "arch"; then
[8]   sudo pacman -S --needed --noconfirm -q taglib zlib time
[9] fi  
[10] zef install --/test Text::Table::Simple
[11] 
[task stdout]
04:19:03 :: Reading package lists...
04:19:03 :: Building dependency tree...
04:19:03 :: Reading state information...
04:19:03 :: The following additional packages will be installed:
04:19:03 ::   libicu70 libtag1v5 libtag1v5-vanilla
04:19:03 :: The following NEW packages will be installed:
04:19:03 ::   libicu70 libtag1-dev libtag1v5 libtag1v5-vanilla time zlib1g-dev
04:19:03 :: 0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
04:19:03 :: Need to get 11.2 MB of archives.
04:19:03 :: After this operation, 38.0 MB of additional disk space will be used.
04:19:03 :: Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 libicu70 amd64 70.1-2 [10.6 MB]
04:19:04 :: Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 time amd64 1.9-0.1build2 [46.7 kB]
04:19:04 :: Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 libtag1v5-vanilla amd64 1.11.1+dfsg.1-3ubuntu3 [304 kB]
04:19:04 :: Get:4 http://archive.ubuntu.com/ubuntu jammy/main amd64 libtag1v5 amd64 1.11.1+dfsg.1-3ubuntu3 [11.5 kB]
04:19:04 :: Get:5 http://archive.ubuntu.com/ubuntu jammy/main amd64 libtag1-dev amd64 1.11.1+dfsg.1-3ubuntu3 [82.8 kB]
04:19:04 :: Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 zlib1g-dev amd64 1:1.2.11.dfsg-2ubuntu9.2 [164 kB]
04:19:04 :: Fetched 11.2 MB in 1s (9941 kB/s)
04:19:04 :: Selecting previously unselected package libicu70:amd64.
04:19:04 :: (Reading database ... 
04:19:04 :: (Reading database ... 5%
04:19:04 :: (Reading database ... 10%
04:19:04 :: (Reading database ... 15%
04:19:04 :: (Reading database ... 20%
04:19:04 :: (Reading database ... 25%
04:19:04 :: (Reading database ... 30%
04:19:04 :: (Reading database ... 35%
04:19:04 :: (Reading database ... 40%
04:19:04 :: (Reading database ... 45%
04:19:04 :: (Reading database ... 50%
04:19:04 :: (Reading database ... 55%
04:19:04 :: (Reading database ... 60%
04:19:04 :: (Reading database ... 65%
04:19:04 :: (Reading database ... 70%
04:19:04 :: (Reading database ... 75%
04:19:04 :: (Reading database ... 80%
04:19:04 :: (Reading database ... 85%
04:19:04 :: (Reading database ... 90%
04:19:04 :: (Reading database ... 95%
04:19:04 :: (Reading database ... 100%
04:19:04 :: (Reading database ... 16662 files and directories currently installed.)
04:19:04 :: Preparing to unpack .../0-libicu70_70.1-2_amd64.deb ...
04:19:04 :: Unpacking libicu70:amd64 (70.1-2) ...
04:19:05 :: Selecting previously unselected package time.
04:19:05 :: Preparing to unpack .../1-time_1.9-0.1build2_amd64.deb ...
04:19:05 :: Unpacking time (1.9-0.1build2) ...
04:19:05 :: Selecting previously unselected package libtag1v5-vanilla:amd64.
04:19:05 :: Preparing to unpack .../2-libtag1v5-vanilla_1.11.1+dfsg.1-3ubuntu3_amd64.deb ...
04:19:05 :: Unpacking libtag1v5-vanilla:amd64 (1.11.1+dfsg.1-3ubuntu3) ...
04:19:05 :: Selecting previously unselected package libtag1v5:amd64.
04:19:05 :: Preparing to unpack .../3-libtag1v5_1.11.1+dfsg.1-3ubuntu3_amd64.deb ...
04:19:05 :: Unpacking libtag1v5:amd64 (1.11.1+dfsg.1-3ubuntu3) ...
04:19:05 :: Selecting previously unselected package libtag1-dev:amd64.
04:19:05 :: Preparing to unpack .../4-libtag1-dev_1.11.1+dfsg.1-3ubuntu3_amd64.deb ...
04:19:05 :: Unpacking libtag1-dev:amd64 (1.11.1+dfsg.1-3ubuntu3) ...
04:19:05 :: Selecting previously unselected package zlib1g-dev:amd64.
04:19:05 :: Preparing to unpack .../5-zlib1g-dev_1%3a1.2.11.dfsg-2ubuntu9.2_amd64.deb ...
04:19:05 :: Unpacking zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu9.2) ...
04:19:05 :: Setting up time (1.9-0.1build2) ...
04:19:05 :: Setting up zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu9.2) ...
04:19:05 :: Setting up libicu70:amd64 (70.1-2) ...
04:19:05 :: Setting up libtag1v5-vanilla:amd64 (1.11.1+dfsg.1-3ubuntu3) ...
04:19:05 :: Setting up libtag1v5:amd64 (1.11.1+dfsg.1-3ubuntu3) ...
04:19:05 :: Setting up libtag1-dev:amd64 (1.11.1+dfsg.1-3ubuntu3) ...
04:19:05 :: Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
04:19:06 :: ===> Searching for: Text::Table::Simple
04:19:15 :: ===> Installing: Text::Table::Simple:ver<0.1.0>:auth<github:ugexe>
[task stderr]
04:19:15 :: debconf: delaying package configuration, since apt-utils is not installed
04:19:15 :: ===> Updating fez mirror: https://360.zef.pm/
04:19:15 :: ===> Updated fez mirror: https://360.zef.pm/
04:19:15 :: ===> Updating rea mirror: https://raw.githubusercontent.com/Raku/REA/main/META.json
04:19:15 :: ===> Updated rea mirror: https://raw.githubusercontent.com/Raku/REA/main/META.json
04:18:46 :: [repository] - index updated from https://sparrowhub.io/repo/api/v1/index
run stage: run
[task run: task.bash - tasks/multi-versions]
[dump code: task.bash]
[1] set -e
[2] 
[3] echo "Linux version: $os"
[4] 
[5] curl -sL https://rakudo.org/dl/rakudo/rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz \
[6] -o rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
[7] tar -xzf rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz          
[8] eval "$(rakudo-moar-$version-01-linux-x86_64-gcc/scripts/set-env.sh)"
[9] 
[10] which raku
[11] which zef
[12] 
[13] raku --version
[14] zef --version
[15] 
[16] cd source/
[17] zef install . --deps-only --test-depends --build-depends --/test
[18] zef build .
[19] 
[20] /usr/bin/time -o "${cache_root_dir}/${version}_time" \
[21] zef test . && touch "${cache_root_dir}/${version}_ok"
[22] 
[task stdout]
04:19:18 :: Linux version: ubuntu
04:19:21 ::                            Adding Rakudo to PATH
04:19:21 ::                           =======================
04:19:21 :: 
04:19:21 :: Paths successfully added.
04:19:21 :: 
04:19:21 :: ================================================================================
04:19:21 ::  =========                                                             __   __
04:19:21 ::   ||_|_||                =============================                (  \,/  )
04:19:21 ::   || # ||                 Welcome to the Raku Console                  \_ O _/
04:19:21 ::   || # ||                =============================                 (_/ \_)
04:19:21 :: 
04:19:21 :: This console has all the tools available you need to get started using Raku.
04:19:21 :: 
04:19:21 :: Rakudo provides an interactive command line interpreter (a so called Read Eval
04:19:21 :: Print Loop, REPL for short) you can use to quickly try out pieces of Raku code.
04:19:21 :: Start it by typing:
04:19:21 :: 
04:19:21 ::     raku
04:19:21 :: 
04:19:21 :: If you already have a Raku program in a file, you can run it by typing:
04:19:21 :: 
04:19:21 ::     raku path/to/my/program.raku
04:19:21 :: 
04:19:21 :: To install additional modules you can use the Zef module manager:
04:19:21 :: 
04:19:21 ::     zef install Some::Module
04:19:21 :: 
04:19:21 :: https://rakudo.org/           - The home of this implementation of Raku.
04:19:21 :: https://raku.land/            - Go here to browse for Raku modules.
04:19:21 :: https://docs.raku.org/        - The Raku documentation.
04:19:21 :: https://web.libera.chat/#raku - The Raku user chat. Talk to us!
04:19:21 :: 
04:19:21 ::                               Happy hacking!
04:19:21 :: 
04:19:21 :: ================================================================================
04:19:21 :: 
04:19:21 :: /var/.sparrowdo/env/main/.sparrowdo/rakudo-moar-2022.04-01-linux-x86_64-gcc/bin/raku
04:19:21 :: /var/.sparrowdo/env/main/.sparrowdo/rakudo-moar-2022.04-01-linux-x86_64-gcc/share/perl6/site/bin/zef
04:19:21 :: Welcome to Rakudo™ v2022.04.
04:19:21 :: Implementing the Raku® Programming Language v6.d.
04:19:21 :: Built on MoarVM version 2022.04.
04:19:38 :: v0.14.5
04:19:50 :: ===> Building: Audio::TagLib:ver<0.0.4>:auth<zef:avuserow>
04:19:52 :: ===> Building [OK] for Audio::TagLib:ver<0.0.4>:auth<zef:avuserow>
04:19:53 :: ===> Testing: Audio::TagLib:ver<0.0.4>:auth<zef:avuserow>
04:19:56 :: ===> Testing [OK] for Audio::TagLib:ver<0.0.4>:auth<zef:avuserow>
[task stderr]
04:19:56 :: All candidates are currently installed
[task run: task.bash - tasks/multi-versions]
[dump code: task.bash]
[1] set -e
[2] 
[3] echo "Linux version: $os"
[4] 
[5] curl -sL https://rakudo.org/dl/rakudo/rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz \
[6] -o rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
[7] tar -xzf rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz          
[8] eval "$(rakudo-moar-$version-01-linux-x86_64-gcc/scripts/set-env.sh)"
[9] 
[10] which raku
[11] which zef
[12] 
[13] raku --version
[14] zef --version
[15] 
[16] cd source/
[17] zef install . --deps-only --test-depends --build-depends --/test
[18] zef build .
[19] 
[20] /usr/bin/time -o "${cache_root_dir}/${version}_time" \
[21] zef test . && touch "${cache_root_dir}/${version}_ok"
[22] 
[task stdout]
04:19:56 :: Linux version: ubuntu
04:19:58 ::                            Adding Rakudo to PATH
04:19:58 ::                           =======================
04:19:58 :: 
04:19:58 :: Paths successfully added.
04:19:58 :: 
04:19:58 :: ================================================================================
04:19:58 ::  =========                                                             __   __
04:19:58 ::   ||_|_||                =============================                (  \,/  )
04:19:58 ::   || # ||                 Welcome to the Raku Console                  \_ O _/
04:19:58 ::   || # ||                =============================                 (_/ \_)
04:19:58 :: 
04:19:58 :: This console has all the tools available you need to get started using Raku.
04:19:58 :: 
04:19:58 :: Rakudo provides an interactive command line interpreter (a so called Read Eval
04:19:58 :: Print Loop, REPL for short) you can use to quickly try out pieces of Raku code.
04:19:58 :: Start it by typing:
04:19:58 :: 
04:19:58 ::     raku
04:19:58 :: 
04:19:58 :: If you already have a Raku program in a file, you can run it by typing:
04:19:58 :: 
04:19:58 ::     raku path/to/my/program.raku
04:19:58 :: 
04:19:58 :: To install additional modules you can use the Zef module manager:
04:19:58 :: 
04:19:58 ::     zef install Some::Module
04:19:58 :: 
04:19:58 :: https://rakudo.org/           - The home of this implementation of Raku.
04:19:58 :: https://raku.land/            - Go here to browse for Raku modules.
04:19:58 :: https://docs.raku.org/        - The Raku documentation.
04:19:58 :: https://web.libera.chat/#raku - The Raku user chat. Talk to us!
04:19:58 :: 
04:19:58 ::                               Happy hacking!
04:19:58 :: 
04:19:58 :: ================================================================================
04:19:58 :: 
04:19:58 :: /var/.sparrowdo/env/main/.sparrowdo/rakudo-moar-2022.06-01-linux-x86_64-gcc/bin/raku
04:19:58 :: /var/.sparrowdo/env/main/.sparrowdo/rakudo-moar-2022.06-01-linux-x86_64-gcc/share/perl6/site/bin/zef
04:19:58 :: Welcome to Rakudo™ v2022.06.
04:19:58 :: Implementing the Raku® Programming Language v6.d.
04:19:58 :: Built on MoarVM version 2022.06.
04:20:15 :: v0.14.5
04:20:28 :: ===> Building: Audio::TagLib:ver<0.0.4>:auth<zef:avuserow>
04:20:30 :: ===> Building [OK] for Audio::TagLib:ver<0.0.4>:auth<zef:avuserow>
04:20:31 :: ===> Testing: Audio::TagLib:ver<0.0.4>:auth<zef:avuserow>
04:20:36 :: ===> Testing [OK] for Audio::TagLib:ver<0.0.4>:auth<zef:avuserow>
[task stderr]
04:20:36 :: All candidates are currently installed
[task run: task.bash - tasks/multi-versions]
[dump code: task.bash]
[1] set -e
[2] 
[3] echo "Linux version: $os"
[4] 
[5] curl -sL https://rakudo.org/dl/rakudo/rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz \
[6] -o rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz
[7] tar -xzf rakudo-moar-$version-01-linux-x86_64-gcc.tar.gz          
[8] eval "$(rakudo-moar-$version-01-linux-x86_64-gcc/scripts/set-env.sh)"
[9] 
[10] which raku
[11] which zef
[12] 
[13] raku --version
[14] zef --version
[15] 
[16] cd source/
[17] zef install . --deps-only --test-depends --build-depends --/test
[18] zef build .
[19] 
[20] /usr/bin/time -o "${cache_root_dir}/${version}_time" \
[21] zef test . && touch "${cache_root_dir}/${version}_ok"
[22] 
[task stdout]
04:20:36 :: Linux version: ubuntu
04:20:37 ::                            Adding Rakudo to PATH
04:20:37 ::                           =======================
04:20:37 :: 
04:20:37 :: Paths successfully added.
04:20:37 :: 
04:20:37 :: ================================================================================
04:20:37 ::  =========                                                             __   __
04:20:37 ::   ||_|_||                =============================                (  \,/  )
04:20:37 ::   || # ||                 Welcome to the Raku Console                  \_ O _/
04:20:37 ::   || # ||                =============================                 (_/ \_)
04:20:37 :: 
04:20:37 :: This console has all the tools available you need to get started using Raku.
04:20:37 :: 
04:20:37 :: Rakudo provides an interactive command line interpreter (a so called Read Eval
04:20:37 :: Print Loop, REPL for short) you can use to quickly try out pieces of Raku code.
04:20:37 :: Start it by typing:
04:20:37 :: 
04:20:37 ::     raku
04:20:37 :: 
04:20:37 :: If you already have a Raku program in a file, you can run it by typing:
04:20:37 :: 
04:20:37 ::     raku path/to/my/program.raku
04:20:37 :: 
04:20:37 :: To install additional modules you can use the Zef module manager:
04:20:37 :: 
04:20:37 ::     zef install Some::Module
04:20:37 :: 
04:20:37 :: https://rakudo.org/           - The home of this implementation of Raku.
04:20:37 :: https://raku.land/            - Go here to browse for Raku modules.
04:20:37 :: https://docs.raku.org/        - The Raku documentation.
04:20:37 :: https://web.libera.chat/#raku - The Raku user chat. Talk to us!
04:20:37 :: 
04:20:37 ::                               Happy hacking!
04:20:37 :: 
04:20:37 :: ================================================================================
04:20:37 :: 
04:20:37 :: /var/.sparrowdo/env/main/.sparrowdo/rakudo-moar-2022.07-01-linux-x86_64-gcc/bin/raku
04:20:37 :: /var/.sparrowdo/env/main/.sparrowdo/rakudo-moar-2022.07-01-linux-x86_64-gcc/share/perl6/site/bin/zef
04:20:37 :: Welcome to Rakudo™ v2022.07.
04:20:37 :: Implementing the Raku® Programming Language v6.d.
04:20:37 :: Built on MoarVM version 2022.07.
04:20:54 :: v0.14.5
04:21:08 :: ===> Building: Audio::TagLib:ver<0.0.4>:auth<zef:avuserow>
04:21:09 :: ===> Building [OK] for Audio::TagLib:ver<0.0.4>:auth<zef:avuserow>
04:21:10 :: ===> Testing: Audio::TagLib:ver<0.0.4>:auth<zef:avuserow>
04:21:15 :: ===> Testing [OK] for Audio::TagLib:ver<0.0.4>:auth<zef:avuserow>
[task stderr]
04:21:15 :: All candidates are currently installed
[task run: task.raku - tasks/multi-versions]
[dump code: task.raku]
[1] my @state;
[2] for config()<list><> -> $v {
[3]   my $s = %( version => $v );
[4]   if "{cache_root_dir()}/{$v}_ok".IO ~~ :e {
[5]     $s<status> = "OK";
[6]   } else {
[7]     $s<status> = "FAIL";
[8]   }
[9]   if "{cache_root_dir()}/{$v}_time".IO ~~ :e {
[10]     $s<time> = "{cache_root_dir()}/{$v}_time".IO.slurp();
[11]   } else {
[12]     $s<time> = "NA";
[13]   }
[14]   @state.push: $s;
[15] }
[16] update_state %( list => @state );
[17] 
[task stdout]
04:18:19 :: [repository] - index updated from https://sparrowhub.io/repo/api/v1/index
run stage: run
source directory does not yet exist, download source archive from storage
04:18:22 :: [repository] - installing pack-unpack, version 0.000001
[task run: task.bash - unpack source archive]
[dump code: task.bash]
[1] set -e
[2] 
[3] file=$(config file)
[4] dir=$(config dir)
[5] 
[6] echo "tar -xzf $file "
[7] 
[8] tar -xzf $file
[9] 
[10] if test $dir; then
[11]   ls -l $dir
[12] fi
[13] 
[14] 
[task stdout]
04:18:23 :: tar -xzf source.tar.gz 
[task run: task.raku - tasks/main]
[dump code: task.raku]
[1] use Text::Table::Simple;
[2] my @columns = ("Rakudo Version", "Status", "Time", "Linux Dist");
[3] my @rows;
[4] my $fail = False;
[5] for config()<tasks><multi-versions><state><list><> -> $i {
[6]   @rows.push: [ $i<version>, $i<status>,  $i<time>, os() ];
[7]   $fail = True unless $i<status> eq "OK";
[8] }
[9] my @table = lol2table(@columns,@rows);
[10] .say for @table;
[11] die "some tests failed" if $fail == True;
[12] 
[task stdout]
04:21:20 :: O----------------O--------O-----------------------------------------------------------------------------------O------------O
04:21:20 :: | Rakudo Version | Status | Time                                                                              | Linux Dist |
04:21:20 :: O================O========O===================================================================================O============O
04:21:20 :: | 2022.04        | OK     | 5.21user 0.48system 0:03.64elapsed 156%CPU (0avgtext+0avgdata 183468maxresident)k | ubuntu     |
04:21:20 :: |                |        | 16inputs+2208outputs (0major+189947minor)pagefaults 0swaps                        |            |
04:21:20 :: | 2022.06        | OK     | 8.47user 0.56system 0:05.85elapsed 154%CPU (0avgtext+0avgdata 204368maxresident)k | ubuntu     |
04:21:20 :: |                |        | 0inputs+17480outputs (0major+242994minor)pagefaults 0swaps                        |            |
04:21:20 :: | 2022.07        | OK     | 8.50user 0.63system 0:05.94elapsed 153%CPU (0avgtext+0avgdata 206424maxresident)k | ubuntu     |
04:21:20 :: |                |        | 0inputs+17552outputs (0major+244160minor)pagefaults 0swaps                        |            |
04:21:20 :: ----------------------------------------------------------------------------------------------------------------------------