forked from fragmenta/fragmenta
/
deploy.go
51 lines (40 loc) · 1.09 KB
/
deploy.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package main
import (
"log"
"os"
// We depend on assets in order to build - how to tell user doesn't want assets?
"github.com/fragmenta/assets"
)
// RunDeploy builds the assets, builds the server, and then runs the script at ./bin/deploy if it exists
func RunDeploy(args []string) {
// Build our app assets and update secrets/assets.json
buildAssets()
// Build deploy server
buildDeployServer()
deploy := "./bin/deploy"
_, err := os.Stat(deploy)
if err != nil {
log.Printf("Could not find deploy script at %s", deploy)
return
}
// Default to development
mode := "development"
if len(args) == 3 {
mode = args[2]
}
log.Printf("Running deploy from " + deploy)
result, err := runCommand(deploy, mode)
if err != nil {
log.Printf("Error running deploy %s", err)
return
}
log.Printf(string(result))
}
// buildAssets compiles the app assets before a deploy, so that they're available for production use
func buildAssets() {
log.Printf("Compiling assets...")
err := assets.New(true).Compile("src", "public")
if err != nil {
log.Fatalf("#error compiling assets %s", err)
}
}