commands

package
v0.8.1 Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2019 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewDummyAppConfig added in v0.8.1

func NewDummyAppConfig() *config.AppConfig

NewDummyAppConfig creates a new dummy AppConfig for testing

func NewDummyLog added in v0.8.1

func NewDummyLog() *logrus.Entry

NewDummyLog creates a new dummy Log for testing

func RunCommandWithOutputLiveWrapper added in v0.8.1

func RunCommandWithOutputLiveWrapper(c *OSCommand, command string, output func(string) string) error

RunCommandWithOutputLiveWrapper runs a command and return every word that gets written in stdout Output is a function that executes by every word that gets read by bufio As return of output you need to give a string that will be written to stdin NOTE: If the return data is empty it won't written anything to stdin

func WrapError added in v0.8.1

func WrapError(err error) error

WrapError wraps an error for the sake of showing a stack trace at the top level the go-errors package, for some reason, does not return nil when you try to wrap a non-error, so we're just doing it here

Types

type Branch

type Branch struct {
	Name      string
	Recency   string
	Pushables string
	Pullables string
	Selected  bool
}

Branch : A git branch duplicating this for now

func (*Branch) GetColor

func (b *Branch) GetColor() color.Attribute

GetColor branch color

func (*Branch) GetDisplayStrings added in v0.8.1

func (b *Branch) GetDisplayStrings(isFocused bool) []string

GetDisplayStrings returns the dispaly string of branch

type Commit

type Commit struct {
	Sha           string
	Name          string
	Status        string // one of "unpushed", "pushed", "merged", "rebasing" or "selected"
	DisplayString string
	Action        string // one of "", "pick", "edit", "squash", "reword", "drop", "fixup"
	Copied        bool   // to know if this commit is ready to be cherry-picked somewhere
}

Commit : A git commit

func (*Commit) GetDisplayStrings added in v0.8.1

func (c *Commit) GetDisplayStrings(isFocused bool) []string

GetDisplayStrings is a function.

type CommitFile added in v0.8.1

type CommitFile struct {
	Sha           string
	Name          string
	DisplayString string
}

CommitFile : A git commit file

func (*CommitFile) GetDisplayStrings added in v0.8.1

func (f *CommitFile) GetDisplayStrings(isFocused bool) []string

GetDisplayStrings is a function.

type Conflict

type Conflict struct {
	Start  int
	Middle int
	End    int
}

Conflict : A git conflict with a start middle and end corresponding to line numbers in the file where the conflict bars appear

type File

type File struct {
	Name                    string
	HasStagedChanges        bool
	HasUnstagedChanges      bool
	Tracked                 bool
	Deleted                 bool
	HasMergeConflicts       bool
	HasInlineMergeConflicts bool
	DisplayString           string
	Type                    string // one of 'file', 'directory', and 'other'
	ShortStatus             string // e.g. 'AD', ' A', 'M ', '??'
}

File : A file from git status duplicating this for now

func (*File) GetDisplayStrings added in v0.8.1

func (f *File) GetDisplayStrings(isFocused bool) []string

GetDisplayStrings returns the display string of a file

type GitCommand

type GitCommand struct {
	Log       *logrus.Entry
	OSCommand *OSCommand
	Worktree  *gogit.Worktree
	Repo      *gogit.Repository
	Tr        *i18n.Localizer
	Config    config.AppConfigurer

	DotGitDir string
	// contains filtered or unexported fields
}

GitCommand is our main git interface

func NewDummyGitCommand added in v0.8.1

func NewDummyGitCommand() *GitCommand

NewDummyGitCommand creates a new dummy GitCommand for testing

func NewDummyGitCommandWithOSCommand added in v0.8.1

func NewDummyGitCommandWithOSCommand(osCommand *OSCommand) *GitCommand

NewDummyGitCommandWithOSCommand creates a new dummy GitCommand for testing

func NewGitCommand

func NewGitCommand(log *logrus.Entry, osCommand *OSCommand, tr *i18n.Localizer, config config.AppConfigurer) (*GitCommand, error)

NewGitCommand it runs git commands

func (*GitCommand) AbortMerge

func (c *GitCommand) AbortMerge() error

AbortMerge abort merge

func (*GitCommand) AddPatch

func (c *GitCommand) AddPatch(filename string) *exec.Cmd

AddPatch prepares a subprocess for adding a patch by patch this will eventually be swapped out for a better solution inside the Gui

func (*GitCommand) AmendHead added in v0.8.1

func (c *GitCommand) AmendHead() (*exec.Cmd, error)

AmendHead amends HEAD with whatever is staged in your working tree

