summarylogtreecommitdiffstats
path: root/install-noninteractive.sh
blob: 8f7d98ffb133c28ab24405d8c88aef4281bb39c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env bash
set -euo pipefail

# Usage: install-noninteractive.sh "$pkgdir"

if [ "$#" -ne 1 ]; then
    echo "Usage: $0 <pkgdir>" >&2
    exit 1
fi

pkgdir="$1"
srcdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

# Prepare destination directory for Neovim config
mkdir -p "$pkgdir/usr/share/rootvim"

# Copy all configuration files from rootvim-main directory in source
if [ ! -d "$srcdir/rootvim-main" ]; then
    echo "Error: rootvim-main directory not found in $srcdir" >&2
    exit 1
fi

cp -r "$srcdir/rootvim-main/"* "$pkgdir/usr/share/rootvim/" || {
    echo "Error: failed to copy configuration files" >&2
    exit 1
}

# Create Python virtual environment inside package directory
GLOBAL_PY="$pkgdir/usr/share/rootvim/.globalPython"

python3 -m venv "$GLOBAL_PY" || {
    echo "Error: failed to create Python virtual environment" >&2
    exit 1
}

# Upgrade pip and essentials silently
"$GLOBAL_PY/bin/pip" install --upgrade pip setuptools wheel >/dev/null || {
    echo "Error: failed to upgrade pip, setuptools, wheel" >&2
    exit 1
}

# Install pynvim only
"$GLOBAL_PY/bin/pip" install --no-cache-dir pynvim >/dev/null || {
    echo "Error: failed to install pynvim" >&2
    exit 1
}

exit 0