
                                     Index


                               Johannes Schlatow


Goa supports exporting and publishing a depot index. If a directory contains
an _index_ file, it will be considered an index project. Goa evaluates the
_sculpt_version_ variable to determine for which Sculpt version the index
will be exported/published.


DESCRIPTION
###########

The _index_ file contains HID data with an _index_ node at top level.
Each index file features a declaration of the CPU architectures supported by
the package provider. Sculpt OS evaluates this to decide whether to display
the depot index.

! index
! + supports | arch: x86_64
! + supports | arch: arm_v8a
!  ...

An _index_ file further contains an arbitrary number of _pkg_, _src_
or _api_ nodes which
define the archives provided in this depot. Such a node contains the
following attributes:

:path: The _path_ attribute specifies the archive name. Goa uses its built-in
  mechanisms to determine the current version of this archive
  (see *goa help config*). The archive must either be present in the user's
  depot or a corresponding Goa project must exist in the current search
  directory. Alternatively, the _path_ attribute may specify the full archive
  path as _<user>/<type>/<name>_ or _<user>/<type>/<name>/<version>_.

:info: The _info_ attribute contains a brief description of the package.

:arch: The optional _arch_ attribute can be used to restrict the supported
  CPU architectures for this particular package.

A depot index may be structured by nesting named _index_ nodes and thereby
divide the provided packages into categories, e.g.:

! index
! + supports | arch: x86_64
! + supports | arch: arm_v8a
!
! + index GUI | arch: x86_64
!   + pkg
!   |     path: sticks_blue_backdrop
!   |     info: default desktop background
!   + pkg
!   |     path: themed_wm
!   |     info: ready-to-use window manager
!
! + index Tools
!   + pkg
!   |     path: system_shell
!   |     info: command-line interface to the system
!   + pkg
!   |     path: system_clock-pc
!   |     info: real-time-clock service
!   |     arch: x86_64
! -

As shown in the above example, each sub-index can be restricted to a particular
CPU architecture.


SEE ALSO
########

add-depot-user, api, artifacts, build-systems, config, import, overview, runtime, targets

