goal

command module
v0.0.0-...-5a1941a Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2016 License: BSD-2-Clause Imports: 7 Imported by: 0

README

Goal

Goal is a set of tools for high productivity web development in Go language.

Goal, being mostly inspired by Revel Framework and its discussions, is built around the concept of controllers and actions. However, as opposed to Revel and other high level frameworks Goal does not use runtime reflection and does not require your app to import monolithic dependencies.

Instead Goal is implemented in a form of independent tools that may be used with go generate. That allows us to achieve type safety, minimalism of dependencies, compatability with the standard library, and productivity for the end-developers. At the same time Goal is very customizable (you can bring your own router, template system, and any other component). But that's without prejudice to the easiness and seamless of experience thanks to good defaults.

Getting Started
  1. Install Goal:

     go get -u github.com/goaltools/goal
    
  2. Create a new skeleton application:

     goal new github.com/$username/$project
    
  3. Start a watcher / task runner:

     goal run github.com/$username/$project
    
Documentation

All goal generate * tools may be used with go generate.

Status

Proof of Concept: not ready for use in the wild. Working on: splitting the project into independent repos.

GoDoc Build Status Coverage Status Go Report Card

License

Distributed under the BSD 2-clause "Simplified" License unless otherwise noted.

Documentation

Overview

Package main is used as an entry point of the framework. It validates user input parameters and runs subcommands (aka tools).

Directories

Path Synopsis
internal
action
Package action provides functions for search of actions among methods of a package and checking whether they are actions with special meaning (such as Before or After) or just regular actions.
Package action provides functions for search of actions among methods of a package and checking whether they are actions with special meaning (such as Before or After) or just regular actions.
generation
Package generation is used for generation and saving files.
Package generation is used for generation and saving files.
log
Package log is a simple wrapper around Go's standard log package and terminal colorizer that works both on win and *nix.
Package log is a simple wrapper around Go's standard log package and terminal colorizer that works both on win and *nix.
reflect
Package reflect is a wrapper for go/ast, go/token, and go/parser packages.
Package reflect is a wrapper for go/ast, go/token, and go/parser packages.
routes
Package routes is used for parsing route comments and route field tags.
Package routes is used for parsing route comments and route field tags.
skeleton
Package main is an entry point of the application.
Package main is an entry point of the application.
skeleton/assets/handlers
Package handlers is generated automatically by goal toolkit.
Package handlers is generated automatically by goal toolkit.
skeleton/assets/handlers/github.com/goaltools/contrib/controllers/requests
Package handlers is generated automatically by goal toolkit.
Package handlers is generated automatically by goal toolkit.
skeleton/assets/handlers/github.com/goaltools/contrib/controllers/sessions
Package handlers is generated automatically by goal toolkit.
Package handlers is generated automatically by goal toolkit.
skeleton/assets/handlers/github.com/goaltools/contrib/controllers/static
Package handlers is generated automatically by goal toolkit.
Package handlers is generated automatically by goal toolkit.
skeleton/assets/handlers/github.com/goaltools/contrib/controllers/templates
Package handlers is generated automatically by goal toolkit.
Package handlers is generated automatically by goal toolkit.
strconv
Package strconv contains code generation staff related to github.com/goaltools/goal/strconv package.
Package strconv contains code generation staff related to github.com/goaltools/goal/strconv package.
watcher
Package watcher is used for watching files and directories for automatic recompilation and restart of app on change when in development mode.
Package watcher is used for watching files and directories for automatic recompilation and restart of app on change when in development mode.
Package strconv implements conversions from string representation.
Package strconv implements conversions from string representation.
tools
create
Package create is used for copying skeleton app to a requested destination.
Package create is used for copying skeleton app to a requested destination.
generate/handlers
Package handlers is used by go generate for analizing controller package's files and generation of handlers.
Package handlers is used by go generate for analizing controller package's files and generation of handlers.
run
Package run has two main functions: - work as a task runner, watching files and rebuilding them if necessary; - works as a proxy server, that runs a user application, proxies all requests to it, and shows detailed error messages if needed (TODO).
Package run has two main functions: - work as a task runner, watching files and rebuilding them if necessary; - works as a proxy server, that runs a user application, proxies all requests to it, and shows detailed error messages if needed (TODO).
Package utils provides building blocks for the tools of the project.
Package utils provides building blocks for the tools of the project.
tool
Package tool is used for parsing input parameters, and starting subcommands (aka tools).
Package tool is used for parsing input parameters, and starting subcommands (aka tools).

Jump to

Keyboard shortcuts

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