Skip to content
This repository was archived by the owner on Dec 8, 2022. It is now read-only.

Tusk Specification

bryanwb edited this page Sep 13, 2010 · 15 revisions

Here is a draft of how the tusk command should behave and of the structure of related files

Tusk commands

tusk [--sea <sea>] ...
tusk [--global]
tusk [--globe <globe>]
tusk [--no-globe] # default for root, euid 0
tusk install <package>...
    downloads and installs packages and their transitive dependencies
tusk remove <package>...
tusk package
    unusual, package specific commands
tusk orphans
    lists packages that are no longer needed
tusk apropos <keyword>...
    searches for intersection of exact words
tusk search <word>...
    full text search of keywords and description
tusk catalog
    catalog specific commands

The Full Command Tree

upgrade # upgrades all packages
package
      install  # (top level alias)
      remove
      list # all installed packages
      clone  # uses the VCS of a package's project toinstall it.  It takes --user name and --owner so you can check out an alternate repository.    
                  only works for packages that use a VCS like github, mentioned in sources.json.
      link # symlinks a package into this sea
      select name version  # create as symlink from "versions/{name}/{version}" to "packages/{name}", searching
          package.prefixes for the package and creating the symlink in package.prefixes[0]
      upgrade   # downloads the current version, removes unused files from previous install as mentioned in .tusk/notes.json
         dependencies # prints the dependencies
    orphans   # shows installed packages with no dependee
    adopt   # marks a package as user-requested
sea
    (init <path> [--alone] [--type browser/gae/child]) # top level alias
         lonely seas, particularly GAE, will have their own
         copy of "narwhal" installed as a package
    info
    freeze # archives info on the versions of installed packages
    reheat # installs transitive dependencies of the root package,
         respecting archived version information if available
         necessary for creating war/WEB-INF seas for GAE
    bundle ==[ path ] [--production / --development]    #generates a build of all the modules in the sea==
catalog
    add name package-url
    remove name
    create # creates a catalog from the catalog sources  ?sources.json?
    update name # updates the catalog
    (search [--key value...]) # full text
    (apropos) # keyword intersection
    create   # recreates the catalog by downloading all package.jsons,
                  referenced in sources.json or catalogs therein, transitively
    list       # list all active catalogs
    packages ==--catalog name   # List all packages in given catalog. If --catalog is omitted the sea catalog is used.==
    packages ==--catalog name overlay==
         Add the catalog with name overlay as an overlay to '--catalog'. All package searches in the catalog will first check the overlay   
         catalog.
cache
    clear
config
   show

Structure and Interpretation of catalog.json

Related Tusk Discussions, Organization of catalog.json

Clone this wiki locally