upack

package
v0.0.0-...-c30a4fa Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2020 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const Version = "2.2.2"

Variables

View Source
var (
	Machine = func() Registry {
		if runtime.GOOS == "windows" {
			return Registry(filepath.Join(os.Getenv("ProgramData"), "upack"))
		}
		return "/var/lib/upack"
	}()
	User = func() Registry {
		u, err := user.Current()
		if err != nil {
			panic(err)
		}
		return Registry(filepath.Join(u.HomeDir, ".upack"))
	}()
	Unregistered = Registry("")
)

Functions

func AddDirectory

func AddDirectory(zipFile *zip.Writer, sourceDirectory, entryRootPath string) (err error)

func CreateEntryFromFile

func CreateEntryFromFile(zipFile *zip.Writer, fileName, entryPath string) (err error)

func CreateEntryFromStream

func CreateEntryFromStream(zipFile *zip.Writer, file io.Reader, entryPath string) (err error)

func GetSHA1

func GetSHA1(filePath string) (h string, err error)

func GetVersion

func GetVersion(source, group, name, version string, credentials *[2]string, prerelease bool) (string, error)

func Main

func Main()

func PrintManifest

func PrintManifest(info *UniversalPackageMetadata)

func UnpackZip

func UnpackZip(targetDirectory string, overwrite bool, zipFile *zip.Reader, preserveTimestamps bool) error

func ValidateManifest

func ValidateManifest(info *UniversalPackageMetadata) error

Types

type Command

type Command interface {
	Name() string
	Description() string

	Help() string
	Usage() string

	PositionalArguments() []PositionalArgument
	ExtraArguments() []ExtraArgument

	Run() int
}

type CommandDispatcher

type CommandDispatcher []Command

func (CommandDispatcher) Main

func (cd CommandDispatcher) Main(args []string)

func (CommandDispatcher) ShowGenericHelp

func (cd CommandDispatcher) ShowGenericHelp()

func (CommandDispatcher) ShowHelp

func (cd CommandDispatcher) ShowHelp(cmd Command)

type ExtraArgument

type ExtraArgument struct {
	Name        string
	Alias       []string
	Description string
	TrySetValue func(Command, *string) bool
	Required    bool
	Flag        bool
}

func (ExtraArgument) Help

func (a ExtraArgument) Help() string

func (ExtraArgument) Usage

func (a ExtraArgument) Usage() string

type Hash

type Hash struct {
	PackagePath string
}

func (*Hash) Description

func (*Hash) Description() string

func (*Hash) ExtraArguments

func (*Hash) ExtraArguments() []ExtraArgument

func (*Hash) Help

func (h *Hash) Help() string

func (*Hash) Name

func (*Hash) Name() string

func (*Hash) PositionalArguments

func (*Hash) PositionalArguments() []PositionalArgument

func (*Hash) Run

func (h *Hash) Run() int

func (*Hash) Usage

func (h *Hash) Usage() string

type Install

type Install struct {
	PackageName        string
	Version            string
	SourceURL          string
	TargetDirectory    string
	Authentication     *[2]string
	Overwrite          bool
	Prerelease         bool
	Comment            *string
	UserRegistry       bool
	Unregistered       bool
	CachePackages      bool
	PreserveTimestamps bool
}

func (*Install) Description

func (*Install) Description() string

func (*Install) ExtraArguments

func (*Install) ExtraArguments() []ExtraArgument

func (*Install) Help

func (i *Install) Help() string

func (*Install) Name

func (*Install) Name() string

func (*Install) OpenPackage

func (i *Install) OpenPackage() (io.ReaderAt, int64, func() error, error)

func (*Install) PositionalArguments

func (*Install) PositionalArguments() []PositionalArgument

func (*Install) Run

func (i *Install) Run() int

func (*Install) Usage

func (i *Install) Usage() string

type InstalledPackage

type InstalledPackage struct {
	Group   string                   `json:"group,omitempty"`
	Name    string                   `json:"name"`
	Version *UniversalPackageVersion `json:"version"`

	// The absolute path on disk where the package was installed to.
	Path *string `json:"path"`

	// An absolute URL of the universal feed where the package was installed from.
	FeedURL *string `json:"feedURL,omitempty"`

	// The UTC date when the package was installed.
	InstallationDate *InstalledPackageDate `json:"installationDate,omitempty"`

	// The reason or purpose of the installation.
	InstallationReason *string `json:"installationReason"`

	// The mechanism used to install the package. There are no format restrictions, but we recommend treating it like a User Agent string and including the tool name and version.
	InstalledUsing *string `json:"installedUsing,omitempty"`

	// The person or service that performed the installation.
	InstalledBy *string `json:"installedBy,omitempty"`
}

