From 28e73b6acd9eb77975841c7e44c9a996a65aeffb Mon Sep 17 00:00:00 2001 From: Alberto Coscia Date: Sun, 22 Jul 2018 17:31:54 +0200 Subject: [PATCH] v0.1.0 release * Add release script * Add CHANGELOG.md * Amend installation instructions to state we use Rust 1.27 --- .gitignore | 2 ++ CHANGELOG.md | 27 ++++++++++++++++++ README.md | 11 ++++---- tools/release.sh | 73 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 108 insertions(+), 5 deletions(-) create mode 100644 CHANGELOG.md create mode 100755 tools/release.sh diff --git a/.gitignore b/.gitignore index b1b06c8..d83e650 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ /target **/*.rs.bk /tests/tmp +build +*.vault diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..7cfd80b --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,27 @@ +# Sigil +Only user facing changes should be included. + +## Release series +* **v0.x**: Sigil Alpha + +## v0.1.0 +*Released on 2018/07/22* + +* Adopt a GPG-encrypted TOML file as the vault format + * By default its location is defined by the `SIGIL_VAULT` environment variable + * By default it is encripted using the `SIGIL_GPGKEY` environment variable + * Use `sigil touch` to create an empty vault + * Use `sigil ls` to list all secrets in a vault + * Use `sigil completion` to generate a completion script +* Support for password storing + * Allow to annotate passwords with related usernames, emails and homepage URLs + * Use `sigil password add` to add a password + * Use `sigil password get` to retrieve a password + * Use `sigil password rm` ro remove a password +* Support for OTP generator storing + * Support TOTP and HOTP for token generation + * Support SHA1, SHA256 and SHA512 as HMAC algorithms for token generation + * Use `sigil otp add` to add a generator + * Use `sigil otp token` to generate a token + * Use `sigil otp rm` to remove a generator + * Use `sigil otp import` to import generators from `otpauth://` URLs diff --git a/README.md b/README.md index 3c2c350..a1f8ddc 100644 --- a/README.md +++ b/README.md @@ -93,12 +93,13 @@ If you want to be extra sure, you may also combine your vault with an external, FIDO2-like authenticator holding your PGP key. ## Getting started -* Sigil is currently developed using Rust 1.28, you can use [rustup.rs][rustup] -to install it alongside with Cargo + +Sigil is currently developed using Rust 1.27, you can use [rustup.rs][rustup] +to install it alongside with Cargo. Sigil also relies on GPGME as provided by +`libgpgme11-dev`, which is available on many Linux distros. + * `cargo install --git https://github.com/ALCC01/sigil` -* Make sure your `PATH` contains `$HOME/.cargo/bin` -* Sigil also relies on GPGME as provided by `libgpgme11-dev`, which is available -on many Linux distros +* Make sure your `PATH` contains `$HOME/.cargo/bin` * In your `.bashrc` file (or its equivalent for your shell of choice) * Add `export SIGIL_VAULT="$HOME/.sigil.vault"` or whatever path you want your vault to be written to diff --git a/tools/release.sh b/tools/release.sh new file mode 100755 index 0000000..173fb25 --- /dev/null +++ b/tools/release.sh @@ -0,0 +1,73 @@ +#!/bin/bash +# Copyright (C) 2018 Alberto Coscia +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +TARGET_DIR="./target" +BUILD_DIR="./build" +BIN_NAME="sigil" +RELEASE_NAME="$BIN_NAME-$1" +RELEASE_DIR="$BUILD_DIR/$RELEASE_NAME" + +INCLUDE=( + "LICENSE" + "CHANGELOG.md" + "README.md" +) + +init() { + echo "" + echo "Initializing..." + rm -r "$BUILD_DIR" + mkdir -p "$TARGET_DIR" + mkdir -p "$RELEASE_DIR" +} + +build() { + echo "Building..." + cargo +stable build --release + strip --strip-debug "$TARGET_DIR/release/$BIN_NAME" + cp -v "$TARGET_DIR/release/$BIN_NAME" "$RELEASE_DIR" +} + +enrich() { + echo "" + echo "Copying additional files..." + for src in "${INCLUDE[@]}"; do + cp -v "./$src" "$RELEASE_DIR" + done +} + +sizes() { + echo "" + echo "Uncompressed build size:" + ls -1sh "$RELEASE_DIR" +} + +package() { + echo "" + echo "Packaging, compressing and signing..." + cd $BUILD_DIR + tar -czvf "$RELEASE_NAME.tar.gz" "$RELEASE_NAME/" + gpg --sign --detach --armor "$RELEASE_NAME.tar.gz" + gpg --verify "$RELEASE_NAME.tar.gz.asc" "$RELEASE_NAME.tar.gz" + echo "" + echo "Compressed build size:" + ls -1sh "$RELEASE_NAME.tar.gz" + cd .. +} + +cleanup() { + echo "" + echo "Cleaning up" + rm -r "$RELEASE_DIR" +} + +init +build +enrich +sizes +package +cleanup \ No newline at end of file