repository

package
v0.29.0-geaaru Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 4, 2022 License: GPL-3.0 Imports: 23 Imported by: 0

Documentation

Overview

Copyright © 2022 Macaroni OS Linux See AUTHORS and LICENSE for the license details and contributors.

Copyright © 2022 Macaroni OS Linux See AUTHORS and LICENSE for the license details and contributors.

Copyright © 2022 Macaroni OS Linux See AUTHORS and LICENSE for the license details and contributors.

Copyright © 2022 Macaroni OS Linux See AUTHORS and LICENSE for the license details and contributors.

Copyright © 2022 Macaroni OS Linux See AUTHORS and LICENSE for the license details and contributors.

Index

Constants

View Source
const (
	REPOSITORY_METAFILE  = "repository.meta.yaml"
	REPOSITORY_SPECFILE  = "repository.yaml"
	TREE_TARBALL         = "tree.tar"
	COMPILERTREE_TARBALL = "compilertree.tar"

	REPOFILE_TREE_KEY          = "tree"
	REPOFILE_COMPILER_TREE_KEY = "compilertree"
	REPOFILE_META_KEY          = "meta"

	// TODO: To move on a specific package
	DiskRepositoryType   = "disk"
	HttpRepositoryType   = "http"
	DockerRepositoryType = "docker"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ArtifactIndex

type ArtifactIndex []*artifact.PackageArtifact

type ChannelSearchRes

type ChannelSearchRes struct {
	Stones    *[]*Stone
	Artifacts *[]*artifact.PackageArtifact

	Error error
}

type Client

type Client interface {
	DownloadArtifact(*artifact.PackageArtifact) error
	DownloadFile(string) (string, error)
}

type LuetFinalizer

type LuetFinalizer struct {
	Shell     []string `json:"shell,omitempty" yaml:"shell,omitempty"`
	Install   []string `json:"install,omitempty" yaml:"install,omitempty"`
	Uninstall []string `json:"uninstall,omitempty" yaml:"uninstall,omitempty"`
}

func NewLuetFinalizerFromYaml

func NewLuetFinalizerFromYaml(data []byte) (*LuetFinalizer, error)

func (*LuetFinalizer) RunInstall

func (f *LuetFinalizer) RunInstall(targetRootfs string) error

func (*LuetFinalizer) RunUninstall

func (f *LuetFinalizer) RunUninstall(targetRootfs string) error

type Stone

type Stone struct {
	Name        string                 `json:"name" yaml:"name"`
	Category    string                 `json:"category" yaml:"category"`
	Version     string                 `json:"version" yaml:"version"`
	License     string                 `json:"license,omitempty" yaml:"license,omitempty"`
	Repository  string                 `json:"repository,omitempty" yaml:"repository"`
	Hidden      bool                   `json:"hidden,omitempty" yaml:"hidden,omitempty"`
	Files       []string               `json:"files,omitempty" yaml:"files,omitempty"`
	Annotations map[string]interface{} `json:"annotations,omitempty" yaml:"annotations,omitempty"`
	Labels      map[string]string      `json:"labels,omitempty" yaml:"labels,omitempty"`
	UseFlags    []string               `json:"use_flags,omitempty" yaml:"use_flags,omitempty"`

	Provides  []*Stone `json:"provides,omitempty" yaml:"provides,omitempty"`
	Requires  []*Stone `json:"requires,omitempty" yaml:"requires,omitempty"`
	Conflicts []*Stone `json:"conflicts,omitempty" yaml:"conflicts,omitempty"`
}

func NewStone

func NewStone(p *artifact.PackageArtifact, repo string, withFiles, full bool) *Stone

func (*Stone) GetName

func (s *Stone) GetName() string

func (*Stone) HumanReadableString

func (s *Stone) HumanReadableString() string

func (*Stone) ToPackage

func (s *Stone) ToPackage() *pkg.DefaultPackage

type StonesCatalog

type StonesCatalog struct {
	Index ArtifactIndex `json:"index" yaml:"index"`
}

type StonesMap

type StonesMap struct {
	Stones map[string][]*Stone `json:"stones" yaml:"stones"`
}

func (*StonesMap) Add

func (sm *StonesMap) Add(s *Stone)

func (*StonesMap) AddPack

func (sm *StonesMap) AddPack(sp *StonesPack)

type StonesPack

type StonesPack struct {
	Stones []*Stone `json:"stones" yaml:"stones"`
}

func (*StonesPack) ToMap

func (sp *StonesPack) ToMap() *StonesMap

type StonesSearchOpts

type StonesSearchOpts struct {
	Packages      pkg.DefaultPackages
	Categories    []string
	Labels        []string
	LabelsMatches []string
	Matches       []string
	FilesOwner    []string
	Annotations   []string
	Hidden        bool
	AndCondition  bool
	WithFiles     bool
	Full          bool

	Modev2 bool
}

type StonesSearchTask

type StonesSearchTask struct {
	Ctx *context.Context
	// contains filtered or unexported fields
}

type WagonDocument

type WagonDocument struct {
	FileName        string                     `json:"filename" yaml:"filename"`
	CompressionType compression.Implementation `json:"compressiontype,omitempty" yaml:"compressiontype,omitempty"`
	Checksums       artifact.Checksums         `json:"checksums,omitempty" yaml:"checksums,omitempty"`
}

func (*WagonDocument) GetChecksums

func (f *WagonDocument) GetChecksums() artifact.Checksums

GetChecksums gets the checksum of the repository file. Each repository can ship arbitrary file that will be downloaded by the client in case of need, this gets the checksums that the client will use to verify the artifact

func (*WagonDocument) GetCompressionType

func (f *WagonDocument) GetCompressionType() compression.Implementation

GetCompressionType gets the compression type of the repository file. Each repository can ship arbitrary file that will be downloaded by the client in case of need, this gets the compression type that the client will use to uncompress the artifact

func (*WagonDocument) GetFileName

func (f *WagonDocument) GetFileName() string

GetFileName returns the name of the repository file. Each repository can ship arbitrary file that will be downloaded by the client in case of need, this gets the filename that the client will pull

func (*WagonDocument) SetChecksums

func (f *WagonDocument) SetChecksums(c artifact.Checksums)

SetChecksums sets the checksum of the repository file. Each repository can ship arbitrary file that will be downloaded by the client in case of need, this sets the checksums that the client will use to verify the artifact

func (*WagonDocument) SetCompressionType

func (f *WagonDocument) SetCompressionType(c compression.Implementation)

SetCompressionType sets the compression type of the repository file. Each repository can ship arbitrary file that will be downloaded by the client in case of need, this sets the compression type that the client will use to uncompress the artifact

func (*WagonDocument) SetFileName

func (f *WagonDocument) SetFileName(n string)

SetFileName sets the name of the repository file. Each repository can ship arbitrary file that will be downloaded by the client in case of need, this set the filename that the client will pull

type WagonIdentity

type WagonIdentity struct {
	*config.LuetRepository `yaml:",inline" json:",inline"`

	IdentityFile    string                    `yaml:-" json:"-"`
	RepositoryFiles map[string]*WagonDocument `yaml:"repo_files,omitempty" json:"repo_files,omitempty"`
}

func NewWagonIdentify

func NewWagonIdentify(l *config.LuetRepository) *WagonIdentity

func (*WagonIdentity) DownloadDocument

func (w *WagonIdentity) DownloadDocument(c Client, key string) (*artifact.PackageArtifact, error)

func (*WagonIdentity) GetAuthentication

func (w *WagonIdentity) GetAuthentication() map[string]string

func (*WagonIdentity) GetLastUpdate

func (w *WagonIdentity) GetLastUpdate() string

func (*WagonIdentity) GetMetaPath

func (w *WagonIdentity) GetMetaPath() string

func (*WagonIdentity) GetName

func (w *WagonIdentity) GetName() string

func (*WagonIdentity) GetRevision

func (w *WagonIdentity) GetRevision() int

func (*WagonIdentity) GetTreePath

func (w *WagonIdentity) GetTreePath() string

func (*WagonIdentity) GetType

func (w *WagonIdentity) GetType() string

func (*WagonIdentity) GetUrls

func (w *WagonIdentity) GetUrls() []string

func (*WagonIdentity) GetVerify

func (w *WagonIdentity) GetVerify() bool

func (*WagonIdentity) IncrementRevision

func (w *WagonIdentity) IncrementRevision()

func (*WagonIdentity) Is2Update

func (w *WagonIdentity) Is2Update(newIdentity *WagonIdentity) bool

func (*WagonIdentity) Load

func (w *WagonIdentity) Load(f string) error

func (*WagonIdentity) SetLastUpdate

func (w *WagonIdentity) SetLastUpdate(u string)

func (*WagonIdentity) SetType

func (w *WagonIdentity) SetType(p string)

func (*WagonIdentity) SetVerify

func (w *WagonIdentity) SetVerify(p bool)

func (*WagonIdentity) Valid

func (w *WagonIdentity) Valid() bool

type WagonRepository

type WagonRepository struct {
	Identity *WagonIdentity
	Stones   *WagonStones
}

func NewWagonRepository

func NewWagonRepository(l *config.LuetRepository) *WagonRepository

func (*WagonRepository) ClearCatalog

func (w *WagonRepository) ClearCatalog()

func (*WagonRepository) Client

func (w *WagonRepository) Client() Client

func (*WagonRepository) ExplodeMetadata

func (w *WagonRepository) ExplodeMetadata() error

func (*WagonRepository) GetLastUpdate

func (w *WagonRepository) GetLastUpdate() string

func (*WagonRepository) GetMetaPath

func (w *WagonRepository) GetMetaPath(repobasedir string) string

func (*WagonRepository) GetRevision

func (w *WagonRepository) GetRevision() int

func (*WagonRepository) GetTreePath

func (w *WagonRepository) GetTreePath(repobasedir string) string

func (*WagonRepository) HasLocalWagonIdentity

func (w *WagonRepository) HasLocalWagonIdentity(wdir string) bool

func (*WagonRepository) IncrementRevision

func (w *WagonRepository) IncrementRevision()

func (*WagonRepository) ReadWagonIdentify

func (w *WagonRepository) ReadWagonIdentify(wdir string) error

func (*WagonRepository) SearchArtifacts

func (w *WagonRepository) SearchArtifacts(opts *StonesSearchOpts) (*[]*artifact.PackageArtifact, error)

func (*WagonRepository) SearchArtifactsFromCatalog

func (w *WagonRepository) SearchArtifactsFromCatalog(opts *StonesSearchOpts) (*[]*artifact.PackageArtifact, error)

func (*WagonRepository) SearchStones

func (w *WagonRepository) SearchStones(opts *StonesSearchOpts) (*[]*Stone, error)

func (*WagonRepository) SearchStonesFromCatalog

func (w *WagonRepository) SearchStonesFromCatalog(opts *StonesSearchOpts) (*[]*Stone, error)

func (*WagonRepository) SetLastUpdate

func (w *WagonRepository) SetLastUpdate(u string)

func (*WagonRepository) Sync

func (w *WagonRepository) Sync(force bool) error

The Sync method update the repository.

In particular, follow these steps:

  • download the main repository.yaml file to a temporary directory
  • load the new repository.yaml as WagonIdentity and compare revision and last update date with the current status.
  • if there is a new revision download the meta and tree file and unpack them to the local cache.

NOTE:

Until I will implement the new metadata tarball
i need process metadata and write under the treefs
the artifacts information.

If force is true the download of the meta and tree files are done always.

type WagonStones

type WagonStones struct {
	Catalog *StonesCatalog
}

func NewWagonStones

func NewWagonStones() *WagonStones

func (*WagonStones) LoadCatalog

func (s *WagonStones) LoadCatalog(identity *WagonIdentity) (*StonesCatalog, error)

func (*WagonStones) Search

func (s *WagonStones) Search(opts *StonesSearchOpts, repoName, repoDir string) (*[]*Stone, error)

func (*WagonStones) SearchArtifacts

func (s *WagonStones) SearchArtifacts(opts *StonesSearchOpts, repoName, repoDir string) (*[]*artifact.PackageArtifact, error)

The SearchArtifacts instead to read artifacts from memory (catalog) it tries to return all artifacts matching with the search options reading metadata from files under the treefs directory.

func (*WagonStones) SearchArtifactsFromCatalog

func (s *WagonStones) SearchArtifactsFromCatalog(
	opts *StonesSearchOpts, repoName string) (*[]*artifact.PackageArtifact, error)

func (*WagonStones) SearchFromCatalog

func (s *WagonStones) SearchFromCatalog(opts *StonesSearchOpts, repoName string) (*[]*Stone, error)

Directories

Path Synopsis
Copyright © 2022 Macaroni OS Linux See AUTHORS and LICENSE for the license details and contributors.
Copyright © 2022 Macaroni OS Linux See AUTHORS and LICENSE for the license details and contributors.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL