change folder name

This commit is contained in:
Bram Suurd
2025-06-27 19:34:11 +00:00
parent 622e081583
commit cba26404b9
10 changed files with 71 additions and 36 deletions

View File

@ -13,15 +13,15 @@ import { basePath } from "@/config/site-config";
import { extractDate } from "@/lib/time"; import { extractDate } from "@/lib/time";
import { getDisplayValueFromType } from "./script-info-blocks"; import { getDisplayValueFromType } from "./script-info-blocks";
import DefaultPassword from "./ScriptItems/default-password"; import DefaultPassword from "./script-items/default-password";
import InstallCommand from "./ScriptItems/install-command"; import InstallCommand from "./script-items/install-command";
import { ResourceDisplay } from "./resource-display"; import { ResourceDisplay } from "./resource-display";
import Description from "./ScriptItems/description"; import Description from "./script-items/description";
import ConfigFile from "./ScriptItems/config-file"; import ConfigFile from "./script-items/config-file";
import InterFaces from "./ScriptItems/interfaces"; import InterFaces from "./script-items/interfaces";
import Tooltips from "./ScriptItems/tool-tips"; import Tooltips from "./script-items/tool-tips";
import Buttons from "./ScriptItems/buttons"; import Buttons from "./script-items/buttons";
import Alerts from "./ScriptItems/alerts"; import Alerts from "./script-items/alerts";
type ScriptItemProps = { type ScriptItemProps = {
item: Script; item: Script;

View File

@ -1,19 +1,23 @@
import { Info } from "lucide-react";
import type { Script } from "@/lib/types"; import type { Script } from "@/lib/types";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { Alert, AlertDescription } from "@/components/ui/alert";
import CodeCopyButton from "@/components/ui/code-copy-button"; import CodeCopyButton from "@/components/ui/code-copy-button";
import { basePath } from "@/config/site-config"; import { basePath } from "@/config/site-config";
import { getDisplayValueFromType } from "../script-info-blocks"; import { getDisplayValueFromType } from "../script-info-blocks";
function getInstallCommand(scriptPath = "", isAlpine = false) { function getInstallCommand(scriptPath = "", isAlpine = false, useGitea = false) {
const url = `https://raw.githubusercontent.com/community-scripts/${basePath}/main/${scriptPath}`; 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 isAlpine ? `bash -c "$(curl -fsSL ${url})"` : `bash -c "$(curl -fsSL ${url})"`; return isAlpine ? `bash -c "$(curl -fsSL ${url})"` : `bash -c "$(curl -fsSL ${url})"`;
} }
export default function InstallCommand({ item }: { item: Script }) { export default function InstallCommand({ item }: { item: Script }) {
const alpineScript = item.install_methods.find(method => method.type === "alpine"); const alpineScript = item.install_methods.find(method => method.type === "alpine");
const defaultScript = item.install_methods.find(method => method.type === "default"); const defaultScript = item.install_methods.find(method => method.type === "default");
const renderInstructions = (isAlpine = false) => ( const renderInstructions = (isAlpine = false) => (
@ -82,33 +86,64 @@ export default function InstallCommand({ item }: { item: Script }) {
</> </>
); );
const renderGiteaInfo = () => (
<Alert className="mt-3 mb-3">
<Info className="h-4 w-4" />
<AlertDescription className="text-sm">
<strong>When to use Gitea:</strong>
{" "}
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.
</AlertDescription>
</Alert>
);
const renderScriptTabs = (useGitea = false) => {
if (alpineScript) {
return (
<Tabs defaultValue="default" className="mt-2 w-full max-w-4xl">
<TabsList>
<TabsTrigger value="default">Default</TabsTrigger>
<TabsTrigger value="alpine">Alpine Linux</TabsTrigger>
</TabsList>
<TabsContent value="default">
{renderInstructions()}
<CodeCopyButton>{getInstallCommand(defaultScript?.script, false, useGitea)}</CodeCopyButton>
</TabsContent>
<TabsContent value="alpine">
{renderInstructions(true)}
<CodeCopyButton>{getInstallCommand(alpineScript.script, true, useGitea)}</CodeCopyButton>
</TabsContent>
</Tabs>
);
}
else if (defaultScript?.script) {
return (
<>
{renderInstructions()}
<CodeCopyButton>{getInstallCommand(defaultScript.script, false, useGitea)}</CodeCopyButton>
</>
);
}
return null;
};
return ( return (
<div className="p-4"> <div className="p-4">
{alpineScript <Tabs defaultValue="github" className="w-full max-w-4xl">
? ( <TabsList>
<Tabs defaultValue="default" className="mt-2 w-full max-w-4xl"> <TabsTrigger value="github">GitHub</TabsTrigger>
<TabsList> <TabsTrigger value="gitea">Gitea</TabsTrigger>
<TabsTrigger value="default">Default</TabsTrigger> </TabsList>
<TabsTrigger value="alpine">Alpine Linux</TabsTrigger> <TabsContent value="github">
</TabsList> {renderScriptTabs(false)}
<TabsContent value="default"> </TabsContent>
{renderInstructions()} <TabsContent value="gitea">
<CodeCopyButton>{getInstallCommand(defaultScript?.script)}</CodeCopyButton> {renderGiteaInfo()}
</TabsContent> {renderScriptTabs(true)}
<TabsContent value="alpine"> </TabsContent>
{renderInstructions(true)} </Tabs>
<CodeCopyButton>{getInstallCommand(alpineScript.script, true)}</CodeCopyButton>
</TabsContent>
</Tabs>
)
: defaultScript?.script
? (
<>
{renderInstructions()}
<CodeCopyButton>{getInstallCommand(defaultScript.script)}</CodeCopyButton>
</>
)
: null}
</div> </div>
); );
} }