func (*GitCommand) AmendTo added in v0.8.1

func (c *GitCommand) AmendTo(sha string) error

AmendTo amends the given commit with whatever files are staged

func (*GitCommand) ApplyPatch added in v0.8.1

func (c *GitCommand) ApplyPatch(patch string) (string, error)

func (*GitCommand) CatFile

func (c *GitCommand) CatFile(fileName string) (string, error)

CatFile obtains the content of a file

func (*GitCommand) CheckRemoteBranchExists added in v0.8.1

func (c *GitCommand) CheckRemoteBranchExists(branch *Branch) bool

CheckRemoteBranchExists Returns remote branch

func (*GitCommand) Checkout

func (c *GitCommand) Checkout(branch string, force bool) error

Checkout checks out a branch, with --force if you set the force arg to true

func (*GitCommand) CheckoutFile added in v0.8.1

func (c *GitCommand) CheckoutFile(commitSha, fileName string) error

CheckoutFile checks out the file for the given commit

func (*GitCommand) CherryPickCommits added in v0.8.1

func (c *GitCommand) CherryPickCommits(commits []*Commit) error

CherryPickCommits begins an interactive rebase with the given shas being cherry picked onto HEAD

func (*GitCommand) Commit

func (c *GitCommand) Commit(message string, flags string) (*exec.Cmd, error)

Commit commits to git

func (*GitCommand) CreateFixupCommit added in v0.8.1

func (c *GitCommand) CreateFixupCommit(sha string) error

CreateFixupCommit creates a commit that fixes up a previous commit

func (*GitCommand) CurrentBranchName added in v0.8.1

func (c *GitCommand) CurrentBranchName() (string, error)

CurrentBranchName is a function.

func (*GitCommand) DeleteBranch

func (c *GitCommand) DeleteBranch(branch string, force bool) error

DeleteBranch delete branch

func (*GitCommand) Diff

func (c *GitCommand) Diff(file *File, plain bool) string

Diff returns the diff of a file

func (*GitCommand) DiffCommits added in v0.8.1

func (c *GitCommand) DiffCommits(sha1, sha2 string) (string, error)

DiffCommits show diff between commits

func (*GitCommand) DiscardAllFileChanges added in v0.8.1

func (c *GitCommand) DiscardAllFileChanges(file *File) error

DiscardAllFileChanges directly

func (*GitCommand) DiscardAnyUnstagedFileChanges added in v0.8.1

func (c *GitCommand) DiscardAnyUnstagedFileChanges() error

DiscardAnyUnstagedFileChanges discards any unstages file changes via `git checkout -- .`

func (*GitCommand) DiscardOldFileChanges added in v0.8.1

func (c *GitCommand) DiscardOldFileChanges(commits []*Commit, commitIndex int, fileName string) error

DiscardOldFileChanges discards changes to a file from an old commit

func (*GitCommand) DiscardUnstagedFileChanges added in v0.8.1

func (c *GitCommand) DiscardUnstagedFileChanges(file *File) error

DiscardUnstagedFileChanges directly

func (*GitCommand) EditRebaseTodo added in v0.8.1

func (c *GitCommand) EditRebaseTodo(index int, action string) error

EditRebaseTodo sets the action at a given index in the git-rebase-todo file

func (*GitCommand) FastForward added in v0.8.1

func (c *GitCommand) FastForward(branchName string) error

func (*GitCommand) Fetch

func (c *GitCommand) Fetch(unamePassQuestion func(string) string, canAskForCredentials bool) error

Fetch fetch git repo

func (*GitCommand) GenerateGenericRebaseTodo added in v0.8.1

func (c *GitCommand) GenerateGenericRebaseTodo(commits []*Commit, actionIndex int, action string) (string, string, error)

func (*GitCommand) GenericMerge added in v0.8.1

func (c *GitCommand) GenericMerge(commandType string, command string) error

GenericMerge takes a commandType of "merge" or "rebase" and a command of "abort", "skip" or "continue" By default we skip the editor in the case where a commit will be made

func (*GitCommand) GetBranchGraph

func (c *GitCommand) GetBranchGraph(branchName string) (string, error)

GetBranchGraph gets the color-formatted graph of the log for the given branch Currently it limits the result to 100 commits, but when we get async stuff working we can do lazy loading

func (*GitCommand) GetBranchUpstreamDifferenceCount added in v0.8.1

func (c *GitCommand) GetBranchUpstreamDifferenceCount(branchName string) (string, string)

func (*GitCommand) GetCommitDifferences added in v0.8.1

func (c *GitCommand) GetCommitDifferences(from, to string) (string, string)