type InstalledPackageDate

type InstalledPackageDate struct {
	Date time.Time
	// contains filtered or unexported fields
}

func (InstalledPackageDate) MarshalText

func (i InstalledPackageDate) MarshalText() ([]byte, error)

func (*InstalledPackageDate) UnmarshalText

func (i *InstalledPackageDate) UnmarshalText(b []byte) error

type List

type List struct {
	UserRegistry bool
}

func (*List) Description

func (*List) Description() string

func (*List) ExtraArguments

func (*List) ExtraArguments() []ExtraArgument

func (*List) Help

func (l *List) Help() string

func (*List) Name

func (*List) Name() string

func (*List) PositionalArguments

func (*List) PositionalArguments() []PositionalArgument

func (*List) Run

func (l *List) Run() int

func (*List) Usage

func (l *List) Usage() string

type Metadata

type Metadata struct {
	PackageName    string
	Version        string
	SourceURL      string
	Authentication *[2]string
	FilePath       string
}

func (*Metadata) Description

func (*Metadata) Description() string

func (*Metadata) ExtraArguments

func (*Metadata) ExtraArguments() []ExtraArgument

func (*Metadata) Help

func (m *Metadata) Help() string

func (*Metadata) Name

func (*Metadata) Name() string

func (*Metadata) PositionalArguments

func (*Metadata) PositionalArguments() []PositionalArgument

func (*Metadata) Run

func (m *Metadata) Run() int

func (*Metadata) Usage

func (m *Metadata) Usage() string

type Pack

type Pack struct {
	Manifest        string
	Metadata        UniversalPackageMetadata
	SourceDirectory string
	TargetDirectory string
	Note            string
	NoAudit         bool
}

func (*Pack) Description

func (*Pack) Description() string

func (*Pack) ExtraArguments

func (*Pack) ExtraArguments() []ExtraArgument

func (*Pack) Help

func (p *Pack) Help() string

func (*Pack) Name

func (*Pack) Name() string

func (*Pack) PositionalArguments

func (*Pack) PositionalArguments() []PositionalArgument

func (*Pack) ReadManifest

func (p *Pack) ReadManifest() (*UniversalPackageMetadata, error)

func (*Pack) Run

func (p *Pack) Run() int

func (*Pack) Usage

func (p *Pack) Usage() string

type PositionalArgument

type PositionalArgument struct {
	Index       int
	Name        string
	Description string
	TrySetValue func(Command, *string) bool
	Optional    bool
}

func (PositionalArgument) Help

func (a PositionalArgument) Help() string

func (PositionalArgument) Usage

func (a PositionalArgument) Usage() string

type Push

type Push struct {
	Package        string
	Target         string
	Authentication *[2]string
}

func (*Push) Description

func (*Push) Description() string

func (*Push) ExtraArguments

func (*Push) ExtraArguments() []ExtraArgument

func (*Push) Help

func (p *Push) Help() string

func (*Push) Name

func (*Push) Name() string

func (*Push) PositionalArguments

func (*Push) PositionalArguments() []PositionalArgument

func (*Push) Run

func (p *Push) Run() int

func (*Push) Usage

func (p *Push) Usage() string

type Registry

type Registry string

func (Registry) GetOrDownload

func (r Registry) GetOrDownload(group, name string, version *UniversalPackageVersion, feedURL string, feedAuthentication *[2]string, cache bool) (*os.File, func() error, error)

func (Registry) ListInstalledPackages

func (r Registry) ListInstalledPackages() ([]*InstalledPackage, error)

func (Registry) RegisterPackage

func (r Registry) RegisterPackage(group, name string, version *UniversalPackageVersion, intendedPath, feedURL string, feedAuthentication *[2]string, installationReason, installedUsing, installedBy *string) error

type RegistryLocked

type RegistryLocked struct {
	Err string
}

func (RegistryLocked) Error

func (err RegistryLocked) Error() string

type RemotePackageMetadata

type RemotePackageMetadata struct {
	Group         string   `json:"group,omitempty"`
	Name          string   `json:"name"`
	LatestVersion string   `json:"latestVersion,omitempty"`
	Versions      []string `json:"versions"`
}

type Repack

type Repack struct {
	Manifest        string
	SourcePath      string
	TargetDirectory string
	Metadata        UniversalPackageMetadata
	Note            string
	NoAudit         bool
	Overwrite       bool
}

func (*Repack) Description

func (*Repack) Description() string

func (*Repack) ExtraArguments

func (*Repack) ExtraArguments() []ExtraArgument

func (*Repack) GetMetadataToMerge

func (r *Repack) GetMetadataToMerge() (metadata *UniversalPackageMetadata, err error)

func (*Repack) Help

