operate

package
v13.0.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2018 License: MIT Imports: 41 Imported by: 11

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CredentialsForGameID

func CredentialsForGameID(db *gorm.DB, gameID int64) *butlerd.GameCredentials

func DownloadInstallSource

func DownloadInstallSource(consumer *state.Consumer, stageFolder string, ctx context.Context, file eos.File, destPath string) error

func GameToString

func GameToString(game *itchio.Game) string

func GetFilteredUploads

func GetFilteredUploads(client *itchio.Client, game *itchio.Game, credentials *butlerd.GameCredentials, consumer *state.Consumer) (*manager.NarrowDownUploadsResult, error)

func InstallPerform

func InstallPerform(ctx context.Context, rc *butlerd.RequestContext, performParams *butlerd.InstallPerformParams) error

func InstallPrepare

func InstallPrepare(oc *OperationContext, meta *MetaSubcontext, isub *InstallSubcontext, allowDownloads bool, task InstallTask) error

func LogBuild

func LogBuild(consumer *state.Consumer, u *itchio.Upload, b *itchio.Build)

func LogUpload

func LogUpload(consumer *state.Consumer, u *itchio.Upload, b *itchio.Build)

func MakeItchfsURL

func MakeItchfsURL(params *ItchfsURLParams) string

func TeeConsumer

func TeeConsumer(c *state.Consumer, logFile io.Writer) *state.Consumer

func UploadIsProbablyExternal

func UploadIsProbablyExternal(u *itchio.Upload) bool

func ValidateCave

func ValidateCave(rc *butlerd.RequestContext, caveID string) *models.Cave

Types

type Accuracy

type Accuracy int
const (
	AccuracyNone     Accuracy = 0
	AccuracyGuess    Accuracy = 10
	AccuracyComputed Accuracy = 20
)

func (Accuracy) String

func (a Accuracy) String() string

type CommitInstallParams

type CommitInstallParams struct {
	InstallerName string
	InstallFolder string

	Game   *itchio.Game
	Upload *itchio.Upload
	Build  *itchio.Build

	InstallResult *installer.InstallResult
}

type DiskUsageInfo

type DiskUsageInfo struct {
	// Space we'll use once the install is all said and done
	FinalDiskUsage int64

	// Space we need to perform that operation
	NeededFreeSpace int64

	// Accuracy of our information
	Accuracy Accuracy
}

func AssessDiskUsage

func AssessDiskUsage(sourceFile eos.File, receiptIn *bfs.Receipt, installFolder string, installerInfo *installer.InstallerInfo) (*DiskUsageInfo, error)

type InstallParams

type InstallParams struct {
	StagingFolder string `json:"stagingFolder"`

	Reason butlerd.DownloadReason `json:"reason"`

	CaveID            string `json:"caveId"`
	InstallFolderName string `json:"installFolderName"`
	InstallLocationID string `json:"installLocationID"`

	InstallFolder string `json:"installFolder"`

	NoCave bool `json:"noCave"`

	Game   *itchio.Game   `json:"game"`
	Upload *itchio.Upload `json:"upload"`
	Build  *itchio.Build  `json:"build"`

	IgnoreInstallers bool `json:"ignoreInstallers,omitempty"`

	Credentials *butlerd.GameCredentials `json:"credentials"`
}

type InstallPerformStrategy

type InstallPerformStrategy = int
const (
	InstallPerformStrategyNone    InstallPerformStrategy = 0
	InstallPerformStrategyInstall InstallPerformStrategy = 1
	InstallPerformStrategyHeal    InstallPerformStrategy = 2
	InstallPerformStrategyUpgrade InstallPerformStrategy = 3
)

type InstallPrepareResult

type InstallPrepareResult struct {
	File      eos.File
	ReceiptIn *bfs.Receipt
	Strategy  InstallPerformStrategy
}

type InstallSubcontext

type InstallSubcontext struct {
	Data *InstallSubcontextState
}

func (*InstallSubcontext) GetData

func (mt *InstallSubcontext) GetData() interface{}

func (*InstallSubcontext) Key

func (mt *InstallSubcontext) Key() string

type InstallSubcontextState

type InstallSubcontextState struct {
	DownloadSessionId   string                    `json:"downloadSessionId,omitempty"`
	InstallerInfo       *installer.InstallerInfo  `json:"installerInfo,omitempty"`
	IsAvailableLocally  bool                      `json:"isAvailableLocally,omitempty"`
	FirstInstallResult  *installer.InstallResult  `json:"firstInstallResult,omitempty"`
	SecondInstallerInfo *installer.InstallerInfo  `json:"secondInstallerInfo,omitempty"`
	UpgradePath         []*itchio.UpgradePathItem `json:"upgradePath,omitempty"`
	UpgradePathIndex    int                       `json:"upgradePathIndex,omitempty"`
}

type InstallTask

type InstallTask func(res *InstallPrepareResult) error

type ItchfsURLParams

type ItchfsURLParams struct {
	Credentials *butlerd.GameCredentials
	UploadID    int64
	BuildID     int64
	FileType    string
	UUID        string
}

type MetaSubcontext

type MetaSubcontext struct {
	Data *InstallParams
}

func NewMetaSubcontext

func NewMetaSubcontext() *MetaSubcontext

func (*MetaSubcontext) GetData

func (mt *MetaSubcontext) GetData() interface{}

func (*MetaSubcontext) Key

func (mt *MetaSubcontext) Key() string

type OperationContext

type OperationContext struct {
	// contains filtered or unexported fields
}

func LoadContext

func LoadContext(ctx context.Context, rc *butlerd.RequestContext, stageFolder string) (*OperationContext, error)

func (*OperationContext) Consumer

func (oc *OperationContext) Consumer() *state.Consumer

func (*OperationContext) Load

func (oc *OperationContext) Load(s Subcontext)

func (*OperationContext) Release

func (oc *OperationContext) Release()

func (*OperationContext) Retire

func (oc *OperationContext) Retire()

func (*OperationContext) Save

func (oc *OperationContext) Save(s Subcontext) error

func (*OperationContext) StageFolder

func (oc *OperationContext) StageFolder() string

type PidFileContents

type PidFileContents struct {
	PID int64 `json:"pid"`
}

type Subcontext

type Subcontext interface {
	// Key returns a unique string key used for storing
	// something under the context object
	Key() string

	// Data should return a pointer to the underlying struct
	// of the subcontext
	GetData() interface{}
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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