Zvirt takes snapshots of Libvirt domains using ZFS.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

46 lines
1.5 KiB

PREFIX ?= /usr/local
.PHONY: all test unit-test syntax-test e2e-test lint clean prerequisites install
all: syntax-test unit-test e2e-test lint install
syntax-test:
@echo "Running syntax tests..."
@/bin/bash -nv src/zvirt
@/bin/bash -nv src/lib/core.sh
prerequisites:
@echo "Installing prerequisites..."
@/bin/bash -Eeuo pipefail -c 'if ! bats --version &>/dev/null; then dnf install -y bats; fi'
@/bin/bash -Eeuo pipefail -c 'if ! yq --version &>/dev/null; then dnf install -y yq; fi'
unit-test: prerequisites
@echo "Running unit tests..."
@LANG=C LC_ALL=C BATS_LIB_PATH=$(PWD)/test/test_helper bats test/unit
e2e-test: prerequisites
@echo "Running end-to-end tests..."
@LANG=C LC_ALL=C BATS_LIB_PATH=$(PWD)/test/test_helper bats test/e2e
install:
@echo "Installing zvirt..."
@install -d $(PREFIX)/lib/zvirt
@install -m 755 src/bin/zvirt $(PREFIX)/bin/zvirt
@install -m 644 src/lib/zvirt/core.sh $(PREFIX)/lib/zvirt/core.sh
uninstall:
@echo "Uninstalling zvirt..."
@rm -f $(PREFIX)/bin/zvirt
@rm -rf $(PREFIX)/lib/zvirt
release:
@echo "Creating release tarball..."
@set -Eeuo pipefail; VERSION=$$(git describe --tags --abbrev=0); tar --exclude-vcs --exclude='*.swp' -czf zvirt-$$VERSION.tar.gz --transform "s|^src|zvirt-$$VERSION|" src
install-release:
@echo "Installing zvirt from release tarball..."
@set -Eeuo pipefail; VERSION=$$(git describe --tags --abbrev=0); tar -xvzf zvirt-$$VERSION.tar.gz --strip-components=1 -C $(PREFIX)
clean:
lint:
@echo "Linting..."
@shellcheck src/bin/zvirt src/lib/zvirt/*.sh