Skip to content
This repository has been archived by the owner on Jul 2, 2024. It is now read-only.

Commit

Permalink
Merge pull request #54 from tsirysndr/website
Browse files Browse the repository at this point in the history
feat(website): show supported runtimes
  • Loading branch information
tsirysndr authored May 20, 2023
2 parents 1f8f8cf + 08471c7 commit 41eebc3
Show file tree
Hide file tree
Showing 12 changed files with 429 additions and 48 deletions.
Binary file modified website/bun.lockb
Binary file not shown.
7 changes: 5 additions & 2 deletions website/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,11 @@ const config = {
copyright: `Copyright © ${new Date().getFullYear()} Tsiry Sandratraina. Built with Docusaurus.`,
},
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
additionalLanguages: ["hcl", "rust", "go", "typescript"],
theme: {
...darkCodeTheme,
plain: { color: "#fff", backgroundColor: "transparent" },
},
},
}),
};
Expand Down
1 change: 1 addition & 0 deletions website/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
"prism-react-renderer": "^1.3.5",
"prismjs": "^1.29.0",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-loadable": "^5.5.0"
Expand Down
133 changes: 133 additions & 0 deletions website/src/components/HomepageFeatures/CodeExample.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
import CodeBlock from "@theme/CodeBlock";

import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";

<Tabs>
<TabItem value="hcl" label="HCL">
<CodeBlock language="hcl">{`
project = "demo"\n
service "demo" {
type = "exec"
command = "ping $GITHUB_DOMAIN"
working_dir = "/tmp"
description = "Ping Service Example"
depends_on = []
env = {
"GITHUB_DOMAIN" = "github.com"
}
stdout = "/tmp/demo-stdout.log"
stderr = "/tmp/demo-stderr.log"
}
`}
</CodeBlock>
</TabItem>

<TabItem value="typescript" label="TypeScript">
<CodeBlock language="typescript">
{`
import * as path from "https://deno.land/std/path/mod.ts";
import { connect } from "../client.ts";
import Service from "../service.ts";\n
if (import.meta.main) {
const deno = new Service()
.withName("deno-fresh")
.withCommand("./dev.ts")
.withEnv({
PORT: "8000",
});\n
const projectDir = path.resolve("../../examples/deno-fresh");\n
const response = await connect()
.newProject()
.withName("deno-example")
.withContext(projectDir)
.withService(deno)
.stdout();\n
console.log(response);
}
`}

</CodeBlock>
</TabItem>

<TabItem value="gleam" label="Gleam">
<CodeBlock language="gleam">
{`
import project.{stdout, with_context, with_service}
import service.{new_service, with_command, with_env, with_name}
import client.{connect, with_project}\n
pub fn main() {
let deno_fresh =
new_service()
|> with_name("deno-fresh")
|> with_command("./dev.ts")
|> with_env(["PORT=8000"])\n
let project =
connect()
|> with_project("deno-example")
|> with_context(
"../examples/deno-fresh",
)
|> with_service(deno_fresh)\n
project
|> stdout()
}
`}

</CodeBlock>
</TabItem>

<TabItem value="go" label="Go">
<CodeBlock language="go">
{`
package main\n
import (
"fmt"
"github.com/tsirysndr/go-superviseur/client"
"github.com/tsirysndr/go-superviseur/service"
)\n
func main() {
denoFresh := service.New().
WithName("deno-fresh").
WithCommand("./dev.ts").
WithEnv(map[string]string{
"PORT": "8000",
})\n
project := client.Connect().
NewProject().
WithName("deno-example").
WithContext("../examples/deno-fresh").
WithService(denoFresh)\n
fmt.Println(project.Stdout())
}
`}

</CodeBlock>
</TabItem>

<TabItem value="rust" label="Rust">
<CodeBlock language="rust">
{`
use std::fs::canonicalize;
use superviseur_client::{client::connect, service::new_service};\n
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let deno_fresh = new_service()
.with_name("deno-fresh")
.with_command("./dev.ts")
.with_env("PORT", "8000");\n
let project_dir = canonicalize("../../examples/deno-fresh")?;\n
connect()
.new_project("deno-example")
.with_context(project_dir.to_str().unwrap())
.with_service(deno_fresh)
.stdout()
.await?;\n
Ok(())
}
`}

</CodeBlock>
</TabItem>

</Tabs>
124 changes: 124 additions & 0 deletions website/src/components/HomepageFeatures/SupportedPlugins.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
import CodeBlock from "@theme/CodeBlock";

import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";

<Tabs>
<TabItem value="hcl" label="Docker">
<CodeBlock language="hcl">{`
project = "demo"\n
service "redis" {
type = "docker"
command = "redis-server"
working_dir = "."
description = "Redis Service Example"
depends_on = []
env = {}
port = 6379\n
use "docker" {
image = "redislabs/redismod:edge"
ports = ["6379:6379"]
}
}
`}
</CodeBlock>
</TabItem>

<TabItem value="wasm" label="WebAssembly">
<CodeBlock language="hcl">
{`
project = "spin-demo"\n
service "http" {
type = "wasm"
command = "target/wasm32-wasi/release/http_server.wasm"
working_dir = "."
description = "HTTP server demo"
depends_on = []
env = { }
port = 3000\n
use "wasm" {
runtime "spin" { } # or "wasmedge", "lunatic", "spiderlightning"
}
}
`}

</CodeBlock>
</TabItem>

<TabItem value="nix" label="Nix">
<CodeBlock language="hcl">
{`
project = "deno-fresh"\n
service "deno" {
type = "exec"
command = "./dev.ts"
working_dir = "."
description = "Deno example app"
depends_on = []
env = {}
port = 8000\n
use "nix" { }
}
`}
</CodeBlock>
</TabItem>

<TabItem value="flox" label="Flox">
<CodeBlock language="hcl">
{`
project = "deno-fresh"\n
service "deno" {
type = "exec"
command = "./dev.ts"
working_dir = "."
description = "Deno example app"
depends_on = []
env = {}
port = 8000\n
use "flox" {
environment = ".#deno-fresh"
}
}
`}
</CodeBlock>
</TabItem>

<TabItem value="devenv" label="Devenv">
<CodeBlock language="hcl">
{`
project = "deno-fresh"\n
service "deno" {
type = "exec"
command = "./dev.ts"
working_dir = "."
description = "Deno example app"
depends_on = []
env = {}
port = 8000\n
use "devenv" { }
}
`}
</CodeBlock>
</TabItem>

<TabItem value="devbox" label="Devbox">
<CodeBlock language="hcl">
{`
project = "deno-fresh"\n
service "deno" {
type = "exec"
command = "./dev.ts"
working_dir = "."
description = "Deno example app"
depends_on = []
env = {}
port = 8000\n
use "devbox" {
packages = ["deno"]
}
}
`}
</CodeBlock>
</TabItem>

</Tabs>
Loading

0 comments on commit 41eebc3

Please sign in to comment.