GetCommitDifferences checks how many pushables/pullables there are for the current branch

func (*GitCommand) GetCommitFiles added in v0.8.1

func (c *GitCommand) GetCommitFiles(commitSha string) ([]*CommitFile, error)

GetCommitFiles get the specified commit files

func (*GitCommand) GetCurrentBranchUpstreamDifferenceCount added in v0.8.1

func (c *GitCommand) GetCurrentBranchUpstreamDifferenceCount() (string, string)

func (*GitCommand) GetRemoteURL added in v0.8.1

func (c *GitCommand) GetRemoteURL() string

GetRemoteURL returns current repo remote url

func (*GitCommand) GetStashEntries

func (c *GitCommand) GetStashEntries() []*StashEntry

GetStashEntries stash entryies

func (*GitCommand) GetStashEntryDiff

func (c *GitCommand) GetStashEntryDiff(index int) (string, error)

GetStashEntryDiff stash diff

func (*GitCommand) GetStatusFiles

func (c *GitCommand) GetStatusFiles() []*File

GetStatusFiles git status files

func (*GitCommand) GitStatus

func (c *GitCommand) GitStatus() (string, error)

GitStatus returns the plaintext short status of the repo

func (*GitCommand) HardReset added in v0.8.1

func (c *GitCommand) HardReset(baseSha string) error

func (*GitCommand) Ignore

func (c *GitCommand) Ignore(filename string) error

Ignore adds a file to the gitignore for the repo

func (*GitCommand) InteractiveRebase added in v0.8.1

func (c *GitCommand) InteractiveRebase(commits []*Commit, index int, action string) error

func (*GitCommand) IsInMergeState

func (c *GitCommand) IsInMergeState() (bool, error)

IsInMergeState states whether we are still mid-merge

func (*GitCommand) ListStash

func (c *GitCommand) ListStash() (string, error)

ListStash list stash

func (*GitCommand) Merge

func (c *GitCommand) Merge(branchName string) error

Merge merge

func (*GitCommand) MergeStatusFiles

func (c *GitCommand) MergeStatusFiles(oldFiles, newFiles []*File) []*File

MergeStatusFiles merge status files

func (*GitCommand) MoveCommitDown added in v0.8.1

func (c *GitCommand) MoveCommitDown(commits []*Commit, index int) error

func (*GitCommand) MoveTodoDown added in v0.8.1

func (c *GitCommand) MoveTodoDown(index int) error

MoveTodoDown moves a rebase todo item down by one position

func (*GitCommand) NewBranch

func (c *GitCommand) NewBranch(name string) error

NewBranch create new branch

func (*GitCommand) PrepareCommitAmendSubProcess added in v0.8.1

func (c *GitCommand) PrepareCommitAmendSubProcess() *exec.Cmd

PrepareCommitAmendSubProcess prepares a subprocess for `git commit --amend --allow-empty`

func (*GitCommand) PrepareCommitSubProcess

func (c *GitCommand) PrepareCommitSubProcess() *exec.Cmd

PrepareCommitSubProcess prepares a subprocess for `git commit`

func (*GitCommand) PrepareInteractiveRebaseCommand added in v0.8.1

func (c *GitCommand) PrepareInteractiveRebaseCommand(baseSha string, todo string, overrideEditor bool) (*exec.Cmd, error)

PrepareInteractiveRebaseCommand returns the cmd for an interactive rebase we tell git to run lazygit to edit the todo list, and we pass the client lazygit a todo string to write to the todo file

func (*GitCommand) Pull

func (c *GitCommand) Pull(ask func(string) string) error

Pull pulls from repo

func (*GitCommand) Push

func (c *GitCommand) Push(branchName string, force bool, ask func(string) string) error

Push pushes to a branch

func (*GitCommand) RebaseBranch added in v0.8.1

func (c *GitCommand) RebaseBranch(branchName string) error

RebaseBranch interactive rebases onto a branch

func (*GitCommand) RebaseMode added in v0.8.1

func (c *GitCommand) RebaseMode() (string, error)

RebaseMode returns "" for non-rebase mode, "normal" for normal rebase and "interactive" for interactive rebase

func (*GitCommand) RemoveUntrackedFiles added in v0.8.1

func (c *GitCommand) RemoveUntrackedFiles() error

RemoveUntrackedFiles runs `git clean -fd`

func (*GitCommand) RenameCommit

func (c *GitCommand) RenameCommit(name string) error

RenameCommit renames the topmost commit with the given name

func (*GitCommand) ResetAndClean added in v0.8.1

func (c *GitCommand) ResetAndClean() error

