Skip to content

Commit

Permalink
feat: build single node binary
Browse files Browse the repository at this point in the history
  • Loading branch information
torives committed Sep 19, 2023
1 parent 292ff68 commit c7334b4
Show file tree
Hide file tree
Showing 8 changed files with 148 additions and 0 deletions.
16 changes: 16 additions & 0 deletions cmd/supervisor/supervisor.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// (c) Cartesi and individual authors (see AUTHORS)
// SPDX-License-Identifier: Apache-2.0 (see LICENSE)

package main

import (
"os"

cmd "github.com/cartesi/rollups-node/internal/pkg/supervisor"
)

func main() {
if err := cmd.Root.Execute(); err != nil {
os.Exit(1)
}
}
10 changes: 10 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module github.com/cartesi/rollups-node

go 1.21.1

require github.com/spf13/cobra v1.7.0

require (
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
)
10 changes: 10 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
52 changes: 52 additions & 0 deletions internal/pkg/supervisor/full.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// (c) Cartesi and individual authors (see AUTHORS)
// SPDX-License-Identifier: Apache-2.0 (see LICENSE)

package supervisor

import (
"io"
"log"
"os"
"os/exec"

"github.com/spf13/cobra"
)

var full = &cobra.Command{
Use: "full",
Short: "Starts the node in full mode with reader and validator capabilities",
Run: runFullNode,
}

func runFullNode(cmd *cobra.Command, args []string) {
proc := exec.Command("cartesi-rollups-graphql-server")

stdoutPipe, err := proc.StdoutPipe()
if err != nil {
log.Fatal("Error creating stdout pipe:", err)
}

stderrPipe, err := proc.StderrPipe()
if err != nil {
log.Fatal("Error creating stderr pipe:", err)
}

if err := proc.Start(); err != nil {
log.Fatal("Error starting sub-process:", err)
}

// Create goroutines to display the sub-process's stdout and stderr.
go func() {
io.Copy(os.Stdout, stdoutPipe)
}()

go func() {
io.Copy(os.Stdout, stderrPipe)
}()

if err := proc.Wait(); err != nil {
log.Fatal("Error waiting for sub-process:", err)
}

log.Println("Sub-process finished")
}
14 changes: 14 additions & 0 deletions internal/pkg/supervisor/host.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// (c) Cartesi and individual authors (see AUTHORS)
// SPDX-License-Identifier: Apache-2.0 (see LICENSE)

package supervisor

import "github.com/spf13/cobra"

var host = &cobra.Command{
Use: "host",
Short: "Starts the node in host mode",
Run: func(cmd *cobra.Command, args []string) {
println("TODO")
},
}
14 changes: 14 additions & 0 deletions internal/pkg/supervisor/reader.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// (c) Cartesi and individual authors (see AUTHORS)
// SPDX-License-Identifier: Apache-2.0 (see LICENSE)

package supervisor

import "github.com/spf13/cobra"

var reader = &cobra.Command{
Use: "reader",
Short: "Starts the node in reader mode",
Run: func(cmd *cobra.Command, args []string) {
println("TODO")
},
}
18 changes: 18 additions & 0 deletions internal/pkg/supervisor/root.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// (c) Cartesi and individual authors (see AUTHORS)
// SPDX-License-Identifier: Apache-2.0 (see LICENSE)

package supervisor

import "github.com/spf13/cobra"

var Root = &cobra.Command{
Use: "cartesi-node-supervisor [reader|validator|full|host]",
Run: func(cmd *cobra.Command, args []string) { cmd.Usage() },
}

func init() {
Root.AddCommand(reader)
Root.AddCommand(validator)
Root.AddCommand(full)
Root.AddCommand(host)
}
14 changes: 14 additions & 0 deletions internal/pkg/supervisor/validator.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// (c) Cartesi and individual authors (see AUTHORS)
// SPDX-License-Identifier: Apache-2.0 (see LICENSE)

package supervisor

import "github.com/spf13/cobra"

var validator = &cobra.Command{
Use: "validator",
Short: "Starts the node in validator mode",
Run: func(cmd *cobra.Command, args []string) {
println("TODO")
},
}

0 comments on commit c7334b4

Please sign in to comment.