Difference between revisions of "Package:Ego"

From Funtoo
Jump to navigation Jump to search
(Added query and sync modules)
(Added query versions documentation)
Line 9: Line 9:
{{c|ego}} is a meta-tool that works similarly to eselect. Typing {{c|ego}} will show a list of available commands. Some of the benefits of ego over eselect are that ego modules can be implemented in any language. In addition, the ego architecture is designed so that the modules are themselves stand-alone commands, which allows you to access these sub-commands using shortcuts. For example, {{c|epro}} is a shortcut for {{c|ego profile}}.
{{c|ego}} is a meta-tool that works similarly to eselect. Typing {{c|ego}} will show a list of available commands. Some of the benefits of ego over eselect are that ego modules can be implemented in any language. In addition, the ego architecture is designed so that the modules are themselves stand-alone commands, which allows you to access these sub-commands using shortcuts. For example, {{c|epro}} is a shortcut for {{c|ego profile}}.


=== Ego Modules ===
== Ego Modules ==


{{TableStart}}
{{TableStart}}
{{3Col|'''type'''|'''sub-command'''|'''description'''}}
{{3Col|'''type'''|'''sub-command'''|'''description'''}}
{{3Col|profile|{{c|epro}}|Profile management -- see [[Funtoo Profiles]] for usage information}}
{{3Col|profile|{{c|epro}}|Profile management -- see [[Funtoo Profiles]] for usage information}}
{{3Col|doc|{{c|edoc}}|Display wiki documentation}}
{{3Col|query|-|Query information about packages}}
{{3Col|query|-|Query information about packages}}
{{3Col|sync|-|Synchronize Portage tree}}
{{3Col|sync|-|Synchronize Portage tree}}
{{TableEnd}}
{{TableEnd}}
=== Query module ===
{{c|ego query}} module is a tool to display information about packages. Bellow are described the various available commands.
==== Versions ====
The {{c|versions}} (shortcut: {{c|v}}) command, lists all available versions matching a given atom. For each version, it also shows its slot and repository (along with git branch if any).
<console>
$##i## ego query versions python
dev-lang/python|    slot|                repo
----------------+---------+---------------------
          ##c##2.7.12##!c##|      ##y##2.7##!y##| ##bl##python-kit##!bl##/##g##3.6-prime
        ##b##* ##c##2.7.13##!c####!b##|        | ##bl##python-kit##!bl##/##g##3.6-prime
----------------+---------+---------------------
          ##c##3.4.5##!c##| ##y##3.4/3.4m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime
          ##c##3.4.6##!c##|        | ##bl##python-kit##!bl##/##g##3.6-prime
----------------+---------+---------------------
        ##b##* ##c##3.5.3##!c####!b##| ##y##3.5/3.5m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime
----------------+---------+---------------------
      ##b##* ##c##3.6.1-r1##!c####!b##| ##y##3.6/3.6m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime
$##i## ego query versions '=python-3*'
dev-lang/python|    slot|                repo
----------------+---------+---------------------
          ##c##3.4.5##!c##| ##y##3.4/3.4m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime
          ##c##3.4.6##!c##|        | ##bl##python-kit##!bl##/##g##3.6-prime
----------------+---------+---------------------
        ##b##* ##c##3.5.3##!c####!b##| ##y##3.5/3.5m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime
----------------+---------+---------------------
      ##b##* ##c##3.6.1-r1##!c####!b##| ##y##3.6/3.6m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime
$##i## ego query v dev-lang/python:3.5
dev-lang/python|    slot|                repo
----------------+---------+---------------------
        ##b##* ##c##3.5.3##!c####!b##| ##y##3.5/3.5m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime
$##i## ego query v coffee-script
dev-lang/coffee-script| slot|          repo
-----------------------+-----+---------------
              ##c##1.9.3-r1##!c##|    ##y##0##!y##| ##bl##dev-kit##!bl##/##g##master
              ##b##* ##c##1.12.5##!c####!b##|    | ##bl##dev-kit##!bl##/##g##master
dev-ruby/coffee-script| slot|          repo
-----------------------+-----+---------------
                  ##c##2.4.1##!c##|    ##y##0##!y##| ##bl##dev-kit##!bl##/##g##master
Installed versions are bold and marked with a star ({{c|*}}).
</console>


{{EbuildFooter}}
{{EbuildFooter}}

Revision as of 11:54, September 23, 2017

Ego

   Tip

We welcome improvements to this page. To edit this page, Create a Funtoo account. Then log in and then click here to edit this page. See our editing guidelines to becoming a wiki-editing pro.


ego is Funtoo's official system personality management tool, designed to eventually replace the venerable eselect from Gentoo Linux. Daniel Robbins created a new meta-tool to replace eselect because eselect has a couple of design issues. It requires extensions to be written as shell scripts, which is a big limitation. With the advent of Funtoo's modular profile system, eselect profile was becoming cumbersome to use, and I needed to make the tool faster and more feature-rich. Ultimately, shell scripts are too slow and too hard to use to implement advanced functionality.

ego is a meta-tool that works similarly to eselect. Typing ego will show a list of available commands. Some of the benefits of ego over eselect are that ego modules can be implemented in any language. In addition, the ego architecture is designed so that the modules are themselves stand-alone commands, which allows you to access these sub-commands using shortcuts. For example, epro is a shortcut for ego profile.

Ego Modules

typesub-commanddescription
profileeproProfile management -- see Funtoo Profiles for usage information
docedocDisplay wiki documentation
query-Query information about packages
sync-Synchronize Portage tree

Query module

ego query module is a tool to display information about packages. Bellow are described the various available commands.

Versions

The versions (shortcut: v) command, lists all available versions matching a given atom. For each version, it also shows its slot and repository (along with git branch if any).

user $ ego query versions python
 dev-lang/python|     slot|                 repo
----------------+---------+---------------------
          2.7.12|      2.7| python-kit/3.6-prime
        * 2.7.13|         | python-kit/3.6-prime
----------------+---------+---------------------
           3.4.5| 3.4/3.4m| python-kit/3.6-prime
           3.4.6|         | python-kit/3.6-prime
----------------+---------+---------------------
         * 3.5.3| 3.5/3.5m| python-kit/3.6-prime
----------------+---------+---------------------
      * 3.6.1-r1| 3.6/3.6m| python-kit/3.6-prime

user $ ego query versions '=python-3*'
 dev-lang/python|     slot|                 repo
----------------+---------+---------------------
           3.4.5| 3.4/3.4m| python-kit/3.6-prime
           3.4.6|         | python-kit/3.6-prime
----------------+---------+---------------------
         * 3.5.3| 3.5/3.5m| python-kit/3.6-prime
----------------+---------+---------------------
      * 3.6.1-r1| 3.6/3.6m| python-kit/3.6-prime

user $ ego query v dev-lang/python:3.5
 dev-lang/python|     slot|                 repo
----------------+---------+---------------------
         * 3.5.3| 3.5/3.5m| python-kit/3.6-prime

user $ ego query v coffee-script
 dev-lang/coffee-script| slot|           repo
-----------------------+-----+---------------
               1.9.3-r1|    0| dev-kit/master
               * 1.12.5|     | dev-kit/master

 dev-ruby/coffee-script| slot|           repo
-----------------------+-----+---------------
                  2.4.1|    0| dev-kit/master

Installed versions are bold and marked with a star ({{c|*}}).