Skip to content

delineateio/go-neat

Repository files navigation

PRs Welcome Contributors Forks Stargazers Issues MIT License


delineate.io

delineate.io

portray or describe (something) precisely.

neat

Small CLI for opinionated developer workflow
Explore the docs »

Report Bug · Request Feature

Table of Contents

About The Project

An opinionated CLI that enable repeatable sets of commands and common tasks be automated locally while developing software.

Built With

Further logos can be inserted to highlight the specific technologies used to create the solution from here.

Syntax Description
pre-commit Pre-commit git hooks that perform checks before pushes
GitHub Source control management platform
Docker Containerise applications and provide local environment

A series of Go packages have been used to build up neat:

Syntax Description
cobra Provides the CLI framework for neat
survey Provides ability to capture input
color Enables console coloured output
go-git Fully functioning package for git
viper Configuration package for managing config
zerolog Simple high performance logging framework
lumberjack Rolling log file management compatible with zerolog
orderedmap Provides missing data structure for ordered maps

Getting Started

This repo follows the principle of minimal manual setup of the local development environment, and utilises devcontainer in vscode.

In addition a taskfile provides commonly required commands, these can be listed using task --list.

Configuration

The global config file is expected to be located at ~/.config/.neat.yaml

automation: false
log:
  level: debug # info | warn | error
  sinks: # file | console
    - file
  file:
    dir: .logs/.neat
    filename: neat.log
    size_mb: 1
    backups: 3
    age_days: 10

For each git repo where you want to use neat the following file should be present.

git:
  branches:
    default: main
    prune: auto # none | select | auto

CLI Usage

# displays help for neat
neat -h

# inits the global config
neat init

# inits a repo
neat init repo

# creates a new branch in the existing repo
neat new feature -n 'new-client-design'

# creates a new branch in a different repo
neat new feature -n 'another-feature' -p /tmp/go-neat-test

# refreshes the sub directories
neat refresh repos

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

If you would like to contribute to any delineate.io OSS projects please read:

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgements

About

Opinionated Git utility CLI written in Go

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •