52 lines
931 B
Bash
Executable File
52 lines
931 B
Bash
Executable File
#!/bin/bash
|
|
|
|
set -xeu
|
|
|
|
DEBIAN_FRONTEND=noninteractive
|
|
TARGET="$PWD"
|
|
|
|
export DEBIAN_FRONTEND
|
|
|
|
dependencies() {
|
|
# Update system and install basic tools
|
|
apt-get update -yq && apt-get install -yq aptitude curl git wget
|
|
# Install dependencies for Eza
|
|
aptitude --quiet --assume-yes install gcc libgit2-dev
|
|
}
|
|
|
|
install_rust() {
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-host x86_64-unknown-linux-gnu --default-toolchain nightly
|
|
. ~/.cargo/env
|
|
}
|
|
|
|
get_eza_sources() {
|
|
# Clone Eza repo
|
|
cd "$(mktemp -d)"
|
|
git clone https://github.com/eza-community/eza
|
|
cd eza
|
|
}
|
|
|
|
build_eza() {
|
|
# Build
|
|
cargo build --release
|
|
|
|
# Test
|
|
cargo test
|
|
}
|
|
|
|
copy() {
|
|
TARGET_UID="$(stat --printf %u "$TARGET")"
|
|
TARGET_GID="$(stat --printf %g "$TARGET")"
|
|
install -o "$TARGET_UID" -g "$TARGET_GID" -t "$TARGET/target" target/release/eza
|
|
}
|
|
|
|
main() {
|
|
dependencies
|
|
install_rust
|
|
get_eza_sources
|
|
build_eza
|
|
copy
|
|
}
|
|
|
|
main
|