Skip to content

Latest commit

Β 

History

History
785 lines (614 loc) Β· 44.7 KB

README.rst

File metadata and controls

785 lines (614 loc) Β· 44.7 KB

aero

pagkage manager recycler

The aero command line package recycler. It uses package managers you already have.

Instead of having to consult several package managers when you are looking for something you can now search through all of them using the same commands and find similar results using the same tool.

When you type aero search php, aero already knows which package managers are installed and starts collecting information from each package manager while caching the results for when you haven't found exactly what you're looking for yet. Other advanced features besides caching includes intuitive help and command line arguments parsing, loading configurations from file, bash and zsh autocompletion, results paging so that you don't have to always scroll up when the information you need is right at the top of the results that just came flying by but you also wont get dumped into a pager, of your choice I should add, if the results would fit on a single page and doesn't require paging. These are just some of the features already incorporated to enhance your user experience setting new standards for enjoyable software management.

Even though aero is some serious machining it will only focus on the task its set out to do, to recycle your existing package managers and you can rest assured/or continue to worry whichever might be the case, as aero will leave the heavy lifting up to the software partners already tasked with the use case requirements and instead only focuses on the end user requirements through consistent interfaces, intuitive interactions and all the information you require at your fingertips enabling you to make the decisions you need to accomplish the tasks at hand.:

\
 \
  \ \    .           _____    ___________  ____
   \_\__/            \__  \ _/ __ \_  __ \/  _ \
  O__| \ \            / __ \\  ___/|  | \(  <_> )
     \ o\/           (____  /\___  >__|   \____/
      \_/\                \/     \/
      / \ \
      O  \                                 aero v0.0.1 alpha 2
 ─────────\────────────────────────────────────────────────────────
           \
            \

Platform

Written in python using v 2.7, this may or may not be the entry requirement for now, on Mac OS X currently and the excellent IDE PyCharm by JetBrains which you may consider highly recommended do give it a try. The *nixes will likely be included soon, there exists no bias to the MS platforms only less accessible as a product of choice and opportunity I guess. Feel free to suggest other usages or specific requirements you might have.

After some serious deliberations even though the majority of the team has zero to no python experience at all it will never the less prevent us, like the good professional programmers we are, from using the best hammer for hitting the particular nails or fingers. This has been an interesting learning curve so far and I have to agree python is a pleasure and does suite the requirements like a glove and now that we are empowered with some new lingo like "pythonic" and "tupels" not to mention "generators" and the other "PEP" "recipes" of convenience we make no claim that this is an exemplary python implementation but we sure as the indents are important will try. Feel free to pin-point any obvious mistakes by raising an issue so we may apologise or be damned to continue in err without permission as we continue under assumption that this is the pythonic way. Now I guess I should go read the book perhaps =)

Disclaimer

Even though using aero can cause you or your system no harm, by design and while we are using it everyday for a one stop interface to finding the software we need to install we need to warn you about two things:

  1. This is still a work in progress and you are welcome to pitch in, lend a hand, test, report bugs, request features or make a donation but keep in mind that you will find unfinished and more than likely some broken things.
  2. May lead to compulsive package installation disorders can cause dependency and some serious addictions, use at your own risk.

Installation

aero install with pip (egg and chicken)

aero installation if you already have aero - from version 0.0.1a1 pip will always reinstall:

$ aero install pip:https://github.com/Aeronautics/aero/tarball/develop

aero install with pip --upgrade - upgrade aero and dependencies - from version 0.0.1a1:

$ aero install pip:https://github.com/Aeronautics/aero/tarball/develop === "--upgrade"

pip installation

aero can be installed directly from github via pip with the following command:

$ pip install --upgrade https://github.com/Aeronautics/aero/tarball/develop

through easy_install

if you prefer using easy_install the following command will download and install aero from github:

$ easy_install https://github.com/Aeronautics/aero/tarball/develop

from git repository

Clone the repo from github or fork it first and then clone your copy if you want to help out with pull requests. Then just run the setup.py with install:

$ ./setup.py install

Running aero

