linux

 1#!/usr/bin/bash -e
 2
 3# if not on Linux, do nothing
 4[[ $(uname) == "Linux" ]] || exit 0
 5
 6# Copy assets to the user's home directory if they don't exist
 7mkdir -p "$HOME/.config/zed"
 8
 9mkdir -p "$HOME/.config/zed/plugins"
10
11mkdir -p "$HOME/.config/zed/themes"
12cp -ruL ./assets/themes/*/*.json "$HOME/.config/zed/themes"
13
14test -f "$HOME/.config/zed/settings.json" ||
15  cp -uL ./assets/settings/initial_user_settings.json "$HOME/.config/zed/settings.json"
16
17test -f "$HOME/.config/zed/keymap.json" ||
18  cp -uL ./assets/keymaps/default.json "$HOME/.config/zed/keymap.json"
19
20# if sudo is not installed, define an empty alias
21maysudo=$(command -v sudo || true)
22export maysudo
23
24# Ubuntu, Debian, etc.
25# https://packages.ubuntu.com/
26apt=$(command -v apt-get || true)
27if [[ -n $apt ]]; then
28  deps=(
29    libasound2-dev
30    libfontconfig-dev
31    vulkan-validationlayers*
32  )
33  $maysudo "$apt" install -y "${deps[@]}"
34  exit 0
35fi
36
37# Fedora, CentOS, RHEL, etc.
38# https://packages.fedoraproject.org/
39dnf=$(command -v dnf || true)
40if [[ -n $dnf ]]; then
41  deps=(
42    alsa-lib-devel
43    fontconfig-devel
44    vulkan-validation-layers
45  )
46  $maysudo "$dnf" install -y "${deps[@]}"
47  exit 0
48fi
49
50# Arch, Manjaro, etc.
51# https://archlinux.org/packages
52pacman=$(command -v pacman || true)
53if [[ -n $pacman ]]; then
54  deps=(
55    alsa-lib
56    fontconfig
57    vulkan-validation-layers
58  )
59  $maysudo "$pacman" -S --noconfirm "${deps[@]}"
60  exit 0
61fi
62
63echo "Unsupported Linux distribution in script/linux"