diff --git a/public/neodlp_macos_installer.sh b/public/neodlp_macos_installer.sh index 8f4e0d1..9b5b293 100644 --- a/public/neodlp_macos_installer.sh +++ b/public/neodlp_macos_installer.sh @@ -5,8 +5,16 @@ OWNER="neosubhamoy" REPO="neodlp" DOWNLOAD_DIR=~/Downloads -# Detect system architecture +# Check if NeoDLP is already installed +echo "### === NeoDLP MacOS Curl-Bash Installer === ###" echo "๐Ÿ”ƒ Checking system requirements..." +if [ -d "/Applications/NeoDLP.app" ]; then + echo "โ— NeoDLP is already installed at /Applications/NeoDLP.app" + echo "๐Ÿ›‘ Installation aborted." + exit 0 +fi + +# Detect system architecture ARCH=$(uname -m) if [[ "$ARCH" == "arm64" ]]; then @@ -17,6 +25,7 @@ elif [[ "$ARCH" == "x86_64" ]]; then echo "๐Ÿง  Detected Intel-based Mac (x86_64)" else echo "โŒ Unsupported architecture: $ARCH" + echo "๐Ÿ›‘ Installation aborted." exit 1 fi @@ -27,7 +36,7 @@ TAG=$(curl -s https://api.github.com/repos/$OWNER/$REPO/releases/latest | grep ' URL="https://github.com/$OWNER/$REPO/releases/download/$TAG/$ASSET_NAME" # Download the release asset -echo "๐Ÿ“ฅ Downloading $ASSET_NAME from $TAG..." +echo "โฌ‡๏ธ Downloading $ASSET_NAME from tag $TAG..." curl -L -o "$DOWNLOAD_DIR/$ASSET_NAME" "$URL" # Extract the archive @@ -39,4 +48,8 @@ APP_NAME="NeoDLP.app" echo "๐Ÿ“ฆ Moving $APP_NAME to /Applications directory (sudo required)" sudo mv "$APP_NAME" /Applications/ +# Clean up the downloaded archive +echo "๐Ÿงน Cleaning up..." +rm "$DOWNLOAD_DIR/$ASSET_NAME" + echo "โœ… Installed NeoDLP successfully!" \ No newline at end of file diff --git a/src/components/AllDowloadsSection.tsx b/src/components/AllDowloadsSection.tsx index 2328cfa..df47c10 100644 --- a/src/components/AllDowloadsSection.tsx +++ b/src/components/AllDowloadsSection.tsx @@ -1,7 +1,8 @@ import { type LatestRelease } from "@/types/release"; import { SlidingButton } from "@/components/ui/sliding-button"; -import { Download } from "lucide-react"; +import { Download, TriangleAlert } from "lucide-react"; import { CommandSnippet } from "@/components/ui/command-snippet"; +import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; export default function AllDownloadsSection({ release }: { release: LatestRelease }) { return ( @@ -12,7 +13,7 @@ export default function AllDownloadsSection({ release }: { release: LatestReleas

Latest version (v{release.version})

Released at: {new Date(release.pub_date).toLocaleString()} - โœจ Read Changelog

-
+
Download for MacOS - (ARM64) DMG Installer + โš ๏ธ (ARM64) DMG Installer Download for MacOS - (ARM64) APP Bundle + โš ๏ธ (ARM64) APP Bundle (x64) AUR Snapshot
+
+ + + Experimental Binary Downloads! + + MacOS ARM64 binary downloads are experimental and may not open on Apple Silicon Macs if downloaded from browser (You will get 'Damaged File' error) it's because the binaries are not signed (signing MacOS binaries requires 99$/year Apple Developer Account subscription, which I can't afford RN!) and Apple Silicon Macs don't allow unsigned apps (downloaded from browser) to be installed on the system. If you want to use NeoDLP on your Apple Silicon Macs, you can simply use the command line Curl-Bash Installer (Recommended) given below -OR- compile it from source + + +

Install via Command Line

@@ -195,6 +205,9 @@ export default function AllDownloadsSection({ release }: { release: LatestReleas winget install neodlp + + curl -sSL https://neodlp.neosubhamoy.com/neodlp_macos_installer.sh | bash + yay -S neodlp diff --git a/src/components/ui/alert.tsx b/src/components/ui/alert.tsx new file mode 100644 index 0000000..1421354 --- /dev/null +++ b/src/components/ui/alert.tsx @@ -0,0 +1,66 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const alertVariants = cva( + "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current", + { + variants: { + variant: { + default: "bg-card text-card-foreground", + destructive: + "text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +function Alert({ + className, + variant, + ...props +}: React.ComponentProps<"div"> & VariantProps) { + return ( +
+ ) +} + +function AlertTitle({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function AlertDescription({ + className, + ...props +}: React.ComponentProps<"div">) { + return ( +
+ ) +} + +export { Alert, AlertTitle, AlertDescription } diff --git a/src/components/ui/command-snippet.tsx b/src/components/ui/command-snippet.tsx index d46734e..6a0e9a9 100644 --- a/src/components/ui/command-snippet.tsx +++ b/src/components/ui/command-snippet.tsx @@ -22,7 +22,7 @@ export const CommandSnippet = ({ } return ( -
+
@@ -33,7 +33,7 @@ export const CommandSnippet = ({ Copy
- +

{children}

diff --git a/src/components/ui/container-scroll-animation.tsx b/src/components/ui/container-scroll-animation.tsx index e0ddb6a..0b0626b 100644 --- a/src/components/ui/container-scroll-animation.tsx +++ b/src/components/ui/container-scroll-animation.tsx @@ -159,7 +159,7 @@ export const ContainerScroll = ({ Download for MacOS - (ARM64) DMG Installer + โš ๏ธ (ARM64) DMG Installer )}