# This is the recipe.sh script. It is executed by BPM in a temporary directory when compiling a source package # BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE # BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT # The prepare function is executed in the root of the temp directory # This function is used for putting downloaded files to the correct location or applying patches prepare() { cd "$BPM_SOURCE" # Fetch dependencies cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')" # Generate desktop file export DO_STARTUP_NOTIFY="true" export APP_ICON="zed" export APP_NAME="Zed" export APP_CLI="zed" export APP_ID="dev.zed.Zed" export APP_ARGS="%U" envsubst < "crates/zed/resources/zed.desktop.in" > dev.zed.Zed.desktop # Generate licenses ./script/generate-licenses } # The build function is executed in the source directory # This function is used to compile the source code build() { export RUSTFLAGS="${RUSTFLAGS} --remap-path-prefix $PWD=/" export ZED_UPDATE_EXPLANATION='Updates are handled by bpm' export RELEASE_VERSION="$BPM_PKG_VERSION" cargo build --release --frozen --package zed --package cli } # The package function is executed in the source directory # This function is used to move the compiled files into the output directory package() { install -Dm755 target/release/cli "$BPM_OUTPUT"/usr/bin/zed install -Dm755 target/release/zed "$BPM_OUTPUT"/usr/libexec/zed-editor # Install desktop file install -Dm644 dev.zed.Zed.desktop "$BPM_OUTPUT"/usr/share/applications/dev.zed.Zed.desktop # Install desktop icon install -Dm644 crates/zed/resources/app-icon.png "$BPM_OUTPUT"/usr/share/icons/zed.png # Install package license install -Dm644 "$BPM_SOURCE"/assets/licenses.md "$BPM_OUTPUT"/usr/share/licenses/zed/licenses.md }