mirror of
https://github.com/zed-industries/zed.git
synced 2024-12-25 08:55:10 +03:00
parent
44a58647e4
commit
ef84ce76e3
3
.github/workflows/ci.yml
vendored
3
.github/workflows/ci.yml
vendored
@ -305,9 +305,6 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Generate license file
|
||||
run: script/generate-licenses
|
||||
|
||||
- name: Create and upload Linux .tar.gz bundle
|
||||
run: script/bundle-linux
|
||||
|
||||
|
@ -40,32 +40,42 @@ docker compose up -d
|
||||
|
||||
Once you have the dependencies installed, you can build Zed using [Cargo](https://doc.rust-lang.org/cargo/).
|
||||
|
||||
For a debug build:
|
||||
For a debug build of the editor:
|
||||
|
||||
```
|
||||
cargo run
|
||||
```
|
||||
|
||||
For a release build:
|
||||
|
||||
```
|
||||
cargo run --release
|
||||
```
|
||||
|
||||
For a release package:
|
||||
|
||||
```
|
||||
cargo build --release
|
||||
```
|
||||
|
||||
the binary can be found in `target/release` folder.
|
||||
|
||||
And to run the tests:
|
||||
|
||||
```
|
||||
cargo test --workspace
|
||||
```
|
||||
|
||||
In release mode, the primary user interface is the `cli` crate. You can run it in development with:
|
||||
|
||||
```
|
||||
cargo run -p cli
|
||||
```
|
||||
|
||||
## Installing a development build
|
||||
|
||||
You can install a local build on your machine with:
|
||||
|
||||
```
|
||||
./script/install-linux
|
||||
```
|
||||
|
||||
This will build zed and the cli in release mode and make them available at `~/.local/bin/zed`, installing .desktop files to `~/.local/share`.
|
||||
|
||||
If you'd like to install things to a different prefix you can use:
|
||||
|
||||
```
|
||||
./script/install-linux /usr/
|
||||
```
|
||||
|
||||
In this case the binary will be `/usr/bin/zed` and the `.desktop` file in `/usr/share`. The script should prompt for sudo as required so that the rust build runs as the current user.
|
||||
|
||||
## Wayland & X11
|
||||
|
||||
Zed has basic support for both modes. The mode is selected at runtime. If you're on wayland and want to run in X11 mode, you can set `WAYLAND_DISPLAY='' cargo run` to do so.
|
||||
|
@ -95,14 +95,12 @@ mkdir -p "${zed_dir}/share/applications"
|
||||
envsubst < "crates/zed/resources/zed.desktop.in" > "${zed_dir}/share/applications/zed$suffix.desktop"
|
||||
|
||||
# Licenses
|
||||
script/generate-licenses
|
||||
cp "assets/licenses.md" "${zed_dir}/licenses.md"
|
||||
|
||||
# Create archive out of everything that's in the temp directory
|
||||
target="linux-$(uname -m)"
|
||||
|
||||
if [[ "$channel" == "nightly" ]]; then
|
||||
archive="zed-${target}.tar.gz"
|
||||
elif [[ "$channel" == "dev" ]]; then
|
||||
if [[ "$channel" == "dev" ]]; then
|
||||
archive="zed-${commit}-${target}.tar.gz"
|
||||
else
|
||||
archive="zed-${target}.tar.gz"
|
||||
|
26
script/install-linux
Executable file
26
script/install-linux
Executable file
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euxo pipefail
|
||||
|
||||
if [[ $# -gt 0 ]]; then
|
||||
echo "
|
||||
Usage: ${0##*/}
|
||||
Builds and installs zed onto your system into ~/.local, making it available as ~/.local/bin/zed.
|
||||
|
||||
Before running this you should ensure you have all the build dependencies installed with `./script/linux`.
|
||||
"
|
||||
exit 1
|
||||
fi
|
||||
export ZED_CHANNEL=$(<crates/zed/RELEASE_CHANNEL)
|
||||
export ZED_UPDATE_EXPLANATION="You need to fetch and rebuild zed in $(pwd)"
|
||||
script/bundle-linux
|
||||
|
||||
target="linux-$(uname -m)"
|
||||
commit=$(git rev-parse HEAD | cut -c 1-7)
|
||||
if [[ "$ZED_CHANNEL" == "dev" ]]; then
|
||||
archive="zed-${commit}-${target}.tar.gz"
|
||||
else
|
||||
archive="zed-${target}.tar.gz"
|
||||
fi
|
||||
export ZED_BUNDLE_PATH="target/release/${archive}"
|
||||
script/install.sh
|
@ -43,8 +43,12 @@ main() {
|
||||
}
|
||||
|
||||
linux() {
|
||||
echo "Downloading Zed"
|
||||
curl "https://zed.dev/api/releases/$channel/latest/zed-linux-$arch.tar.gz" > "$temp/zed-linux-$arch.tar.gz"
|
||||
if [[ -n "${ZED_BUNDLE_PATH:-}" ]]; then
|
||||
cp "$ZED_BUNDLE_PATH" "$temp/zed-linux-$arch.tar.gz"
|
||||
else
|
||||
echo "Downloading Zed"
|
||||
curl "https://zed.dev/api/releases/$channel/latest/zed-linux-$arch.tar.gz" > "$temp/zed-linux-$arch.tar.gz"
|
||||
fi
|
||||
|
||||
suffix=""
|
||||
if [[ $channel != "stable" ]]; then
|
||||
@ -91,7 +95,7 @@ linux() {
|
||||
desktop_file_path="$HOME/.local/share/applications/${appid}.desktop"
|
||||
cp ~/.local/zed$suffix.app/share/applications/zed$suffix.desktop "${desktop_file_path}"
|
||||
sed -i "s|Icon=zed|Icon=$HOME/.local/zed$suffix.app/share/icons/hicolor/512x512/apps/zed.png|g" "${desktop_file_path}"
|
||||
sed -i "s|Exec=zed|Exec=$HOME/.local/zed$suffix.app/bin/zed|g" "${desktop_file_path}"
|
||||
sed -i "s|Exec=zed|Exec=$HOME/.local/zed$suffix.app/libexec/zed-editor|g" "${desktop_file_path}"
|
||||
|
||||
if which "zed" >/dev/null 2>&1; then
|
||||
echo "Zed has been installed. Run with 'zed'"
|
||||
|
Loading…
Reference in New Issue
Block a user