import CodeCopyButton from "@/components/ui/code-copy-button"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Alert, AlertDescription } from "@/components/ui/alert"; import { Info } from "lucide-react"; import { basePath } from "@/config/siteConfig"; import { Script } from "@/lib/types"; import { getDisplayValueFromType } from "../ScriptInfoBlocks"; const getInstallCommand = (scriptPath = "", isAlpine = false, useGitea = false) => { const githubUrl = `https://raw.githubusercontent.com/community-scripts/${basePath}/main/${scriptPath}`; const giteaUrl = `https://git.community-scripts.org/community-scripts/${basePath}/raw/branch/main/${scriptPath}`; const url = useGitea ? giteaUrl : githubUrl; return `bash -c "$(curl -fsSL ${url})"`; }; export default function InstallCommand({ item }: { item: Script }) { const alpineScript = item.install_methods.find((method) => method.type === "alpine"); const defaultScript = item.install_methods.find((method) => method.type === "default"); const renderInstructions = (isAlpine = false) => ( <>

{isAlpine ? ( <> As an alternative option, you can use Alpine Linux and the {item.name} package to create a {item.name}{" "} {getDisplayValueFromType(item.type)} container with faster creation time and minimal system resource usage. You are also obliged to adhere to updates provided by the package maintainer. ) : item.type === "pve" ? ( <> To use the {item.name} script, run the command below **only** in the Proxmox VE Shell. This script is intended for managing or enhancing the host system directly. ) : item.type === "addon" ? ( <> This script enhances an existing setup. You can use it inside a running LXC container or directly on the Proxmox VE host to extend functionality with {item.name}. ) : ( <> To create a new Proxmox VE {item.name} {getDisplayValueFromType(item.type)}, run the command below in the Proxmox VE Shell. )}

{isAlpine && (

To create a new Proxmox VE Alpine-{item.name} {getDisplayValueFromType(item.type)}, run the command below in the Proxmox VE Shell.

)} ); const renderGiteaInfo = () => ( When to use Gitea: GitHub may have issues including slow connections, delayed updates after bug fixes, no IPv6 support, API rate limits (60/hour). Use our Gitea mirror as a reliable alternative when experiencing these issues. ); const renderScriptTabs = (useGitea = false) => { if (alpineScript) { return ( Default Alpine Linux {renderInstructions()} {getInstallCommand(defaultScript?.script, false, useGitea)} {renderInstructions(true)} {getInstallCommand(alpineScript.script, true, useGitea)} ); } else if (defaultScript?.script) { return ( <> {renderInstructions()} {getInstallCommand(defaultScript.script, false, useGitea)} ); } return null; }; return (
GitHub Gitea {renderScriptTabs(false)} {renderGiteaInfo()} {renderScriptTabs(true)}
); }