On execution of aero with no requirements a short usage instruction will be presented:

$ aero

aero v0.0.1 alpha 0

usage: aero [-h] [-v] [-p PAGER] [-d [{Brew,Port,Pip,Npm,Gem,Colour}]] [-i]
              [-c {bash,zsh}]
              command [mngr:] package ...
aero: error: too few arguments

Providing aero with the customary --help argument will give more detailed information:

$ aero --help

   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”Œβ”€β”€β”˜ Usage Instructions └───────────────────────────────────────────────────┐
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

 aero.py [-h] [-v] [-p PAGER] [-d [{npm,pyrus,pear,pip,brew,pecl,gem}]]
               [-i] [=== PASSTHRU]
               command [mngr:]package ...

   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”Œβ”€β”€β”˜ Argument Options └─────────────────────────────────────────────────────┐
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Show program's version number and exit
  -p, --pager PAGER     The pager to use for long paged displays. The default
                        is based on the environment variable $PAGER, if it is
                        not set, some common pagers like 'less', 'more',
                        'most' and finally 'cat' are tried, in this order.

                        default: None

  -d, --disable [{npm,pyrus,pear,pip,brew,pecl,gem}]

                        Add the items you wish to disable to the list.
                        Multiple disable arguments may be supplied.

                        default: []

  -i, --invalidate-cache
                        Clear the search cache and enquire anew from the
                        package managers.

                        default: False

  ===, --pass-through PASSTHRU
                        Passthru arguments to be added as arguments to the
                        package manager's command execution. Enclose the
                        arguments in quotes to distinguish them from others.

                        default: None


   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”Œβ”€β”€β”˜ Commands Usage └───────────────────────────────────────────────────────┐
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Command arguments:

  The aero commands are based on the typical package manager
  commands followed by the package name(s) to perform the task on.
  At least one command is required but several packages can be
  processed simultaneously.
  Use 'aero command --help' to get further details for specific
  commands.

  command [mngr:]package
                        Optionally provide the specific manager to use
                        prepended to the package name(s) with a colon ':' or
                        alternatively aero will execute the command against
                        all enabled package managers.

    choose one of the following valid aero commands:

    search              Do an aero search for packages
    install             Do an aero install package(s)
    info                Do an aero info for packages

Configuration argument:
  command [mngr:]package
                        Optionally provide the specific manager to use
                        prepended to the package name(s) with a colon ':' or
                        alternatively aero will execute the command against
                        all enabled package managers.

    choose one of the following valid aero commands:

    search              Do an aero search for packages
    install             Do an aero install package(s)
    info                Do an aero info for packages

Configuration argument:

  It is possible to load aero configuration from an input file.

  @filename             Append "key, value" (where applicable) to a file one
                        argument, value pair per line. To tell aero which
                        file to use for configuration specify the path and
                        file name prefixed with an "@".

Commands

With aero you can expect to use the common commands and we will translate them to the package manager specific instructions where they may have chosen to deviate from the norm. Currently the following commands are implemented:

Usage:

$ aero <command> <packages...>

Where packages are one or more package names optionally prefixed with the specific package manager, colon separated. The mngr:package format produced in search is used to instruct a specific package manager with any commands. Omitting the prefix instruction will result in all active package managers being instructed to complete the task. This may or may not necessarily have the desired effect. Multiple packages from different package managers can all be processed with one aero command.

search

To search for a package which will produce a list with the package manager prefixed the package name by \: and a short description of the package.

install

To instruct the installation of a given package.

info

To obtain more detailed information regarding a given package now also available for pip.

Package managers

The following package managers have been recycled, more will follow. Let us know if your favourite packaging tool is missing or submit a pull request with new adapter you'd like added.

ο»ΏAdvanced Package Tool

Supported commands:

  • search
  • install
  • info
$ aero search apt:fibonacci

────────────────────────────────────────────────────────────────────────────────
                 PACKAGE NAME   DESCRIPTION
