diff --git a/components/getting-started.tsx b/components/getting-started.tsx index 030c0a8..7225570 100644 --- a/components/getting-started.tsx +++ b/components/getting-started.tsx @@ -3,17 +3,58 @@ import { useState } from 'react' import { Download, Copy, Check } from 'lucide-react' -const installCmd = 'curl -fsSL https://raw.githubusercontent.com/GreyhavenHQ/greywall/main/install.sh | sh' +const methods = [ + { + label: 'Homebrew (macOS)', + cmd: 'brew tap greyhavenhq/tap\nbrew install greywall', + }, + { + label: 'Linux / Mac', + cmd: 'curl -fsSL https://raw.githubusercontent.com/GreyhavenHQ/greywall/main/install.sh | sh', + }, + { + label: 'Go install', + cmd: 'go install github.com/GreyhavenHQ/greywall/cmd/greywall@latest', + }, + { + label: 'Build from source', + cmd: 'git clone https://github.com/GreyhavenHQ/greywall\ncd greywall\nmake setup && make build', + }, +] -export function GettingStarted() { +function CodeBlock({ cmd, label }: { cmd: string; label: string }) { const [copied, setCopied] = useState(false) function copy() { - navigator.clipboard.writeText(installCmd) + navigator.clipboard.writeText(cmd) setCopied(true) setTimeout(() => setCopied(false), 2000) } + return ( +
+
{label}
+
+
+
{cmd}
+
+ +
+
+ ) +} + +export function GettingStarted() { return (
@@ -24,32 +65,16 @@ export function GettingStarted() {

- Install in one command + Install in one command.

Wrap any agent and it runs sandboxed.

-
-
-
- - $ - {installCmd} - -
- -
+
+ {methods.map((m) => ( + + ))}