ResetAndClean removes all unstaged changes and removes all untracked files

func (*GitCommand) ResetHardHead added in v0.8.1

func (c *GitCommand) ResetHardHead() error

ResetHardHead runs `git reset --hard HEAD`

func (*GitCommand) ResetSoftHead added in v0.8.1

func (c *GitCommand) ResetSoftHead() error

ResetSoftHead runs `git reset --soft HEAD`

func (*GitCommand) ResetToCommit

func (c *GitCommand) ResetToCommit(sha string, strength string) error

ResetToCommit reset to commit

func (*GitCommand) Revert added in v0.8.1

func (c *GitCommand) Revert(sha string) error

Revert reverts the selected commit by sha

func (*GitCommand) RewordCommit added in v0.8.1

func (c *GitCommand) RewordCommit(commits []*Commit, index int) (*exec.Cmd, error)

func (*GitCommand) RunSkipEditorCommand added in v0.8.1

func (c *GitCommand) RunSkipEditorCommand(command string) error

func (*GitCommand) Show

func (c *GitCommand) Show(sha string) (string, error)

Show shows the diff of a commit

func (*GitCommand) ShowCommitFile added in v0.8.1

func (c *GitCommand) ShowCommitFile(commitSha, fileName string) (string, error)

ShowCommitFile get the diff of specified commit file

func (*GitCommand) SoftReset added in v0.8.1

func (c *GitCommand) SoftReset(baseSha string) error

func (*GitCommand) SquashAllAboveFixupCommits added in v0.8.1

func (c *GitCommand) SquashAllAboveFixupCommits(sha string) error

SquashAllAboveFixupCommits squashes all fixup! commits above the given one

func (*GitCommand) StageAll added in v0.2.0

func (c *GitCommand) StageAll() error

StageAll stages all files

func (*GitCommand) StageFile

func (c *GitCommand) StageFile(fileName string) error

StageFile stages a file

func (*GitCommand) StashDo

func (c *GitCommand) StashDo(index int, method string) error

StashDo modify stash

func (*GitCommand) StashSave

func (c *GitCommand) StashSave(message string) error

StashSave save stash TODO: before calling this, check if there is anything to save

func (*GitCommand) StashSaveStagedChanges added in v0.8.1

func (c *GitCommand) StashSaveStagedChanges(message string) error

StashSaveStagedChanges stashes only the currently staged changes. This takes a few steps shoutouts to Joe on https://stackoverflow.com/questions/14759748/stashing-only-staged-changes-in-git-is-it-possible

func (*GitCommand) UnStageFile

func (c *GitCommand) UnStageFile(fileName string, tracked bool) error

UnStageFile unstages a file

func (*GitCommand) UnstageAll added in v0.2.0

func (c *GitCommand) UnstageAll() error

UnstageAll stages all files

type OSCommand

type OSCommand struct {
	Log      *logrus.Entry
	Platform *Platform
	Config   config.AppConfigurer
	// contains filtered or unexported fields
}

OSCommand holds all the os commands

func NewDummyOSCommand added in v0.8.1

func NewDummyOSCommand() *OSCommand

NewDummyOSCommand creates a new dummy OSCommand for testing

func NewOSCommand

func NewOSCommand(log *logrus.Entry, config config.AppConfigurer) *OSCommand

NewOSCommand os command runner

func (*OSCommand) AppendLineToFile added in v0.1.73

func (c *OSCommand) AppendLineToFile(filename, line string) error

AppendLineToFile adds a new line in file

func (*OSCommand) CreateTempFile added in v0.8.1

func (c *OSCommand) CreateTempFile(filename, content string) (string, error)

CreateTempFile writes a string to a new temp file and returns the file's name

func (*OSCommand) DetectUnamePass added in v0.8.1

func (c *OSCommand) DetectUnamePass(command string, ask func(string) string) error

DetectUnamePass detect a username / password question in a command ask is a function that gets executen when this function detect you need to fillin a password The ask argument will be "username" or "password" and expects the user's password or username back

func (*OSCommand) EditFile

func (c *OSCommand) EditFile(filename string) (*exec.Cmd, error)

EditFile opens a file in a subprocess using whatever editor is available, falling back to core.editor, VISUAL, EDITOR, then vi

func (*OSCommand) ExecutableFromString added in v0.8.1

func (c *OSCommand) ExecutableFromString(commandStr string) *exec.Cmd

ExecutableFromString takes a string like `git status` and returns an executable command for it

func (*OSCommand) FileExists added in v0.8.1

func (c *OSCommand) FileExists(path string) (bool, error)

FileExists checks whether a file exists at the specified path

