kickoff

package module
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 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 gitignore.io.
  • Set local author, repository and skeleton defaults using custom config file.
  • Dry run for project creation.
  • Skeleton inheritance: skeletons can inherit files and values from an optional parent skeleton.
  • Skeleton composition: projects can be created by composing multiple skeletons together. This is similar to inheritance but allows for way more flexible use of skeletons.

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.
file
Package file provides utility functionality for working with files and directories.
Package file provides utility functionality for working with files and directories.
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.
gitignore
Package gitignore provides an interface to gitignore.io to fetch gitignore templates.
Package gitignore provides an interface to gitignore.io to fetch gitignore templates.
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.
skeleton
Package skeleton contains types that define the structure of a skeleton and its config.
Package skeleton contains types that define the structure of a skeleton and its config.
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