mirror of
https://github.com/kevin-DL/revel-cmd.git
synced 2026-01-20 14:15:09 +00:00
Merge pull request #58 from revel/move-skeleton-to-cmd
skeleton moved successfully to cmd repo
This commit is contained in:
@@ -50,6 +50,7 @@ var (
|
|||||||
|
|
||||||
// revel related paths
|
// revel related paths
|
||||||
revelPkg *build.Package
|
revelPkg *build.Package
|
||||||
|
revelCmdPkg *build.Package
|
||||||
appPath string
|
appPath string
|
||||||
appName string
|
appName string
|
||||||
basePath string
|
basePath string
|
||||||
@@ -194,7 +195,12 @@ func setSkeletonPath(args []string) {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// use the revel default
|
// use the revel default
|
||||||
skeletonPath = filepath.Join(revelPkg.Dir, "skeleton")
|
revelCmdPkg, err = build.Import(RevelCmdImportPath, "", build.FindOnly)
|
||||||
|
if err != nil {
|
||||||
|
errorf("Abort: Could not find Revel Cmd source code: %s\n", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
skeletonPath = filepath.Join(revelCmdPkg.Dir, "revel", "skeleton")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,13 @@ import (
|
|||||||
"github.com/agtorre/gocolorize"
|
"github.com/agtorre/gocolorize"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DefaultRunMode for revel's application
|
const (
|
||||||
const DefaultRunMode = "dev"
|
// RevelCmdImportPath Revel framework cmd tool import path
|
||||||
|
RevelCmdImportPath = "github.com/revel/cmd"
|
||||||
|
|
||||||
|
// DefaultRunMode for revel's application
|
||||||
|
DefaultRunMode = "dev"
|
||||||
|
)
|
||||||
|
|
||||||
// Command structure cribbed from the genius organization of the "go" command.
|
// Command structure cribbed from the genius organization of the "go" command.
|
||||||
type Command struct {
|
type Command struct {
|
||||||
|
|||||||
3
revel/skeleton/.gitignore
vendored
Normal file
3
revel/skeleton/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
test-results/
|
||||||
|
tmp/
|
||||||
|
routes/
|
||||||
75
revel/skeleton/README.md
Normal file
75
revel/skeleton/README.md
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
# Welcome to Revel
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
A high-productivity web framework for the [Go language](http://www.golang.org/).
|
||||||
|
|
||||||
|
### Start the web server:
|
||||||
|
|
||||||
|
revel run myapp
|
||||||
|
|
||||||
|
Run with <tt>--help</tt> for options.
|
||||||
|
|
||||||
|
### Go to http://localhost:9000/ and you'll see:
|
||||||
|
|
||||||
|
"It works"
|
||||||
|
|
||||||
|
### Description of Contents
|
||||||
|
|
||||||
|
The default directory structure of a generated Revel application:
|
||||||
|
|
||||||
|
myapp App root
|
||||||
|
app App sources
|
||||||
|
controllers App controllers
|
||||||
|
init.go Interceptor registration
|
||||||
|
models App domain models
|
||||||
|
routes Reverse routes (generated code)
|
||||||
|
views Templates
|
||||||
|
tests Test suites
|
||||||
|
conf Configuration files
|
||||||
|
app.conf Main configuration file
|
||||||
|
routes Routes definition
|
||||||
|
messages Message files
|
||||||
|
public Public assets
|
||||||
|
css CSS files
|
||||||
|
js Javascript files
|
||||||
|
images Image files
|
||||||
|
|
||||||
|
app
|
||||||
|
|
||||||
|
The app directory contains the source code and templates for your application.
|
||||||
|
|
||||||
|
conf
|
||||||
|
|
||||||
|
The conf directory contains the application’s configuration files. There are two main configuration files:
|
||||||
|
|
||||||
|
* app.conf, the main configuration file for the application, which contains standard configuration parameters
|
||||||
|
* routes, the routes definition file.
|
||||||
|
|
||||||
|
|
||||||
|
messages
|
||||||
|
|
||||||
|
The messages directory contains all localized message files.
|
||||||
|
|
||||||
|
public
|
||||||
|
|
||||||
|
Resources stored in the public directory are static assets that are served directly by the Web server. Typically it is split into three standard sub-directories for images, CSS stylesheets and JavaScript files.
|
||||||
|
|
||||||
|
The names of these directories may be anything; the developer need only update the routes.
|
||||||
|
|
||||||
|
test
|
||||||
|
|
||||||
|
Tests are kept in the tests directory. Revel provides a testing framework that makes it easy to write and run functional tests against your application.
|
||||||
|
|
||||||
|
### Follow the guidelines to start developing your application:
|
||||||
|
|
||||||
|
* The README file created within your application.
|
||||||
|
* The [Getting Started with Revel](http://revel.github.io/tutorial/index.html).
|
||||||
|
* The [Revel guides](http://revel.github.io/manual/index.html).
|
||||||
|
* The [Revel sample apps](http://revel.github.io/samples/index.html).
|
||||||
|
* The [API documentation](https://godoc.org/github.com/revel/revel).
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
We encourage you to contribute to Revel! Please check out the [Contributing to Revel
|
||||||
|
guide](https://github.com/revel/revel/blob/master/CONTRIBUTING.md) for guidelines about how
|
||||||
|
to proceed. [Join us](https://groups.google.com/forum/#!forum/revel-framework)!
|
||||||
11
revel/skeleton/app/controllers/app.go
Normal file
11
revel/skeleton/app/controllers/app.go
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package controllers
|
||||||
|
|
||||||
|
import "github.com/revel/revel"
|
||||||
|
|
||||||
|
type App struct {
|
||||||
|
*revel.Controller
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c App) Index() revel.Result {
|
||||||
|
return c.Render()
|
||||||
|
}
|
||||||
46
revel/skeleton/app/init.go
Normal file
46
revel/skeleton/app/init.go
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
package app
|
||||||
|
|
||||||
|
import "github.com/revel/revel"
|
||||||
|
|
||||||
|
var (
|
||||||
|
// AppVersion revel app version (ldflags)
|
||||||
|
AppVersion string
|
||||||
|
|
||||||
|
// BuildTime revel app build-time (ldflags)
|
||||||
|
BuildTime string
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
// Filters is the default set of global filters.
|
||||||
|
revel.Filters = []revel.Filter{
|
||||||
|
revel.PanicFilter, // Recover from panics and display an error page instead.
|
||||||
|
revel.RouterFilter, // Use the routing table to select the right Action
|
||||||
|
revel.FilterConfiguringFilter, // A hook for adding or removing per-Action filters.
|
||||||
|
revel.ParamsFilter, // Parse parameters into Controller.Params.
|
||||||
|
revel.SessionFilter, // Restore and write the session cookie.
|
||||||
|
revel.FlashFilter, // Restore and write the flash cookie.
|
||||||
|
revel.ValidationFilter, // Restore kept validation errors and save new ones from cookie.
|
||||||
|
revel.I18nFilter, // Resolve the requested language
|
||||||
|
HeaderFilter, // Add some security based headers
|
||||||
|
revel.InterceptorFilter, // Run interceptors around the action.
|
||||||
|
revel.CompressFilter, // Compress the result.
|
||||||
|
revel.ActionInvoker, // Invoke the action.
|
||||||
|
}
|
||||||
|
|
||||||
|
// register startup functions with OnAppStart
|
||||||
|
// ( order dependent )
|
||||||
|
// revel.OnAppStart(InitDB)
|
||||||
|
// revel.OnAppStart(FillCache)
|
||||||
|
}
|
||||||
|
|
||||||
|
// HeaderFilter adds common security headers
|
||||||
|
// TODO turn this into revel.HeaderFilter
|
||||||
|
// should probably also have a filter for CSRF
|
||||||
|
// not sure if it can go in the same filter or not
|
||||||
|
var HeaderFilter = func(c *revel.Controller, fc []revel.Filter) {
|
||||||
|
c.Response.Out.Header().Add("X-Frame-Options", "SAMEORIGIN")
|
||||||
|
c.Response.Out.Header().Add("X-XSS-Protection", "1; mode=block")
|
||||||
|
c.Response.Out.Header().Add("X-Content-Type-Options", "nosniff")
|
||||||
|
|
||||||
|
fc[0](c, fc[1:]) // Execute the next filter stage.
|
||||||
|
}
|
||||||
21
revel/skeleton/app/views/App/Index.html
Normal file
21
revel/skeleton/app/views/App/Index.html
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{{set . "title" "Home"}}
|
||||||
|
{{template "header.html" .}}
|
||||||
|
|
||||||
|
<header class="jumbotron" style="background-color:#A9F16C">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<h1>It works!</h1>
|
||||||
|
<p></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="span6">
|
||||||
|
{{template "flash.html" .}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{template "footer.html" .}}
|
||||||
64
revel/skeleton/app/views/debug.html
Normal file
64
revel/skeleton/app/views/debug.html
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
<style type="text/css">
|
||||||
|
#sidebar {
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
top:69px;
|
||||||
|
max-width: 75%;
|
||||||
|
z-index: 1000;
|
||||||
|
background-color: #fee;
|
||||||
|
border: thin solid grey;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
#toggleSidebar {
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
top: 50px;
|
||||||
|
background-color: #fee;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<div id="sidebar" style="display:none;">
|
||||||
|
<h4>Available pipelines</h4>
|
||||||
|
<dl>
|
||||||
|
{{ range $index, $value := .}}
|
||||||
|
<dt>{{$index}}</dt>
|
||||||
|
<dd>{{$value}}</dd>
|
||||||
|
{{end}}
|
||||||
|
</dl>
|
||||||
|
<h4>Flash</h4>
|
||||||
|
<dl>
|
||||||
|
{{ range $index, $value := .flash}}
|
||||||
|
<dt>{{$index}}</dt>
|
||||||
|
<dd>{{$value}}</dd>
|
||||||
|
{{end}}
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<h4>Errors</h4>
|
||||||
|
<dl>
|
||||||
|
{{ range $index, $value := .errors}}
|
||||||
|
<dt>{{$index}}</dt>
|
||||||
|
<dd>{{$value}}</dd>
|
||||||
|
{{end}}
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
<a id="toggleSidebar" href="#" class="toggles"><i class="glyphicon glyphicon-chevron-left"></i></a>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$sidebar = 0;
|
||||||
|
$('#toggleSidebar').click(function() {
|
||||||
|
if ($sidebar === 1) {
|
||||||
|
$('#sidebar').hide();
|
||||||
|
$('#toggleSidebar i').addClass('glyphicon-chevron-left');
|
||||||
|
$('#toggleSidebar i').removeClass('glyphicon-chevron-right');
|
||||||
|
$sidebar = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$('#sidebar').show();
|
||||||
|
$('#toggleSidebar i').addClass('glyphicon-chevron-right');
|
||||||
|
$('#toggleSidebar i').removeClass('glyphicon-chevron-left');
|
||||||
|
$sidebar = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
</script>
|
||||||
20
revel/skeleton/app/views/errors/404.html
Normal file
20
revel/skeleton/app/views/errors/404.html
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>Not found</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{{if eq .RunMode "dev"}}
|
||||||
|
{{template "errors/404-dev.html" .}}
|
||||||
|
{{else}}
|
||||||
|
{{with .Error}}
|
||||||
|
<h1>
|
||||||
|
{{.Title}}
|
||||||
|
</h1>
|
||||||
|
<p>
|
||||||
|
{{.Description}}
|
||||||
|
</p>
|
||||||
|
{{end}}
|
||||||
|
{{end}}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
16
revel/skeleton/app/views/errors/500.html
Normal file
16
revel/skeleton/app/views/errors/500.html
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Application error</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{{if eq .RunMode "dev"}}
|
||||||
|
{{template "errors/500-dev.html" .}}
|
||||||
|
{{else}}
|
||||||
|
<h1>Oops, an error occured</h1>
|
||||||
|
<p>
|
||||||
|
This exception has been logged.
|
||||||
|
</p>
|
||||||
|
{{end}}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
18
revel/skeleton/app/views/flash.html
Normal file
18
revel/skeleton/app/views/flash.html
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{{if .flash.success}}
|
||||||
|
<div class="alert alert-success">
|
||||||
|
{{.flash.success}}
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
{{if or .errors .flash.error}}
|
||||||
|
<div class="alert alert-error">
|
||||||
|
{{if .flash.error}}
|
||||||
|
{{.flash.error}}
|
||||||
|
{{end}}
|
||||||
|
<ul style="margin-top:10px;">
|
||||||
|
{{range .errors}}
|
||||||
|
<li>{{.}}</li>
|
||||||
|
{{end}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
5
revel/skeleton/app/views/footer.html
Normal file
5
revel/skeleton/app/views/footer.html
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{{if eq .RunMode "dev"}}
|
||||||
|
{{template "debug.html" .}}
|
||||||
|
{{end}}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
19
revel/skeleton/app/views/header.html
Normal file
19
revel/skeleton/app/views/header.html
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>{{.title}}</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/public/css/bootstrap-3.3.6.min.css">
|
||||||
|
<link rel="shortcut icon" type="image/png" href="/public/img/favicon.png">
|
||||||
|
<script src="/public/js/jquery-2.2.4.min.js"></script>
|
||||||
|
<script src="/public/js/bootstrap-3.3.6.min.js"></script>
|
||||||
|
{{range .moreStyles}}
|
||||||
|
<link rel="stylesheet" type="text/css" href="/public/{{.}}">
|
||||||
|
{{end}}
|
||||||
|
{{range .moreScripts}}
|
||||||
|
<script src="/public/{{.}}" type="text/javascript" charset="utf-8"></script>
|
||||||
|
{{end}}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
217
revel/skeleton/conf/app.conf.template
Normal file
217
revel/skeleton/conf/app.conf.template
Normal file
@@ -0,0 +1,217 @@
|
|||||||
|
################################################################################
|
||||||
|
# Revel configuration file
|
||||||
|
# See:
|
||||||
|
# http://revel.github.io/manual/appconf.html
|
||||||
|
# for more detailed documentation.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# This sets the `AppName` variable which can be used in your code as
|
||||||
|
# `if revel.AppName {...}`
|
||||||
|
app.name = {{ .AppName }}
|
||||||
|
|
||||||
|
# A secret string which is passed to cryptographically sign the cookie to prevent
|
||||||
|
# (and detect) user modification.
|
||||||
|
# Keep this string secret or users will be able to inject arbitrary cookie values
|
||||||
|
# into your application
|
||||||
|
app.secret = {{ .Secret }}
|
||||||
|
|
||||||
|
# Revel running behind proxy like nginx, haproxy, etc
|
||||||
|
app.behind.proxy = false
|
||||||
|
|
||||||
|
|
||||||
|
# The IP address on which to listen.
|
||||||
|
http.addr =
|
||||||
|
|
||||||
|
# The port on which to listen.
|
||||||
|
http.port = 9000
|
||||||
|
|
||||||
|
# Whether to use SSL or not.
|
||||||
|
http.ssl = false
|
||||||
|
|
||||||
|
# Path to an X509 certificate file, if using SSL.
|
||||||
|
#http.sslcert =
|
||||||
|
|
||||||
|
# Path to an X509 certificate key, if using SSL.
|
||||||
|
#http.sslkey =
|
||||||
|
|
||||||
|
|
||||||
|
# Timeout specifies a time limit for request (in seconds) made by a single client.
|
||||||
|
# A Timeout of zero means no timeout.
|
||||||
|
http.timeout.read = 90
|
||||||
|
http.timeout.write = 60
|
||||||
|
|
||||||
|
|
||||||
|
# For any cookies set by Revel (Session,Flash,Error) these properties will set
|
||||||
|
# the fields of:
|
||||||
|
# http://golang.org/pkg/net/http/#Cookie
|
||||||
|
#
|
||||||
|
# Each cookie set by Revel is prefixed with this string.
|
||||||
|
cookie.prefix = REVEL
|
||||||
|
|
||||||
|
# A secure cookie has the secure attribute enabled and is only used via HTTPS,
|
||||||
|
# ensuring that the cookie is always encrypted when transmitting from client to
|
||||||
|
# server. This makes the cookie less likely to be exposed to cookie theft via
|
||||||
|
# eavesdropping.
|
||||||
|
#
|
||||||
|
# In dev mode, this will default to false, otherwise it will
|
||||||
|
# default to true.
|
||||||
|
# cookie.secure = false
|
||||||
|
|
||||||
|
# Limit cookie access to a given domain
|
||||||
|
#cookie.domain =
|
||||||
|
|
||||||
|
# Define when your session cookie expires. Possible values:
|
||||||
|
# "720h"
|
||||||
|
# A time duration (http://golang.org/pkg/time/#ParseDuration) after which
|
||||||
|
# the cookie expires and the session is invalid.
|
||||||
|
# "session"
|
||||||
|
# Sets a session cookie which invalidates the session when the user close
|
||||||
|
# the browser.
|
||||||
|
session.expires = 720h
|
||||||
|
|
||||||
|
|
||||||
|
# The date format used by Revel. Possible formats defined by the Go `time`
|
||||||
|
# package (http://golang.org/pkg/time/#Parse)
|
||||||
|
format.date = 2006-01-02
|
||||||
|
format.datetime = 2006-01-02 15:04
|
||||||
|
|
||||||
|
|
||||||
|
# Determines whether the template rendering should use chunked encoding.
|
||||||
|
# Chunked encoding can decrease the time to first byte on the client side by
|
||||||
|
# sending data before the entire template has been fully rendered.
|
||||||
|
results.chunked = false
|
||||||
|
|
||||||
|
|
||||||
|
# Prefixes for each log message line
|
||||||
|
# User can override these prefix values within any section
|
||||||
|
# For e.g: [dev], [prod], etc
|
||||||
|
log.trace.prefix = "TRACE "
|
||||||
|
log.info.prefix = "INFO "
|
||||||
|
log.warn.prefix = "WARN "
|
||||||
|
log.error.prefix = "ERROR "
|
||||||
|
|
||||||
|
|
||||||
|
# The default language of this application.
|
||||||
|
i18n.default_language = en
|
||||||
|
|
||||||
|
# The default format when message is missing.
|
||||||
|
# The original message shows in %s
|
||||||
|
#i18n.unknown_format = "??? %s ???"
|
||||||
|
|
||||||
|
|
||||||
|
# Module to serve static content such as CSS, JavaScript and Media files
|
||||||
|
# Allows Routes like this:
|
||||||
|
# `Static.ServeModule("modulename","public")`
|
||||||
|
module.static=github.com/revel/modules/static
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Section: dev
|
||||||
|
# This section is evaluated when running Revel in dev mode. Like so:
|
||||||
|
# `revel run path/to/myapp`
|
||||||
|
[dev]
|
||||||
|
# This sets `DevMode` variable to `true` which can be used in your code as
|
||||||
|
# `if revel.DevMode {...}`
|
||||||
|
# or in your templates with
|
||||||
|
# `{{.DevMode}}`
|
||||||
|
mode.dev = true
|
||||||
|
|
||||||
|
|
||||||
|
# Pretty print JSON/XML when calling RenderJSON/RenderXML
|
||||||
|
results.pretty = true
|
||||||
|
|
||||||
|
|
||||||
|
# Automatically watches your applicaton files and recompiles on-demand
|
||||||
|
watch = true
|
||||||
|
|
||||||
|
|
||||||
|
# If you set watch.mode = "eager", the server starts to recompile
|
||||||
|
# your application every time your application's files change.
|
||||||
|
watch.mode = "normal"
|
||||||
|
|
||||||
|
# Watch the entire $GOPATH for code changes. Default is false.
|
||||||
|
#watch.gopath = true
|
||||||
|
|
||||||
|
|
||||||
|
# Module to run code tests in the browser
|
||||||
|
# See:
|
||||||
|
# http://revel.github.io/manual/testing.html
|
||||||
|
module.testrunner = github.com/revel/modules/testrunner
|
||||||
|
|
||||||
|
|
||||||
|
# Where to log the various Revel logs
|
||||||
|
log.trace.output = off
|
||||||
|
log.info.output = stderr
|
||||||
|
log.warn.output = stderr
|
||||||
|
log.error.output = stderr
|
||||||
|
|
||||||
|
|
||||||
|
# Revel log flags. Possible flags defined by the Go `log` package,
|
||||||
|
# please refer https://golang.org/pkg/log/#pkg-constants
|
||||||
|
# Go log is "Bits or'ed together to control what's printed"
|
||||||
|
# Examples:
|
||||||
|
# 0 => just log the message, turn off the flags
|
||||||
|
# 3 => log.LstdFlags (log.Ldate|log.Ltime)
|
||||||
|
# 19 => log.Ldate|log.Ltime|log.Lshortfile
|
||||||
|
# 23 => log.Ldate|log.Ltime|log.Lmicroseconds|log.Lshortfile
|
||||||
|
log.trace.flags = 19
|
||||||
|
log.info.flags = 19
|
||||||
|
log.warn.flags = 19
|
||||||
|
log.error.flags = 19
|
||||||
|
|
||||||
|
|
||||||
|
# Revel request access log
|
||||||
|
# Access log line format:
|
||||||
|
# RequestStartTime ClientIP ResponseStatus RequestLatency HTTPMethod URLPath
|
||||||
|
# Sample format:
|
||||||
|
# 2016/05/25 17:46:37.112 127.0.0.1 200 270.157µs GET /
|
||||||
|
log.request.output = stderr
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Section: prod
|
||||||
|
# This section is evaluated when running Revel in production mode. Like so:
|
||||||
|
# `revel run path/to/myapp prod`
|
||||||
|
# See:
|
||||||
|
# [dev] section for documentation of the various settings
|
||||||
|
[prod]
|
||||||
|
mode.dev = false
|
||||||
|
|
||||||
|
|
||||||
|
results.pretty = false
|
||||||
|
|
||||||
|
|
||||||
|
watch = false
|
||||||
|
|
||||||
|
|
||||||
|
module.testrunner =
|
||||||
|
|
||||||
|
|
||||||
|
log.trace.output = off
|
||||||
|
log.info.output = off
|
||||||
|
log.warn.output = log/%(app.name)s.log
|
||||||
|
log.error.output = log/%(app.name)s.log
|
||||||
|
|
||||||
|
# Revel log flags. Possible flags defined by the Go `log` package,
|
||||||
|
# please refer https://golang.org/pkg/log/#pkg-constants
|
||||||
|
# Go log is "Bits or'ed together to control what's printed"
|
||||||
|
# Examples:
|
||||||
|
# 0 => just log the message, turn off the flags
|
||||||
|
# 3 => log.LstdFlags (log.Ldate|log.Ltime)
|
||||||
|
# 19 => log.Ldate|log.Ltime|log.Lshortfile
|
||||||
|
# 23 => log.Ldate|log.Ltime|log.Lmicroseconds|log.Lshortfile
|
||||||
|
log.trace.flags = 3
|
||||||
|
log.info.flags = 3
|
||||||
|
log.warn.flags = 3
|
||||||
|
log.error.flags = 3
|
||||||
|
|
||||||
|
|
||||||
|
# Revel request access log
|
||||||
|
# Access log line format:
|
||||||
|
# RequestStartTime ClientIP ResponseStatus RequestLatency HTTPMethod URLPath
|
||||||
|
# Sample format:
|
||||||
|
# 2016/05/25 17:46:37.112 127.0.0.1 200 270.157µs GET /
|
||||||
|
# Example:
|
||||||
|
# log.request.output = %(app.name)s-request.log
|
||||||
|
log.request.output = off
|
||||||
16
revel/skeleton/conf/routes
Normal file
16
revel/skeleton/conf/routes
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Routes
|
||||||
|
# This file defines all application routes (Higher priority routes first)
|
||||||
|
# ~~~~
|
||||||
|
|
||||||
|
module:testrunner
|
||||||
|
|
||||||
|
GET / App.Index
|
||||||
|
|
||||||
|
# Ignore favicon requests
|
||||||
|
GET /favicon.ico 404
|
||||||
|
|
||||||
|
# Map static resources from the /app/public folder to the /public path
|
||||||
|
GET /public/*filepath Static.Serve("public")
|
||||||
|
|
||||||
|
# Catch all
|
||||||
|
* /:controller/:action :controller.:action
|
||||||
7
revel/skeleton/messages/sample.en
Normal file
7
revel/skeleton/messages/sample.en
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# Sample messages file for the English language (en)
|
||||||
|
# Message file extensions should be ISO 639-1 codes (http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
|
||||||
|
# Sections within each message file can optionally override the defaults using ISO 3166-1 alpha-2 codes (http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
|
||||||
|
# See also:
|
||||||
|
# - http://www.rfc-editor.org/rfc/bcp/bcp47.txt
|
||||||
|
# - http://www.w3.org/International/questions/qa-accept-lang-locales
|
||||||
|
|
||||||
5
revel/skeleton/public/css/bootstrap-3.3.6.min.css
vendored
Normal file
5
revel/skeleton/public/css/bootstrap-3.3.6.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
revel/skeleton/public/fonts/glyphicons-halflings-regular.ttf
Normal file
BIN
revel/skeleton/public/fonts/glyphicons-halflings-regular.ttf
Normal file
Binary file not shown.
BIN
revel/skeleton/public/fonts/glyphicons-halflings-regular.woff
Normal file
BIN
revel/skeleton/public/fonts/glyphicons-halflings-regular.woff
Normal file
Binary file not shown.
BIN
revel/skeleton/public/fonts/glyphicons-halflings-regular.woff2
Normal file
BIN
revel/skeleton/public/fonts/glyphicons-halflings-regular.woff2
Normal file
Binary file not shown.
BIN
revel/skeleton/public/img/favicon.png
Normal file
BIN
revel/skeleton/public/img/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.5 KiB |
7
revel/skeleton/public/js/bootstrap-3.3.6.min.js
vendored
Normal file
7
revel/skeleton/public/js/bootstrap-3.3.6.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
revel/skeleton/public/js/jquery-2.2.4.min.js
vendored
Normal file
4
revel/skeleton/public/js/jquery-2.2.4.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
21
revel/skeleton/tests/apptest.go
Normal file
21
revel/skeleton/tests/apptest.go
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import "github.com/revel/revel/testing"
|
||||||
|
|
||||||
|
type AppTest struct {
|
||||||
|
testing.TestSuite
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *AppTest) Before() {
|
||||||
|
println("Set up")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *AppTest) TestThatIndexPageWorks() {
|
||||||
|
t.Get("/")
|
||||||
|
t.AssertOk()
|
||||||
|
t.AssertContentType("text/html; charset=utf-8")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *AppTest) After() {
|
||||||
|
println("Tear down")
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user