change: add LICENSE & basic compile instructions
This commit is contained in:
parent
50ca9f7216
commit
158f574b2a
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,6 +1,7 @@
|
|||||||
node_modules
|
node_modules
|
||||||
|
dist/
|
||||||
uploads/*
|
uploads/*
|
||||||
!uploads/.keep
|
!uploads/.keep
|
||||||
|
|
||||||
internal/frontend/frontend_generated.go
|
internal/frontend/frontend_generated.go
|
||||||
citadel
|
citadel
|
||||||
|
conf/app.toml
|
||||||
|
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) [year] [fullname]
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
27
README.md
27
README.md
@ -21,6 +21,32 @@ Currently you can do the following to tasks:
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
### From Source
|
||||||
|
|
||||||
|
You'll need [Golang](https://golang.org/dl/) installed on your machine.
|
||||||
|
|
||||||
|
Next, clone the repository:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
git clone https://github.com/JordanKnott/project-citadel && cd project-citadel
|
||||||
|
```
|
||||||
|
|
||||||
|
Next we need to build the binary. This project uses [Mage](https://magefile.org/) for its build tool.
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
go run cmd/mage/main.go build
|
||||||
|
```
|
||||||
|
|
||||||
|
This will:
|
||||||
|
|
||||||
|
- Install all yarn packages for the frontend
|
||||||
|
- Build the React frontend
|
||||||
|
- Embed the React frontend in the binary
|
||||||
|
- Compile the final exectuable binary
|
||||||
|
|
||||||
|
The newly created `citadel` binary can be found in the __dist__ folder.
|
||||||
|
|
||||||
|
It contains everything neccessary to run except the config file. An example config file can be found in `conf/app.example.toml`
|
||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
|
|
||||||
@ -43,4 +69,5 @@ This is a list of features that will eventually be added to Citadel in no partic
|
|||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
[MIT License](LICENSE)
|
||||||
|
|
||||||
|
10
cmd/mage/main.go
Normal file
10
cmd/mage/main.go
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// +build ignore
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/magefile/mage/mage"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() { os.Exit(mage.Main()) }
|
@ -12,7 +12,7 @@ upload_dir_path = 'uploads'
|
|||||||
|
|
||||||
[database]
|
[database]
|
||||||
host = '0.0.0.0'
|
host = '0.0.0.0'
|
||||||
name = 'citadel_test'
|
name = 'citadel'
|
||||||
user = 'postgres'
|
user = 'postgres'
|
||||||
password = 'test'
|
password = 'test'
|
||||||
|
|
34
magefile.go
34
magefile.go
@ -4,19 +4,33 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/magefile/mage/sh"
|
|
||||||
"github.com/shurcooL/vfsgen"
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/magefile/mage/mg"
|
||||||
|
"github.com/magefile/mage/sh"
|
||||||
|
"github.com/shurcooL/vfsgen"
|
||||||
)
|
)
|
||||||
|
|
||||||
var Aliases = map[string]interface{}{
|
var Aliases = map[string]interface{}{
|
||||||
"g": Generate,
|
"s": Backend.Schema,
|
||||||
}
|
}
|
||||||
|
|
||||||
func Vfs() error {
|
type Frontend mg.Namespace
|
||||||
|
|
||||||
|
func (Frontend) Install() error {
|
||||||
|
return sh.Run("yarn", "install", "--cwd", "frontend")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (Frontend) Build() error {
|
||||||
|
return sh.Run("yarn", "build", "--cwd", "frontend")
|
||||||
|
}
|
||||||
|
|
||||||
|
type Backend mg.Namespace
|
||||||
|
|
||||||
|
func (Backend) GenFrontend() error {
|
||||||
var fs http.FileSystem = http.Dir("frontend/build")
|
var fs http.FileSystem = http.Dir("frontend/build")
|
||||||
err := vfsgen.Generate(fs, vfsgen.Options{
|
err := vfsgen.Generate(fs, vfsgen.Options{
|
||||||
Filename: "internal/frontend/frontend_generated.go",
|
Filename: "internal/frontend/frontend_generated.go",
|
||||||
@ -29,9 +43,11 @@ func Vfs() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Runs go mod download and then installs the binary.
|
func (Backend) Build() error {
|
||||||
func Generate() error {
|
return sh.Run("go", "build", "-o", "dist/citadel", "cmd/citadel/main.go")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (Backend) Schema() error {
|
||||||
files, err := ioutil.ReadDir("internal/graph/schema/")
|
files, err := ioutil.ReadDir("internal/graph/schema/")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@ -50,11 +66,13 @@ func Generate() error {
|
|||||||
}
|
}
|
||||||
fmt.Fprintln(&schema, string(content))
|
fmt.Fprintln(&schema, string(content))
|
||||||
}
|
}
|
||||||
// return sh.Run("go", "install", "./...")
|
|
||||||
// fmt.Println(schema.String())
|
|
||||||
err = ioutil.WriteFile("internal/graph/schema.graphqls", []byte(schema.String()), os.FileMode(0755))
|
err = ioutil.WriteFile("internal/graph/schema.graphqls", []byte(schema.String()), os.FileMode(0755))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
return sh.Run("gqlgen")
|
return sh.Run("gqlgen")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Build() {
|
||||||
|
mg.SerialDeps(Frontend.Install, Frontend.Build, Backend.GenFrontend, Backend.Build)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user