Aeronautics / aero

The aero command line package recycler.
BSD 3-Clause "New" or "Revised" License
13 stars 3 forks source link

Initial foundations #14

Closed nickl- closed 11 years ago

nickl- commented 11 years ago

@alganet @jaysonsantos @henriquemoody @augustohp @wesleyvicthor I have new toys for you \o/

https://github.com/Aeronautics/aero/tree/develop

Can someone with permissions kindly set the default branch to develop, please.

Let me know what you think, bring your hates and loves, cares and joys, happiness and dismay it's all ok lets hear about it.

P.S> That includes checking if you can break it as well, if you can :p heheh

nJoy!

alganet commented 11 years ago

Absolutely awesome!

Loved the experience. Had a problem with yaml when installing (had to install pyyaml through easy_install) but everything went smooth after that.

The aero search command could use terminal space a little better, perhaps just two columns with name/version and package description would be better for those who just want to see which packages are available. What do you guys think?

Loved the planes!

Happy Plane

nickl- commented 11 years ago

@alganet cat you give an example of what you mean since the results are currently in 2 columns package and description as you are suggesting. Pardon me if I'm being blonde.

We generally try to list Author, Version and Description where available but the same information is not necessarily available. So there is already information being purged but I think you are referring to brew specifically.

The results not including brew: (I made some tweaks to gem)

                                    PACKAGE NAME   DESCRIPTION                                         
        ________________________________________   __________________________________________________  
                                gem:RubyPackager : version: (1.2.0.20120302)                         
                                                   Author: Muriel Salvan                             
                                                   Homepage: http://rubypackager.sourceforge.net/    
                                                   Solution to release Ruby programs on any platform.
                         npm:javascript-packager : Author: guillaumeparis2000 2012-08-14 07:55       
                                                   Conactenate and minify javscripts files           
                                                   Tags: watch, javascript, packager, uglify, minify 
                                  pip:pypackager : PyPackager is an onboard developpers toolswhich is
                                                   usefull to create sources and                     
                                                   binaryMaemo/Harmattan/MeeGo package.              
                          port:xserve-raid-tools : @1.2 (sysutils, net) The xserve-raid-tools package
                                                   provides command line tools and a daemon for      
                                                   monitoring Apple Xserve RAIDs. It also contains a 
                                                   Nagios plugin to monitor Apple Xserve RAIDs.      

What we get from gem:

$ gem search -qbd RubyPackager

*** LOCAL GEMS ***

*** REMOTE GEMS ***

RubyPackager (1.2.0.20120302)
    Author: Muriel Salvan
    Rubyforge: http://rubyforge.org/projects/rubypackager
    Homepage: http://rubypackager.sourceforge.net/

    Solution to release Ruby programs on any platform.

What npm provides:

$ npm search -q javascript-packager
NAME                 DESCRIPTION                              AUTHOR               DATE              KEYWORDS
javascript-packager  Conactenate and minify javscripts files  =guillaumeparis2000  2012-08-14 07:55  watch javascript packager uglify minify

Pip only lists a description and to top that there is no more detail or info to be obtained that I can find.

$ pip search pypackager
pypackager                - PyPackager is an onboard developpers toolswhich is usefull to create sources and binaryMaemo/Harmattan/MeeGo package.

This is what macports will supply:

$ port search xserve-raid-tools
Warning: port definitions are more than two weeks old, consider using selfupdate
xserve-raid-tools @1.2 (sysutils, net)
    The xserve-raid-tools package provides command line tools and a daemon for monitoring Apple Xserve RAIDs. It also contains a Nagios plugin to monitor Apple Xserve RAIDs.

Brew on the other hand looks like this in aero and it was quite the exorcize to manage to display the formatting in the second column as received while still maintaining suitable column width I might add:


                                    PACKAGE NAME   DESCRIPTION                                         
        ________________________________________   __________________________________________________  
                             brew:libflowmanager : version: stable 2.0.2                             
                                                   http://research.wand.net.nz/software/libflowmanage
                                                   r.php                                             
                                                   Depends on: libtrace                              
                                                   Not installed                                     
                                brew:scm-manager : version: stable 1.21                              
                                                   http://www.scm-manager.org                        
                                                   Not installed                                     
                                                   ==> Caveats                                       
                                                   If this is your first install, automatically load 
                                                   on login with:                                    
                                                       mkdir -p ~/Library/LaunchAgents               

                                                   Or start manually:                                
                                                     scm-server start                                

So agreeably maybe that is a tad verbose for the search but the problem is this:

$ brew search manager
libflowmanager  scm-manager

Brew only returns the package names on search which is not ideal and requires one to make additional enquiry to find more info. So we do the the info query for each package returned from a search:

$ brew info libflowmanager
libflowmanager: stable 2.0.2
http://research.wand.net.nz/software/libflowmanager.php
Depends on: libtrace
Not installed
https://github.com/mxcl/homebrew/commits/master/Library/Formula/libflowmanager.rb

$ brew info scm-manager
scm-manager: stable 1.21
http://www.scm-manager.org
Not installed
https://github.com/mxcl/homebrew/commits/master/Library/Formula/scm-manager.rb
==> Caveats
If this is your first install, automatically load on login with:
    mkdir -p ~/Library/LaunchAgents
    cp /usr/local/Cellar/scm-manager/1.21/homebrew.mxcl.scm-manager.plist ~/Library/LaunchAgents/
    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.scm-manager.plist

If this is an upgrade and you already have the homebrew.mxcl.scm-manager.plist loaded:
    launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.scm-manager.plist
    cp /usr/local/Cellar/scm-manager/1.21/homebrew.mxcl.scm-manager.plist ~/Library/LaunchAgents/
    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.scm-manager.plist

Or start manually:
  scm-server start

As you can see, there is really no telling what you will receive from brew info unless we only consider the first few lines because the rest is not description really but more additional information which usually is presented after installation.

Personally I would like more than just a name, as that really doesn't mean anything unless you know precisely what you are looking for and then you probably would not have had to search for it. Information that is useful would be a short description, the version number if you were wondering about that, The authors are displayed more to give them some visibility and cognitively link them to their projects but it may also help to identify the package if there should be similar ones but you know you are looking for alganet's project. The URL may be useful as you can open the page from the search results in most cases which may be useful. Knowing if it is installed or not may be useful but this is less important at this point.

Things that are generally removed which bare no specific advantage IMO would be things like links to the package or package manager specific information and other information provided by the tool not related to the search results.

The problem is to try and present consistent and similar results while consistent results are not available from the different package managers.

Am I close, Is this what you were referring to?

nickl- commented 11 years ago

Feature request implemented @726c514