──────────────────────────────┬─────────────────────────────────────────────────
   apt:libmath-fibonacci-perl β”‚ Fibonacci numbers calculations Perl module
            apt:python-pqueue β”‚ a priority queue extension for Python
                apt:qtstalker β”‚ commodity and stock market charting and
                              β”‚ technical analysis
──────────────────────────────┴─────────────────────────────────────────────────

$ aero info apt:libmath-fibonacci-perl

────────────────────────────────────────────────────────────────────────────────
                 INFORMATION:   libmath-fibonacci-perl
──────────────────────────────┬─────────────────────────────────────────────────
                     Package: β”‚ libmath-fibonacci-perl
                    Priority: β”‚ optional
                     Section: β”‚ universe/perl
              Installed-Size: β”‚ 64
                  Maintainer: β”‚ Ubuntu MOTU Developers <ubuntu-
                              β”‚ [email protected]>
         Original-Maintainer: β”‚ Debian Perl Group <pkg-perl-
                              β”‚ [email protected]>
                Architecture: β”‚ all
                     Version: β”‚ 1.5-4
                     Depends: β”‚ perl (>= 5.6.0-16)
                    Filename: β”‚ pool/universe/libm/libmath-fibonacci-perl
                              β”‚ /libmath-fibonacci-perl_1.5-4_all.deb
                        Size: β”‚ 6902
                      Md5Sum: β”‚ 7be8cecc5fcd6c44d02a19dce5930396
                        Sha1: β”‚ d6936f3710cf7d995cd9f2e925ee6f6e912a3327
                      Sha256: β”‚ 194a2f8c11dd492074745633c52f07392b537580f015a8
                              β”‚ 1bd20e9ca31c99cabd
ο»Ώ              Description-En: β”‚ Fibonacci numbers calculations Perl module
                              β”‚ This module provides a few functions related
                              β”‚ to Fibonacci numbers,  such as getting the n
                              β”‚ term of a Fibonacci sequence, compute and
                              β”‚ return the first n Fibonacci numbers,
                              β”‚ decompose an integer into the  sum of
                              β”‚ Fibonacci numbers, etc.
                    Homepage: β”‚ http://search.cpan.org/dist/Math-Fibonacci/
             Description-Md5: β”‚ 11f9aaf15742de4ebb30a58b77eabee3
                        Bugs: β”‚ https://bugs.launchpad.net/ubuntu/+filebug
                      Origin: β”‚ Ubuntu
──────────────────────────────┴─────────────────────────────────────────────────

Homebrew

Supported commands:

  • search
  • install
  • info
$ aero search brew:ncurses

────────────────────────────────────────────────────────────────────────────────
                 PACKAGE NAME   DESCRIPTION