func (r *Repack) Help() string

func (*Repack) Name

func (*Repack) Name() string

func (*Repack) PositionalArguments

func (*Repack) PositionalArguments() []PositionalArgument

func (*Repack) Run

func (r *Repack) Run() int

func (*Repack) Usage

func (r *Repack) Usage() string

type UniversalPackageMetadata

type UniversalPackageMetadata map[string]interface{}

func GetPackageMetadata

func GetPackageMetadata(packagePath string) (metadata *UniversalPackageMetadata, err error)

func ReadManifest

func ReadManifest(r io.Reader) (*UniversalPackageMetadata, error)

func (UniversalPackageMetadata) BareVersion

func (meta UniversalPackageMetadata) BareVersion() string

func (UniversalPackageMetadata) Dependencies

func (meta UniversalPackageMetadata) Dependencies() []string

func (UniversalPackageMetadata) Description

func (meta UniversalPackageMetadata) Description() string

func (UniversalPackageMetadata) Group

func (meta UniversalPackageMetadata) Group() string

func (UniversalPackageMetadata) IconURL

func (meta UniversalPackageMetadata) IconURL() string

func (UniversalPackageMetadata) Name

func (meta UniversalPackageMetadata) Name() string

func (*UniversalPackageMetadata) SetDependencies

func (meta *UniversalPackageMetadata) SetDependencies(dependencies []string)

func (*UniversalPackageMetadata) SetDescription

func (meta *UniversalPackageMetadata) SetDescription(description string)

func (*UniversalPackageMetadata) SetGroup

func (meta *UniversalPackageMetadata) SetGroup(group string)

func (*UniversalPackageMetadata) SetIconURL

func (meta *UniversalPackageMetadata) SetIconURL(iconURL string)

func (*UniversalPackageMetadata) SetName

func (meta *UniversalPackageMetadata) SetName(name string)

func (*UniversalPackageMetadata) SetTitle

func (meta *UniversalPackageMetadata) SetTitle(title string)

func (UniversalPackageMetadata) SetVersion

func (meta UniversalPackageMetadata) SetVersion(version string)

func (UniversalPackageMetadata) Title

func (meta UniversalPackageMetadata) Title() string

func (UniversalPackageMetadata) Version

func (meta UniversalPackageMetadata) Version() string

type UniversalPackageVersion

type UniversalPackageVersion struct {
	Major, Minor, Patch big.Int
	Prerelease, Build   string
}

func NewUniversalPackageVersion

func NewUniversalPackageVersion(major, minor, patch *big.Int, prerelease, build string) *UniversalPackageVersion

func ParseUniversalPackageVersion

func ParseUniversalPackageVersion(s string) (*UniversalPackageVersion, error)

func (*UniversalPackageVersion) Compare

func (*UniversalPackageVersion) Equals

func (*UniversalPackageVersion) HashCode

func (v *UniversalPackageVersion) HashCode() uint32

func (*UniversalPackageVersion) MarshalText

func (v *UniversalPackageVersion) MarshalText() ([]byte, error)

func (*UniversalPackageVersion) String

func (v *UniversalPackageVersion) String() string

func (*UniversalPackageVersion) UnmarshalText

func (v *UniversalPackageVersion) UnmarshalText(b []byte) error

type Unpack

type Unpack struct {
	Package            string
	Target             string
	Overwrite          bool
	PreserveTimestamps bool
}

func (*Unpack) Description

func (*Unpack) Description() string

func (*Unpack) ExtraArguments

func (*Unpack) ExtraArguments() []ExtraArgument

func (*Unpack) Help

func (u *Unpack) Help() string

func (*Unpack) Name

func (*Unpack) Name() string

func (*Unpack) PositionalArguments

func (*Unpack) PositionalArguments() []PositionalArgument

func (*Unpack) ReadManifest

func (u *Unpack) ReadManifest(entry *zip.File) (*UniversalPackageMetadata, error)

func (*Unpack) Run

func (u *Unpack) Run() int

func (*Unpack) Usage

func (u *Unpack) Usage() string

type Verify

type Verify struct {
	PackagePath    string
	SourceEndpoint string
	Authentication *[2]string
}

func (*Verify) Description

func (*Verify) Description() string

func (*Verify) ExtraArguments

func (v *Verify) ExtraArguments() []ExtraArgument

func (*Verify) Help

func (v *Verify) Help() string

func (*Verify) Name

func (*Verify) Name() string

func (*Verify) PositionalArguments

func (*Verify) PositionalArguments() []PositionalArgument

func (*Verify) Run

func (v *Verify) Run() int

func (*Verify) Usage

func (v *Verify) Usage() string

Jump to

Keyboard shortcuts

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