summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml2
-rw-r--r--Justfile26
-rw-r--r--Makefile86
-rw-r--r--Vagrantfile12
4 files changed, 39 insertions, 87 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 61c1b54..2432144 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -14,7 +14,7 @@ readme = "README.md"
categories = ["command-line-utilities"]
keywords = ["ls", "files", "command-line"]
license = "MIT"
-exclude = ["/devtools/*", "/Makefile", "/Vagrantfile", "/screenshots.png"]
+exclude = ["/devtools/*", "/Justfile", "/Vagrantfile", "/screenshots.png"]
[[bin]]
diff --git a/Justfile b/Justfile
new file mode 100644
index 0000000..c07aaea
--- /dev/null
+++ b/Justfile
@@ -0,0 +1,26 @@
+all: build test
+all-release: build-release test-release
+
+
+# compiles the exa binary
+@build:
+ cargo build
+
+# compiles the exa binary (in release mode)
+@build-release:
+ cargo build --release --verbose
+
+
+# runs unit tests
+@test:
+ cargo test --all -- --quiet
+
+# runs unit tests (in release mode)
+@test-release:
+ cargo test --release --all --verbose
+
+
+# prints versions of the necessary build tools
+@versions:
+ rustc --version
+ cargo --version
diff --git a/Makefile b/Makefile
deleted file mode 100644
index b9abb50..0000000
--- a/Makefile
+++ /dev/null
@@ -1,86 +0,0 @@
-DESTDIR =
-PREFIX = /usr/local
-
-override define compdir
-ifndef $(1)
-$(1) := $$(or $$(shell pkg-config --variable=completionsdir $(2) 2>/dev/null),$(3))
-endif
-endef
-
-$(eval $(call compdir,BASHDIR,bash-completion,$(PREFIX)/etc/bash_completion.d))
-$(eval $(call compdir,ZSHDIR,zsh,/usr/share/zsh/vendor_completions.d))
-$(eval $(call compdir,FISHDIR,fish,$(PREFIX)/share/fish/vendor_completions.d))
-
-FEATURES ?= default
-CARGO_OPTS := --no-default-features --features "$(FEATURES)"
-
-all: target/release/exa
-build: target/release/exa
-
-target/release/exa:
- cargo build --release $(CARGO_OPTS)
-
-install: install-exa install-man
-
-install-exa: target/release/exa
- install -m755 -- target/release/exa "$(DESTDIR)$(PREFIX)/bin/"
-
-install-man:
- install -dm755 -- "$(DESTDIR)$(PREFIX)/bin/" "$(DESTDIR)$(PREFIX)/share/man/man1/"
- install -m644 -- contrib/man/exa.1 "$(DESTDIR)$(PREFIX)/share/man/man1/"
-
-install-bash-completions:
- install -m644 -- contrib/completions.bash "$(DESTDIR)$(BASHDIR)/exa"
-
-install-zsh-completions:
- install -m644 -- contrib/completions.zsh "$(DESTDIR)$(ZSHDIR)/_exa"
-
-install-fish-completions:
- install -m644 -- contrib/completions.fish "$(DESTDIR)$(FISHDIR)/exa.fish"
-
-test: target/release/exa
- cargo test --release $(CARGO_OPTS)
-
-check: test
-
-uninstall:
- -rm -f -- "$(DESTDIR)$(PREFIX)/share/man/man1/exa.1"
- -rm -f -- "$(DESTDIR)$(PREFIX)/bin/exa"
- -rm -f -- "$(DESTDIR)$(BASHDIR)/exa"
- -rm -f -- "$(DESTDIR)$(ZSHDIR)/_exa"
- -rm -f -- "$(DESTDIR)$(FISHDIR)/exa.fish"
-
-clean:
- cargo clean
-
-preview-man:
- man contrib/man/exa.1
-
-help:
- @echo 'Available make targets:'
- @echo ' all - build exa (default)'
- @echo ' build - build exa'
- @echo ' clean - run `cargo clean`'
- @echo ' install - build and install exa and manpage'
- @echo ' install-exa - build and install exa'
- @echo ' install-man - install the manpage'
- @echo ' test - run `cargo test`'
- @echo ' uninstall - uninstall fish, manpage, and completions'
- @echo ' preview-man - preview the manpage without installing'
- @echo ' help - print this help'
- @echo
- @echo ' install-bash-completions - install bash completions into $$BASHDIR'
- @echo ' install-zsh-completions - install zsh completions into $$ZSHDIR'
- @echo ' install-fish-completions - install fish completions into $$FISHDIR'
- @echo
- @echo 'Variables:'
- @echo ' DESTDIR - A path that'\''s prepended to installation paths (default: "")'
- @echo ' PREFIX - The installation prefix for everything except zsh completions (default: /usr/local)'
- @echo ' BASHDIR - The directory to install bash completions in (default: $$PREFIX/etc/bash_completion.d)'
- @echo ' ZSHDIR - The directory to install zsh completions in (default: /usr/share/zsh/vendor-completions)'
- @echo ' FISHDIR - The directory to install fish completions in (default: $$PREFIX/share/fish/vendor_completions.d)'
- @echo ' FEATURES - The cargo feature flags to use. Set to an empty string to disable git support'
-
-.PHONY: all build target/release/exa install-exa install-man preview-man \
- install-bash-completions install-zsh-completions install-fish-completions \
- clean uninstall help
diff --git a/Vagrantfile b/Vagrantfile
index 4d27762..9da4b2e 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -59,6 +59,18 @@ Vagrant.configure(2) do |config|
EOF
+ # Install Just, the command runner.
+ config.vm.provision :shell, privileged: true, inline: <<-EOF
+ if hash just &>/dev/null; then
+ echo "just is already installed"
+ else
+ wget "https://github.com/casey/just/releases/download/v0.8.0/just-v0.8.0-x86_64-unknown-linux-musl.tar.gz"
+ tar -xf "just-v0.8.0-x86_64-unknown-linux-musl.tar.gz"
+ cp just /usr/local/bin
+ fi
+ EOF
+
+
# Use a different ‘target’ directory on the VM than on the host.
# By default it just uses the one in /vagrant/target, which can
# cause problems if it has different permissions than the other