diff --git a/.travis.yml b/.travis.yml index dd24238..27ca813 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,22 +1,21 @@ -language: node_js +language: rust -node_js: - - lts/* +rust: + - stable + - beta + - nightly sudo: required -services: - - docker +jobs: + allow_failures: + - rust: nightly + fast_finish: true -addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - libstdc++-5-dev +cache: cargo -install: - - npm i -g @elementaryos/houston +before_script: + - sudo apt-get install libgtk-3-dev script: - - houston ci + - cargo test --verbose --workspace diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8745b18 --- /dev/null +++ b/Makefile @@ -0,0 +1,59 @@ +TARGET ?= target/release/mobydick +PREFIX ?= /usr/local +CARGO ?= cargo + +UNINSTALL_FILES = $(PREFIX)/bin/xyz.gelez.mobydick \ + $(PREFIX)/share/appdata/xyz.gelez.mobydick.appdata.xml \ + $(PREFIX)/share/applications/mobydick.desktop \ + $(PREFIX)/share/icons/hicolor/128x128/apps/mobydick.svg \ + $(PREFIX)/share/icons/hicolor/16x16/apps/mobydick.svg \ + $(PREFIX)/share/icons/hicolor/24x24/apps/mobydick.svg \ + $(PREFIX)/share/icons/hicolor/32x32/apps/mobydick.svg \ + $(PREFIX)/share/icons/hicolor/48x48/apps/mobydick.svg \ + $(PREFIX)/share/icons/hicolor/64x64/apps/mobydick.svg + +.phony: all +all: $(TARGET) + +$(TARGET): + $(CARGO) build --release + +.phony: check +chuck: + $(CARGO) check && $(CARGO) test + +.phony: install +install: install-exe install-data + +.phony: install-exe +install-exe: + install -d $(PREFIX)/bin/ && \ + install target/release/mobydick $(PREFIX)/bin/xyz.gelez.mobydick + +.phony: install-data +install-data: install-app-data install-app-desktop install-icons + +.phony: install-app-data +install-app-data: + install -d $(PREFIX)/share/appdata && \ + install -m -x -t $(PREFIX)/share/appdata xyz.gelez.mobydick.appdata.xml + +.phony: install-app-desktop +install-app-desktop: + install -d $(PREFIX)/share/applications && \ + install -m -x -t $(PREFIX)/share/applications mobydick.desktop + +.phony: install-icons +install-icons: + for s in "16" "24" "32" "48" "64" "128"; do \ + install -d $(PREFIX)/share/icons/hicolor/$${s}x$${s}/apps/ && \ + install -m -x icons/$$s.svg $(PREFIX)/share/icons/hicolor/$${s}x$${s}/apps/mobydick.svg ;\ + done + +.phony: uninstall +uninstall: + $(RM) -f $(UNINSTALL_FILES) + +.phony: clean +clean: + $(CARGO) clean \ No newline at end of file diff --git a/build.sh b/build.sh deleted file mode 100755 index 2b71ded..0000000 --- a/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -cargo build --release diff --git a/install.sh b/install.sh deleted file mode 100755 index f26da08..0000000 --- a/install.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env sh -if [ -z "$PREFIX" ]; then - PREFIX=/usr/local -fi - -if [ ! -f target/release/mobydick ]; then - ./build.sh -fi - -sudo install -v -d $PREFIX/bin/ -sudo install -v target/release/mobydick $PREFIX/bin/xyz.gelez.mobydick -sudo install -v -d $PREFIX/share/appdata -sudo install -v -t $PREFIX/share/appdata *.appdata.xml -sudo install -v -d $PREFIX/share/applications -sudo install -v -t $PREFIX/share/applications *.desktop -for s in "16" "24" "32" "48" "64" "128"; do - sudo install -v -d $PREFIX/share/icons/hicolor/${s}x${s}/ - sudo install -v icons/$s.svg $PREFIX/share/icons/hicolor/${s}x${s}/mobydick.svg -done diff --git a/uninstall.sh b/uninstall.sh deleted file mode 100755 index 146cae9..0000000 --- a/uninstall.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -if [ -z "$PREFIX" ]; then - PREFIX=/usr/local -fi - -sudo rm -v $PREFIX/bin/xyz.gelez.mobydick -sudo rm -v $PREFIX/share/appdata/$(ls *.appdata.xml) -sudo rm -v $PREFIX/share/applications/$(ls *.desktop) - -for s in "16" "24" "32" "48" "64" "128"; do - sudo rm -v $PREFIX/share/icons/hicolor/${s}x${s}/mobydick.svg -done