v1
This commit is contained in:
Executable
+45
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
command -v podman >/dev/null 2>&1 || { echo "Error: podman not found"; exit 1; }
|
||||
command -v distrobox >/dev/null 2>&1 || { echo "Error: distrobox not found"; exit 1; }
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
CONTAINER="nnm"
|
||||
|
||||
ALA_DATE="$(grep '^ala_date' "$SCRIPT_DIR/manifest.toml" | sed 's/.*"\(.*\)"/\1/')"
|
||||
BASE_DIGEST="$(grep '^base_image_digest' "$SCRIPT_DIR/manifest.toml" | sed 's/.*"\(.*\)"/\1/')"
|
||||
|
||||
TAG_INPUT="$(cat "$SCRIPT_DIR/packages.list" "$SCRIPT_DIR/manifest.toml")"
|
||||
IMAGE_TAG="nnm:$(echo -n "$TAG_INPUT" | sha256sum | cut -c1-16)"
|
||||
IMAGE="localhost/$IMAGE_TAG"
|
||||
|
||||
if ! podman image exists "$IMAGE"; then
|
||||
echo "==> Building image..."
|
||||
podman build \
|
||||
--build-arg "ALA_DATE=$ALA_DATE" \
|
||||
--build-arg "BASE_IMAGE_DIGEST=$BASE_DIGEST" \
|
||||
-t "$IMAGE" -f "$SCRIPT_DIR/Containerfile" "$SCRIPT_DIR"
|
||||
fi
|
||||
|
||||
echo "==> Copying configs to ~/.config/nvimnemodel/..."
|
||||
mkdir -p ~/.config/nvimnemodel
|
||||
cp -r "$SCRIPT_DIR/config/"* ~/.config/nvimnemodel/
|
||||
|
||||
if ! distrobox list 2>/dev/null | grep -qw "$CONTAINER"; then
|
||||
echo "==> Creating distrobox container..."
|
||||
NVIDIA_FLAG=""
|
||||
[[ -d /dev/nvidia0 ]] && NVIDIA_FLAG="--nvidia"
|
||||
distrobox create --name "$CONTAINER" --image "$IMAGE" $NVIDIA_FLAG
|
||||
else
|
||||
echo "==> Container '$CONTAINER' already exists."
|
||||
fi
|
||||
|
||||
echo "==> Installing /usr/local/bin/nnm..."
|
||||
sudo cp "$SCRIPT_DIR/nnm" /usr/local/bin/nnm
|
||||
sudo chmod +x /usr/local/bin/nnm
|
||||
|
||||
echo ""
|
||||
echo "==> nnm installed"
|
||||
echo " Run 'nnm' to open a container terminal"
|
||||
echo " Run 'nnm init' to create .envrc for direnv"
|
||||
Reference in New Issue
Block a user