kickoff

package module
v0.3.4 Latest Latest
Warning

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

Go to latest
Published: May 22, 2021 License: MIT Imports: 0 Imported by: 0

README

kickoff

Build Status codecov Go Report Card GoDoc GitHub

Start new projects from reusable skeleton directories. Use community project skeletons or create your own. No more need to copy & paste initial boilerplate like Makefiles, CI configuration or language specific configuration files from existing projects to a new one.

asciicast

Documentation

Head over to the kickoff documentation or directly jump into the Getting started guide.

Features

  • Templating of filenames, directory names and file contents via Go templates and Sprig.
  • Extensible by allowing users to pass arbitrary values to templates via config files or CLI flags.
  • Automatically populate LICENSE file with an open source license obtained from the GitHub Licenses API.
  • Automatically add a .gitignore created from templates obtained from GitHub Gitignores API.
  • Set local author, repository and skeleton defaults using custom config file.
  • Skeleton composition: projects can be created by composing multiple skeletons together.

License

The source code of kickoff is released under the MIT License. See the bundled LICENSE file for details.

Documentation

Overview

Package kickoff provides a CLI tool for bootstrapping projects from skeleton directories. The skeletons can contain any kind of files and special *.skel files which will be evaluated using the golang template engine.

The tool was initial meant for bootstrapping golang projects, but it is actually language agnostic as the skeletons do not need to be golang specific.

Directories

Path Synopsis
cmd
kickoff command
internal
cli
Package cli contains utilities to work with IO streams and to improve CLI output, such as a custom log handler and a table writer.
Package cli contains utilities to work with IO streams and to improve CLI output, such as a custom log handler and a table writer.
cmd
cmdutil
Package cmdutil provides utilities that are shared between multiple commands like flags, documentation helpers and errors.
Package cmdutil provides utilities that are shared between multiple commands like flags, documentation helpers and errors.
filetree
Package filetree provides a tree type which can be used to build and print file trees of skeletons.
Package filetree provides a tree type which can be used to build and print file trees of skeletons.
git
Package git provides an abstraction over github.com/go-git/go-git/v5 to make it easy to mock out remote git operations in tests.
Package git provides an abstraction over github.com/go-git/go-git/v5 to make it easy to mock out remote git operations in tests.
homedir
Package homedir provides functionality to expand `~` to the absolute home directory of a user and vice-versa.
Package homedir provides functionality to expand `~` to the absolute home directory of a user and vice-versa.
license
Package license provides an adapter to fetch license texts from the GitHub Licenses API.
Package license provides an adapter to fetch license texts from the GitHub Licenses API.
template
Package template provides tools to render template strings and template files.
Package template provides tools to render template strings and template files.
version
Package version contains kickoff version info which is set via build args.
Package version contains kickoff version info which is set via build args.

Jump to

Keyboard shortcuts

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