func (*OSCommand) FileType added in v0.2.0

func (c *OSCommand) FileType(path string) string

FileType tells us if the file is a file, directory or other

func (*OSCommand) GetLazygitPath added in v0.8.1

func (c *OSCommand) GetLazygitPath() string

GetLazygitPath returns the path of the currently executed file

func (*OSCommand) OpenFile

func (c *OSCommand) OpenFile(filename string) error

OpenFile opens a file with the given

func (c *OSCommand) OpenLink(link string) error

OpenLink opens a file with the given

func (*OSCommand) PipeCommands added in v0.8.1

func (c *OSCommand) PipeCommands(commandStrings ...string) error

PipeCommands runs a heap of commands and pipes their inputs/outputs together like A | B | C

func (*OSCommand) PrepareSubProcess

func (c *OSCommand) PrepareSubProcess(cmdName string, commandArgs ...string) *exec.Cmd

PrepareSubProcess iniPrepareSubProcessrocess then tells the Gui to switch to it TODO: see if this needs to exist, given that ExecutableFromString does the same things

func (*OSCommand) Quote

func (c *OSCommand) Quote(message string) string

Quote wraps a message in platform-specific quotation marks

func (*OSCommand) Remove added in v0.8.1

func (c *OSCommand) Remove(filename string) error

Remove removes a file or directory at the specified path

func (*OSCommand) RunCommand

func (c *OSCommand) RunCommand(command string) error

RunCommand runs a command and just returns the error

func (*OSCommand) RunCommandWithOutput

func (c *OSCommand) RunCommandWithOutput(command string) (string, error)

RunCommandWithOutput wrapper around commands returning their output and error

func (*OSCommand) RunCommandWithOutputLive added in v0.8.1

func (c *OSCommand) RunCommandWithOutputLive(command string, output func(string) string) error

RunCommandWithOutputLive runs RunCommandWithOutputLiveWrapper

func (*OSCommand) RunCustomCommand added in v0.8.1

func (c *OSCommand) RunCustomCommand(command string) *exec.Cmd

RunCustomCommand returns the pointer to a custom command

func (*OSCommand) RunDirectCommand

func (c *OSCommand) RunDirectCommand(command string) (string, error)

RunDirectCommand wrapper around direct commands

func (*OSCommand) RunExecutable added in v0.8.1

func (c *OSCommand) RunExecutable(cmd *exec.Cmd) error

RunExecutable runs an executable file and returns an error if there was one

func (*OSCommand) RunExecutableWithOutput added in v0.8.1

func (c *OSCommand) RunExecutableWithOutput(cmd *exec.Cmd) (string, error)

RunExecutableWithOutput runs an executable file and returns its output

func (*OSCommand) RunPreparedCommand added in v0.8.1

func (c *OSCommand) RunPreparedCommand(cmd *exec.Cmd) error

RunPreparedCommand takes a pointer to an exec.Cmd and runs it this is useful if you need to give your command some environment variables before running it

func (*OSCommand) SetCommand added in v0.8.1

func (c *OSCommand) SetCommand(cmd func(string, ...string) *exec.Cmd)

SetCommand sets the command function used by the struct. To be used for testing only

func (*OSCommand) Unquote added in v0.1.71

func (c *OSCommand) Unquote(message string) string

Unquote removes wrapping quotations marks if they are present this is needed for removing quotes from staged filenames with spaces

type Platform

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

Platform stores the os state

type PullRequest added in v0.8.1

type PullRequest struct {
	GitServices []*Service
	GitCommand  *GitCommand
}

PullRequest opens a link in browser to create new pull request with selected branch

func NewPullRequest added in v0.8.1

func NewPullRequest(gitCommand *GitCommand) *PullRequest

NewPullRequest creates new instance of PullRequest

func (*PullRequest) Create added in v0.8.1

func (pr *PullRequest) Create(branch *Branch) error

Create opens link to new pull request in browser

type RepoInformation added in v0.8.1

type RepoInformation struct {
	Owner      string
	Repository string
}

RepoInformation holds some basic information about the repo

type Service added in v0.8.1

type Service struct {
	Name           string
	PullRequestURL string
}

Service is a service that repository is on (Github, Bitbucket, ...)

type StashEntry

type StashEntry struct {
	Index         int
	Name          string
	DisplayString string
}

StashEntry : A git stash entry

func (*StashEntry) GetDisplayStrings added in v0.8.1

func (s *StashEntry) GetDisplayStrings(isFocused bool) []string

GetDisplayStrings returns the dispaly string of branch

Jump to

Keyboard shortcuts

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