2017 © Pedro Peláez
 

library robo-git

Robo task to read the content of the staged files

image

cheppers/robo-git

Robo task to read the content of the staged files

  • Sunday, April 9, 2017
  • by Sweetchuck
  • Repository
  • 4 Watchers
  • 0 Stars
  • 5,642 Installations
  • PHP
  • 14 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 0 % Grown

The README.md

Robo task wrapper for Git commands

CircleCI codecov, (*1)

The main additional feature compare to the ::taskExec() is that this tasks parse the stdOutput/stdError and make the result available for the next tasks by putting it into the \Robo\State\Data instance which belongs to the pipeline., (*2)

Install

Run composer require --dev sweetchuck/robo-git, (*3)

Task - taskGitBranchList()

<?php

declare(strict_types = 1);

class RoboFileExample extends \Robo\Tasks
{
    use \Sweetchuck\Robo\Git\GitTaskLoader;

    public function gitBranches(string $dir = '.')
    {
        return $this
            ->collectionBuilder()
            ->addTask(
                $this
                    ->taskGitBranchList()
                    ->setWorkingDirectory($dir)
                    // Available options:
                    // --all
                    // --color
                    // --contains
                    // --format
                    // --list
                    // --merged
                    // --points-at
                    // --sort
            )
            ->addCode(function (\Robo\State\Data $data): int {
                // Here you can do whatever you want with the branches.
                $output = $this->output();
                foreach ($data['gitBranches'] as $longName => $branch) {
                    $output->writeln($longName);
                    foreach ($branch as $key => $value) {
                        $output->writeln("    $key = " . var_export($value, true));
                    }
                }

                return 0;
            });
    }
}

Run: $ vendor/bin/robo git:branches, (*4)

Example output:, (*5)

refs/heads/1.x
>     isCurrentBranch = true
>     push = 'refs/remotes/upstream/1.x'
>     push.short = 'upstream/1.x'
>     refName = 'refs/heads/1.x'
>     refName.short = '1.x'
>     track = ''
>     track.ahead = NULL
>     track.behind = NULL
>     track.gone = false
>     upstream = 'refs/remotes/upstream/1.x'
>     upstream.short = 'upstream/1.x'

Task - taskGitConfigGet()

<?php

declare(strict_types = 1);

class RoboFileExample extends \Robo\Tasks
{
    use \Sweetchuck\Robo\Git\GitTaskLoader;

    /**
     * @command git:config:get
     */
    public function gitConfigGet(string $name)
    {
        return $this
            ->collectionBuilder()
            ->addTask(
                $this
                    ->taskGitConfigGet()
                    ->setName($name)
            )
            ->addCode(function (\Robo\State\Data $data) use ($name): int {
                $key = "git.config.$name";
                $this->output()->writeln("$key = {$data[$key]}");

                return 0;
            });
    }
}

Run: $ vendor/bin/robo git:config:get, (*6)

Example output:, (*7)

git.config.user.name = Andor, (*8)

Task - taskGitCurrentBranch()

<?php

declare(strict_types = 1);

class RoboFileExample extends \Robo\Tasks
{
    use \Sweetchuck\Robo\Git\GitTaskLoader;

    /**
     * @command git:current-branch
     */
    public function gitCurrentBranch()
    {
        return $this
            ->collectionBuilder()
            ->addTask($this->taskGitCurrentBranch())
            ->addCode(function (\Robo\State\Data $data): int {
                $this->output()->writeln("long = {$data['gitCurrentBranch.long']}");
                $this->output()->writeln("short = {$data['gitCurrentBranch.short']}");

                return 0;
            });
    }
}

Run: $ vendor/bin/robo git:current-branch, (*9)

Example output:, (*10)

long = refs/heads/1.x
short = 1.x, (*11)

Task - taskGitListFiles()

<?php

declare(strict_types = 1);

class RoboFileExample extends \Robo\Tasks
{
    use \Sweetchuck\Robo\Git\GitTaskLoader;

    /**
     * @command git:list-files
     */
    public function gitListFiles()
    {
        return $this
            ->collectionBuilder()
            ->addTask(
                $this
                    ->taskGitListFiles()
                    ->setPaths(['R*.md'])
                    // Available options:
                    // -t
                    // -v
                    // -z
                    // --cached
                    // --deleted
                    // --directory
                    // --empty-directory
                    // --eol
                    // --exclude
                    // --exclude-file
                    // --full-name
                    // --killed
                    // --ignored
                    // --modified
                    // --others
                    // --stage
                    // --resolve-undo
                    // --unmerged
            )
            ->addCode(function (\Robo\State\Data $data): int {
                $output = $this->output();
                /** * @var \Sweetchuck\Robo\Git\ListFilesItem $file */
                foreach ($data['files'] as $filePath => $file) {
                    $output->writeln($filePath);
                    $output->writeln('    status = ' . var_export($file->status, true));
                    $output->writeln('    objectName = ' . var_export($file->objectName, true));
                    $output->writeln('    eolInfoI = ' . var_export($file->eolInfoI, true));
                    $output->writeln('    eolInfoW = ' . var_export($file->eolInfoW, true));
                    $output->writeln('    eolAttr = ' . var_export($file->eolAttr, true));
                    $output->writeln('    fileName = ' . var_export($file->fileName, true));
                }

                return 0;
            });
    }
}

Run: $ vendor/bin/robo git:list-files, (*12)

Example output:, (*13)

README.md
>     status = NULL
>     objectName = NULL
>     eolInfoI = NULL
>     eolInfoW = NULL
>     eolAttr = NULL
>     fileName = 'README.md'

Task - taskGitListChangedFiles()

@todo, (*14)

Task - taskGitListStagedFiles()

@todo, (*15)

Task - taskGitNumOfCommitsBetween()

@todo, (*16)

Task - taskGitReadStagedFiles()

@todo, (*17)

Task - taskGitRemoteList()

@todo, (*18)

Task - taskGitStatus()

@todo, (*19)

Task - taskGitTagList()

@todo, (*20)

Task - taskGitTopLevel()

@todo, (*21)

The Versions

09/04 2017

dev-master

9999999-dev

Robo task to read the content of the staged files

  Sources   Download

GPL-2.0

The Requires

 

The Development Requires

09/04 2017

v0.0.5

0.0.5.0

Robo task to read the content of the staged files

  Sources   Download

GPL-2.0

The Requires

 

The Development Requires

19/03 2017

v0.0.4

0.0.4.0

Robo task to read the content of the staged files

  Sources   Download

GPL-2.0

The Requires

 

The Development Requires

19/11 2016

v0.0.3

0.0.3.0

Robo task to read the content of the staged files

  Sources   Download

GPL-2.0

The Requires

 

The Development Requires

15/10 2016

v0.0.2

0.0.2.0

Robo task to read the content of the staged files

  Sources   Download

GPL-2.0

The Requires

 

The Development Requires

09/10 2016

v0.0.1

0.0.1.0

Robo task to read the content of the staged files

  Sources   Download

GPL-2.0

The Requires

 

The Development Requires