──────────────────────────────┬─────────────────────────────────────────────────
                 brew:ncurses β”‚ Version:stable 5.9
                              β”‚ http://www.gnu.org/s/ncurses/
                              β”‚ /usr/local/Cellar/ncurses/5.9 (1777 files,
──────────────────────────────┴─────────────────────────────────────────────────

$ aero info brew:ncurses

────────────────────────────────────────────────────────────────────────────────
                 INFORMATION:   ncurses
──────────────────────────────┬─────────────────────────────────────────────────
                     Version: β”‚ stable 5.9
                              β”‚ http://www.gnu.org/s/ncurses/
                              β”‚ /usr/local/Cellar/ncurses/5.9 (1777 files,
                              β”‚ 18M) *
                              β”‚ ==> Options
                              β”‚ --universal
                              β”‚ Build a universal binary
──────────────────────────────┴─────────────────────────────────────────────────

Special notes:

Brew has the inclination to only return the package names on search, in addition to retrieval of the package names aero continues to further query info on each package from where it is able to parse and present slightly more usable information. Instead of just calling the info command on the package manager we execute aero info instead which means that all the information for every package listed in the search results is already cached and retrievable instantaneously.

Gem

Supported commands:

  • search
  • install
  • info
$ aero search gem:fibonacci

────────────────────────────────────────────────────────────────────────────────
                 PACKAGE NAME   DESCRIPTION
──────────────────────────────┬─────────────────────────────────────────────────
        gem:closest-fibonacci β”‚ Version: 0.1.2
                              β”‚ http://github.com/kevindickerson/closest-
                              β”‚ fibonacci
                              β”‚ Provides some methods to find a Fibonacci
                              β”‚ number less than a given N.
    gem:closest-fibonacci-gem β”‚ Version: 1.1.0
                              β”‚ http://github.com/beckram23/closest-fibonacci-
                              β”‚ gem
                              β”‚ Find the largest fibonacci that is smaller
                              β”‚ than the given integer
        gem:closest_fibonacci β”‚ Version: 1.2.13
                              β”‚ http://github.com/bpolania/closest_fibonacci
                              β”‚ Fibonacci gem for ModCloth
                gem:fibonacci β”‚ Version: 0.1.7
                              β”‚ http://github.com/chaitanyav/fibonacci
                              β”‚ Fibonacci
            gem:fibonacci-evs β”‚ Version: 0.1.2
                              β”‚ http://github.com/edsimpson/fibonacci-evs
                              β”‚ Test gem with a Fibonacci-related method for
                              β”‚ Fixnum and Bignum.
         gem:simple_fibonacci β”‚ Version: 0.1.2
                              β”‚ http://github.com/anjshenoy/simple_fibonacci
                              β”‚ Gem that calculates fibonacci numbers upto a a
                              β”‚ provided number
──────────────────────────────┴─────────────────────────────────────────────────

$ aero info gem:fibonacci

────────────────────────────────────────────────────────────────────────────────
                 INFORMATION:   fibonacci
──────────────────────────────┬─────────────────────────────────────────────────
                     Authors: β”‚ Chaitanya Vellanki
                      Bindir: β”‚ bin
                        Date: β”‚ 2012-11-09
                 Description: β”‚ A Ruby gem for exploring Fibonacci series
                       Email: β”‚ [email protected]
                    Has_Rdoc: β”‚ True
                    Homepage: β”‚ http://github.com/chaitanyav/fibonacci
                        Name: β”‚ fibonacci
                    Platform: β”‚ ruby
               Require_Paths: β”‚ lib
       Required_Ruby_Version: β”‚ >= 0
   Required_Rubygems_Version: β”‚ >= 0
           Rubyforge_Project: β”‚ fibonacci
            Rubygems_Version: β”‚ 1.3.6
       Specification_Version: β”‚ 3
                     Summary: β”‚ Fibonacci
                     Version: β”‚ 0.1.7
──────────────────────────────┴─────────────────────────────────────────────────

Special notes:

Search is executed with the -qbd arguments which will return both locally installed and remotely available packages. Info is obtained through the specification command which returns a gemspec class tagged YAML document, nuff said.

Npm

Supported commands:

  • search
  • install
  • info
$ aero search npm:fibonacci-async

────────────────────────────────────────────────────────────────────────────────
                 PACKAGE NAME   DESCRIPTION
──────────────────────────────┬─────────────────────────────────────────────────
          npm:fibonacci-async β”‚ 2012-10-29 22:03
                              β”‚ So, you want to benchmark node.js with
                              β”‚ fibonacci once again? - Here's the library for
                              β”‚ that. You're welcome.
──────────────────────────────┴─────────────────────────────────────────────────

$ aero info npm:fibonacci-async

────────────────────────────────────────────────────────────────────────────────
                 INFORMATION:   fibonacci-async
──────────────────────────────┬─────────────────────────────────────────────────
                      Author: β”‚ Enno Boland <[email protected]>
                 Description: β”‚ So, you want to benchmark node.js with
                              β”‚ fibonacci once again? - Here"s the library for
                              β”‚ that. You"re welcome.
                        Dist: β”‚ tarball: http://registry.npmjs.org/fibonacci-
                              β”‚ async/-/fibonacci-async-0.0.2.tgz
                              β”‚ shasum:
                              β”‚ 173d4d28b038723f41bacc660edc331b1e526047
                   Dist-Tags: β”‚ latest: 0.0.2
                     Engines: β”‚ node: *
                        Main: β”‚ lib/binding.js
                 Maintainers: β”‚ Gottox <[email protected]>
                        Name: β”‚ fibonacci-async
                  Repository: β”‚ url: git://github.com/Gottox/fibonacci-
                              β”‚ async.git
                              β”‚ type: git
                     Scripts: β”‚ preinstall: node-waf clean || (exit 0); node-
                              β”‚ waf configure build
                        Time: β”‚ 0.0.1: 2012-05-26T11:24:06.960Z
                              β”‚ 0.0.2: 2012-05-26T11:25:45.254Z
                     Version: β”‚ 0.0.2
                    Versions: β”‚ 0.0.1, 0.0.2
──────────────────────────────┴─────────────────────────────────────────────────

Special notes:

Info uses the npm view command which return a JavaScript object of the registry which we then nudge closer to resembling JSON format so that we may proceed to parse it with :mod:json

Pear

Supported commands:

  • search
  • install
  • info
$ aero search pear:fibonacci

────────────────────────────────────────────────────────────────────────────────
                 PACKAGE NAME   DESCRIPTION
──────────────────────────────┬─────────────────────────────────────────────────
          pear:Math_Fibonacci β”‚ Version:0.8 (stable)
                              β”‚ http://pear.php.net/Math_Fibonacci
                              β”‚ Package to calculate and manipulate Fibonacci
                              β”‚ numbers
──────────────────────────────┴─────────────────────────────────────────────────

$ aero info pear:Math_Fibonacci

────────────────────────────────────────────────────────────────────────────────
                 INFORMATION:   Math_Fibonacci
──────────────────────────────┬─────────────────────────────────────────────────
                      Latest: β”‚ 0.8
                   Installed: β”‚ - no -
                     Package: β”‚ Math_Fibonacci
                     License: β”‚ PHP
                    Category: β”‚ Math
                     Summary: β”‚ Package to calculate and manipulate Fibonacci
                              β”‚ numbers
                 Description: β”‚ The Fibonacci series is constructed using the
                              β”‚ formula: F(n) = F(n - 1) + F (n - 2), By
                              β”‚ convention F(0) = 0, and F(1) = 1. An
                              β”‚ alternative formula that uses the Golden Ratio
                              β”‚ can also be used: F(n) = (PHI^n -
                              β”‚ phi^n)/sqrt(5) [Lucas' formula], where PHI =
                              β”‚ (1 + sqrt(5))/2 is the Golden Ratio, and phi =
                              β”‚ (1 - sqrt(5))/2 is its reciprocal Requires
                              β”‚ Math_Integer, and can be used with big
                              β”‚ integers if the GMP or the BCMATH libraries
                              β”‚ are present.
──────────────────────────────┴─────────────────────────────────────────────────

Pear

Supported commands:

  • search
  • install
  • info
$ aero search pecl:ncurses

────────────────────────────────────────────────────────────────────────────────
                 PACKAGE NAME   DESCRIPTION
──────────────────────────────┬─────────────────────────────────────────────────
                 pecl:ncurses β”‚ Version:1.0.2 (stable)
                              β”‚ http://pecl.php.net/ncurses
                              β”‚ Terminal screen handling and optimization
                              β”‚ package
──────────────────────────────┴─────────────────────────────────────────────────

$ aero info pecl:ncurses

────────────────────────────────────────────────────────────────────────────────
                 INFORMATION:   ncurses
──────────────────────────────┬─────────────────────────────────────────────────
                      Latest: β”‚ 1.0.2
                   Installed: β”‚ - no -
                     Package: β”‚ ncurses
                     License: β”‚ PHP
                    Category: β”‚ Console
                     Summary: β”‚ Terminal screen handling and optimization
                              β”‚ package
                 Description: β”‚ ncurses (new curses) is a free software
                              β”‚ emulation of curses in System V Rel 4.0 (and
                              β”‚ above). It uses terminfo format, supports
                              β”‚ pads, colors, multiple highlights, form
                              β”‚ characters and function key mapping. Because
                              β”‚ of the interactive nature of this library, it
                              β”‚ will be of little use for writing Web
                              β”‚ applications, but may be useful when writing
                              β”‚ scripts meant using PHP from the command line.
                              β”‚ See also http://www.gnu.org/software/ncurses/n
                              β”‚ curses.html
──────────────────────────────┴─────────────────────────────────────────────────

Pip

Supported commands:

  • search
  • install
  • info
$ aero search pip:ncurses

────────────────────────────────────────────────────────────────────────────────
                 PACKAGE NAME   DESCRIPTION
──────────────────────────────┬─────────────────────────────────────────────────
                    pip:Canto β”‚ Version: 0.7.10       Score: 110
                              β”‚ An ncurses RSS aggregator.
                  pip:chronos β”‚ Version: 0.2          Score:  13
                              β”‚ An ncurses stopwatch/timer.
             pip:gocept.httop β”‚ Version: 1.0          Score:   1
                              β”‚ An ncurses-based tool to monitor website
                              β”‚ responsiveness in real-time.
──────────────────────────────┴─────────────────────────────────────────────────

$ aero info pip:Canto

────────────────────────────────────────────────────────────────────────────────
                 INFORMATION:   Canto
──────────────────────────────┬─────────────────────────────────────────────────
            Metadata-Version: β”‚ 1.0
                        Name: β”‚ Canto
                     Version: β”‚ 0.7.10
                     Summary: β”‚ An ncurses RSS aggregator.
                   Home-Page: β”‚ http://codezen.org/canto
                      Author: β”‚ Jack Miller
                Author-Email: β”‚ [email protected]
                     License: β”‚ GPLv2
                Download-Url: β”‚ http://codezen.org/static/canto-0.7.10.tar.gz
                 Description: β”‚ UNKNOWN
                    Platform: β”‚ linux
──────────────────────────────┴─────────────────────────────────────────────────

Special notes:

The Pip adaptor does not use subprocess to execute pip command line interface but instead we use the pip library directly. This strategy now enables us to get pip info, functionality that is not exposed on the CLI but very much available as you can see, marking a huge advance for aero.

Pyrus

Supported commands:

  • search
  • install
  • info
$ aero search pyrus:ncurses

────────────────────────────────────────────────────────────────────────────────
                 PACKAGE NAME   DESCRIPTION
──────────────────────────────┬─────────────────────────────────────────────────
   pyrus:pecl.php.net/ncurses β”‚ Version:1.0.2 (API 1.0.0)
                              β”‚ http://pecl.php.net/ncurses
                              β”‚ Terminal screen handling and optimization
                              β”‚ package
──────────────────────────────┴─────────────────────────────────────────────────

$ aero info pyrus:pecl.php.net/ncurses

────────────────────────────────────────────────────────────────────────────────
                 INFORMATION:   pecl.php.net/ncurses
──────────────────────────────┬─────────────────────────────────────────────────
                     Version: β”‚ 1.0.2 (API 1.0.0)
                   Stability: β”‚ stable (API stable)
                Release Date: β”‚ 2012-06-16 17:05:19
                     Summary: β”‚ Terminal screen handling and optimization
                              β”‚ package
                 Description: β”‚ ncurses (new curses) is a free software
                              β”‚ emulation of curses in System V Rel 4.0 (and
                              β”‚ above). It uses terminfo format, supports
                              β”‚ pads, colors, multiple highlights, form ch...
               Release Notes: β”‚ - Fixed build on PHP 5.3+ - Fixed bug #60853
                              β”‚ (Missing NCURSES_KEY_HOME constant)...
──────────────────────────────┴─────────────────────────────────────────────────

Special notes:

Similar to brew, with pyrus you are also required to call info should you require more details about a particular package. Luckily aero is more considerate and will call info on your behalf to provide you with more information in the search results.

Macports

Supported commands:

  • search
  • install
  • info
$ aero search port:cowsay

────────────────────────────────────────────────────────────────────────────────
                 PACKAGE NAME   DESCRIPTION
──────────────────────────────┬─────────────────────────────────────────────────
                  port:cowsay β”‚ @3.03 (textproc, amusements, games) Configurable
                              β”‚ talking characters in ASCII art
                  port:insub  β”‚ @13.0 (irc) extra cowsay cows and irssi script
──────────────────────────────┴─────────────────────────────────────────────────

$ aero info port:insub

────────────────────────────────────────────────────────────────────────────────
                 INFORMATION:   insub
──────────────────────────────┬─────────────────────────────────────────────────
            Metadata-Version: β”‚ 1.0
                     Version: β”‚ @13.0 (irc)
                 Description: β”‚ Handy tools for being obnoxious on IRC. Warning:
                              β”‚ some of the cows are potentially offensive.
                    Homepage: β”‚ http://gruntle.org/projects/irssi/insub/
                   Platforms: β”‚ darwin
                     License: β”‚ unknown
                 Maintainers: β”‚ [email protected]
──────────────────────────────┴─────────────────────────────────────────────────

Going forward

As well as extending the current functionality we also plan to support:

  • fink
  • yum
  • composer local

Known issues

Items that require some attention: (Let us know if you want to tackle any of these)

  • The pass through is dodgy, some issues with argparse, passing --long-name-args in quotes work but -l short name fails.
  • Autocomplete should complete known packages obtained through searching.
  • No unit tests as yet
  • Limited to no codedocs

Releases

New releases are made available on a regular basis as time allows.

Changelog

v0.0.1 alpha 3 - 2012-12-28

  • Minor bug fixes
  • Improved command install response

v0.0.1 alpha 2 - 2012-12-26

  • Pip info capable now - whoop whoop!
  • Pip via pip library instead of sub-process
  • Unicode done right
  • Use unicode box drawing chars in output
  • Normalized info output title case
  • Refactored commands as package
  • Refactored arguments
  • Improved command line argument exposure
  • RF CommandProcessor render method extraction
  • Improved pager detection (lazy)
  • Replaced autocompletion with argcomplete
  • Improved imports (lazy)
  • Improved adapter implementation
  • Improved resources free on exit
  • Improved pass through implementation
  • Improved output display and fix typos
  • Improved output for pecl and pear
  • Repaired pyrus adapter
  • Added support for Advanced Package Manage (apt)
  • Tested on Linux (ubuntu)
  • Terminal window actual size consideration, works with 80 cols or more
  • Get dependencies from requirements.txt
  • Pygmentized help output
  • Using codecs.open instead of file.open for assets
  • Documentation as Restructured Text (rst)
  • Updated documentation

v0.0.1 alpha 1 - 2012-12-02

  • Fixed installation issues and dependency installation
  • Increased cache granularity command:adapter:package
  • Support for multiple packages simultaneously
  • Support for pass through arguments
  • Progress indication
  • Major BaseCommand refactor and Piped Coroutine workflow
  • BaseAdapter refactor to simplify adapter implementations
  • Colorized output goodness
  • Tap brew extended repositories
  • Optimize screen real estate utilization - display Version, url (where available) and Short description only in search results
  • In process piped output - pager without a tmp file
  • DebugCommand support to simplify adapter creation
  • Added support for pear, pecl, pyrus
  • Gracefully accept abnormal program termination
  • Search commands that require more info now uses aero which caches the info details for each package

License

The New BSD License. see LICENSE.txt

Acknowledge

Original Ascii art done by:

  • Si Deane
  • Chad Vice
  • Scott Davey
  • Wil Dixon
  • Brad Leftwich
  • Thor Aage Eldby
  • Ennis Trimble
  • Joan Stark
  • Jochem Berends
                                   __/\__
                                  `==/\==Β΄
 _         _____        ____________/__\____________        _____         _
(__\______o=/ /=_ |    /____________________________\    | _=\ \=o______/__)
>---\\\\ _/_/_^^]:>      __||__||__/.--.\__||__||__      <:[^^_\_\_ ////---<
__       _/_/|´´  |     /__|___|___( >< )___|___|__\     |  ``|\_\_       __
β”‚ \_________<0)____________________0`--Β΄0____________________(0>_________/ β”‚
β”‚                                                                          β”‚
β”‚                    Brought to you by the Respect team.                   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