Skip to content

kuychaco/what-the-status

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Michelle Tilley
Jan 4, 2018
64688d7 · Jan 4, 2018

History

23 Commits
Jan 4, 2018
Jul 10, 2017
May 19, 2017
Jul 10, 2017
Jan 3, 2018
Jan 4, 2018
Jan 4, 2018

Repository files navigation

JavaScript Status Parser

Parse output of git status --porcelain=v2 --branch -z with JavaScript

Installation

what-the-status is available via npm

npm install what-the-status

Usage

const status = require('what-the-status')

// NOTE: Instead of newlines, the input should contain null-character separators,
// per the `-z` flag to `git status --porcelain=v2`.
const str = `# branch.oid 66d11860af6d28eb38349ef83de475597cb0e8b4
# branch.head master
# branch.upstream origin/master
# branch.ab +3 -2
1 MM N... 100644 100644 100644 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 c9f54222977c93ea17ba4a5a53c611fa7f1aaf56 a.txt
1 .D N... 100644 100644 000000 5716ca5987cbf97d6bb54920bea6adde242d87e6 5716ca5987cbf97d6bb54920bea6adde242d87e6 b.txt
? d.txt
`

// Returns a Promise
status.parse(str).then(output => console.log(output))

// returns
  {
    branch: {
      oid: '66d11860af6d28eb38349ef83de475597cb0e8b4',
      head: 'master',
      upstream: 'origin/master',
      aheadBehind: {
        ahead: 3,
        behind: 2,
      }
    },
    changedEntries: [
      {
        filePath: 'a.txt',
        stagedStatus: 'M',
        unstagedStatus: 'M',
        submodule: {
          isSubmodule: false
        },
        fileModes: {
          head: '100644',
          index: '100644',
          worktree: '100644',
        },
        headSha: '257cc5642cb1a054f08cc83f2d943e56fd3ebe99',
        indexSha: 'c9f54222977c93ea17ba4a5a53c611fa7f1aaf56',
      },
      {
        filePath: 'b.txt',
        stagedStatus: null,
        unstagedStatus: 'D',
        submodule: {
          isSubmodule: false
        },
        fileModes: {
          head: '100644',
          index: '100644',
          worktree: '000000',
        },
        headSha: '5716ca5987cbf97d6bb54920bea6adde242d87e6',
        indexSha: '5716ca5987cbf97d6bb54920bea6adde242d87e6',
      },
    ],
    untrackedEntries: [{filePath: 'd.txt'}],
    renamedEntries: [],
    unmergedEntries: [],
    ignoredEntries: [],
  }

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published