|
27 | 27 |
|
28 | 28 | { # this ensures the entire script is downloaded #
|
29 | 29 |
|
30 |
| - set -e # exit on err |
| 30 | + set -euo pipefail # exit on err |
31 | 31 |
|
32 |
| - echo -ne "\033[K ⏳ Setting up bun..." |
| 32 | + gib_version=v0.7.7 |
| 33 | + bun_version=bun-v1.2.2 |
| 34 | + gib_dir=${!GIB_INSTALL:-$HOME/.gib} |
33 | 35 |
|
34 |
| - # ensure bun is installed |
35 |
| - if ! command -v bun >/dev/null; then |
36 |
| - # ensure bun env vars are set |
37 |
| - if [ -z "$BUN_INSTALL" ]; then |
38 |
| - export BUN_INSTALL="$HOME/.bun" |
39 |
| - fi |
| 36 | + while getopts :v: arg; do |
| 37 | + case $arg in |
| 38 | + v) gib_version=$OPTARG ;; |
| 39 | + esac |
| 40 | + done |
40 | 41 |
|
41 |
| - curl -fsSL https://bun.sh/install | bash &>/dev/null |
| 42 | + echo -ne "\033[K ⏳ Preparing to launch gib..." |
42 | 43 |
|
43 |
| - case ":$PATH:" in |
44 |
| - *":$BUN_INSTALL:"*) ;; |
45 |
| - *) export PATH="$BUN_INSTALL/bin:$PATH" ;; |
46 |
| - esac |
| 44 | + bun_dir=${gib_dir}/env/bun |
| 45 | + bun=${bun_dir}/bin/bun |
| 46 | + |
| 47 | + # ensure bun is installed |
| 48 | + if ! command -v $bun >/dev/null; then |
| 49 | + ( |
| 50 | + export BUN_INSTALL=$bun_dir |
| 51 | + export SHELL="" |
| 52 | + curl -fsSL https://bun.sh/install | bash -s $bun_version &>/dev/null |
| 53 | + ) |
47 | 54 |
|
48 | 55 | # check for bun command and let user know if not found
|
49 |
| - if ! command -v bun >/dev/null; then |
| 56 | + if ! command -v $bun >/dev/null; then |
50 | 57 | echo -e "\r\033[K ❌ Installing bun failed"
|
51 |
| - echo "Bun not found in PATH!" |
52 |
| - echo "Please reload your terminal and run this script again." |
53 | 58 | exit 1
|
54 | 59 | fi
|
55 | 60 | fi
|
56 | 61 |
|
57 |
| - echo -ne "\r\033[K ⏳ Preparing to launch gib..." |
58 |
| - |
59 |
| - if ! bun pm cache rm -g &>/dev/null; then |
60 |
| - bun i noop -g &>/dev/null |
61 |
| - bun rm noop -g &>/dev/null |
62 |
| - bun pm cache rm -g &>/dev/null |
63 |
| - fi |
64 |
| - |
65 | 62 | echo -ne "\r\033[2K"
|
66 | 63 |
|
67 |
| - package=toebeann/gib |
68 |
| - if [ -n "${GIB_VERSION}" ]; then |
69 |
| - package=${package}\#${GIB_VERSION} |
70 |
| - fi |
71 |
| - |
72 |
| - bun x --bun ${package} |
| 64 | + $bun x --bun github:toebeann/gib#${!GIB_VERSION:-$gib_version} -- $@ |
73 | 65 | } # this ensures the entire script is downloaded #
|
0 commit comments