diff --git a/.devcontainer/Dockerfile.buster b/.devcontainer/Dockerfile.buster
index 3f0fce9..b281c20 100644
--- a/.devcontainer/Dockerfile.buster
+++ b/.devcontainer/Dockerfile.buster
@@ -20,7 +20,9 @@ ARG USERNAME=vscode
ENV DEBIAN_FRONTEND=noninteractive \
RUSTUP_HOME=/usr/local/rustup \
CARGO_HOME=/usr/local/cargo \
- PATH=/usr/local/cargo/bin:$PATH:/home/vscode/.cargo/bin
+ PATH=/usr/local/cargo/bin:$PATH:/home/vscode/.cargo/bin \
+ EDITOR='code -w' \
+ VISUAL='code -w'
RUN apt-get update && \
apt install -y cmake git libtool valgrind docker-compose lldb sudo zsh wget && \
diff --git a/Makefile.toml b/Makefile.toml
index 510a34f..7f16460 100644
--- a/Makefile.toml
+++ b/Makefile.toml
@@ -7,15 +7,46 @@ skip_core_tasks = true
[tasks.default]
dependencies = ["build"]
+[tasks.check]
+workspace = false
+command = "docker-compose"
+args = ["run", "build", "check", "${@}"]
+
[tasks.build]
workspace = false
command = "docker-compose"
-args = ["run", "build", "${@}"]
+args = ["run", "build", "build", "${@}"]
[tasks.fmt]
command = "cargo"
args = ["fmt"]
+[tasks.test]
+workspace = false
+command = "docker-compose"
+args = ["run", "build", "test", "${@}"]
+
+#-----------------------
+#
+# Git tasks
+#
+#-----------------------
+
+[tasks.git-pre-commit]
+workspace = false
+dependencies = ["build", "test", "fmt"]
+
+[tasks.git-add]
+workspace = false
+command = "git"
+args = ["add", "."]
+
+[tasks.git-commit]
+workspace = false
+command = "convco"
+args = ["commit", "-i"]
+dependencies = ["git-pre-commit", "git-add"]
+
#---------------------------------
#
# Project setup tasks
@@ -24,13 +55,13 @@ args = ["fmt"]
[tasks.setup]
workspace = false
-dependencies = ["pull-rust-image", "update-submodules"]
+dependencies = ["setup-pull-rust-image", "setup-update-submodules"]
-[tasks.pull-rust-image]
+[tasks.setup-pull-rust-image]
workspace = false
script = "docker pull rust:1-alpine"
-[tasks.update-submodules]
+[tasks.setup-update-submodules]
workspace = false
script = "git submodule update --init"
@@ -42,8 +73,8 @@ script = "git submodule update --init"
[tasks.ci]
workspace = false
-dependencies = ["setup", "build"]
+dependencies = ["setup", "build", "ci-convco-check"]
-[tasks.convco-check]
+[tasks.ci-convco-check]
command = "convco"
args = ["check"]
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index 596dbce..2b8f258 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -8,7 +8,7 @@ services:
- ${CARGO_HOME}/registry:${CARGO_HOME}/registry
- ${PWD}:/sparse
working_dir: /sparse
- entrypoint: "/usr/local/cargo/bin/cargo build"
+ entrypoint: /usr/local/cargo/bin/cargo
tty: true
examples_bindshell_target:
diff --git a/examples/bind-shell/key-generator/build.rs b/examples/bind-shell/key-generator/build.rs
index 89a56de..f43c8c8 100644
--- a/examples/bind-shell/key-generator/build.rs
+++ b/examples/bind-shell/key-generator/build.rs
@@ -1,15 +1,15 @@
// Copyright (C) 2023 Andrew Rioux
-//
+//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
-//
+//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
-//
+//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
@@ -28,4 +28,4 @@ fn main() -> io::Result<()> {
fs::write(path.join("pubkey"), keypair.public)?;
Ok(())
-}
\ No newline at end of file
+}
diff --git a/examples/bind-shell/key-generator/src/lib.rs b/examples/bind-shell/key-generator/src/lib.rs
index 70e9d59..dfd2f94 100644
--- a/examples/bind-shell/key-generator/src/lib.rs
+++ b/examples/bind-shell/key-generator/src/lib.rs
@@ -1,17 +1,17 @@
// Copyright (C) 2023 Andrew Rioux
-//
+//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
-//
+//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
-//
+//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
pub const PUBKEY: &[u8] = include_bytes!(concat!(env!("OUT_DIR"), "/pubkey"));
-pub const PRIVKEY: &[u8] = include_bytes!(concat!(env!("OUT_DIR"), "/pubkey"));
\ No newline at end of file
+pub const PRIVKEY: &[u8] = include_bytes!(concat!(env!("OUT_DIR"), "/pubkey"));