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"