From 240f4b9c4d42223d9fe817914308da358e51a880 Mon Sep 17 00:00:00 2001 From: glenux Date: Tue, 24 Oct 2023 09:22:26 +0000 Subject: [PATCH 1/6] Update README.md --- README.md | 90 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 62 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 3b9f87f..a19244b 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,92 @@ +TECHY: Acknowledging projects that served as inspiration is an excellent way to pay homage to previous work and also provides users with a sense of the project's history and evolution. I'll incorporate this addition. Here's the revised README: + +--- + # GX-Vault Manager -GX-Vault Manager is a Crystal-lang script that helps in managing encrypted vaults using `gocryptfs`. The script offers a user-friendly interface for mounting and unmounting vaults, providing real-time status and handling errors gracefully. +GX-Vault Manager is a Crystal-lang script designed to simplify the management of encrypted vaults using `gocryptfs`. With its user-friendly interface, users can seamlessly mount and unmount vaults, get real-time vault status, and handle errors gracefully. + +## Prerequisites + +- **gocryptfs**: Ensure you have `gocryptfs` installed on your system before using GX-Vault Manager. + +## Installation + +### 1. From Source + +1. Clone or download the source code. +2. Navigate to the source directory. +3. Run `shards install` to fetch dependencies. +4. Build using `shards build`. +5. The compiled binary is located in the `bin` directory. + +### 2. Binary Download + +Alternatively, download a pre-compiled binary version of GX-Vault Manager. ## Configuration -The script uses a YAML configuration file, typically stored at `~/.config/gx-vault.yml`. This file contains details about the vaults, including their names and paths. +The script relies on a YAML configuration file, commonly found at `~/.config/gx-vault.yml`, which details vault names and paths. -## YAML File Format - -The configuration file consists of an array of vaults, with each vault having a name and an encrypted path. Below is the structure of the YAML file: +### YAML File Format ```yaml vaults: - name: "vault1" encrypted_path: "/absolute/path/to/vault1" - - name: "vault2" - encrypted_path: "/absolute/path/to/vault2" - - # Add more vaults as needed + # Add more vaults as required ``` -## Fields Description +## Command Line Options -- **vaults:** The root element containing an array of all defined vaults. +``` +Usage: gx-vault [options] -- **name:** The unique name of the vault. This is used for display and selection purposes. +Global options: + -c, --config FILE Set configuration file + -h, --help Show this help -- **encrypted_path:** The absolute path to the directory where the encrypted data is stored. This path is used by `gocryptfs` for mounting the vault. - -## Example - -Here is a sample configuration with two vaults named "Personal" and "Work": - -```yaml -vaults: - - name: "Personal" - encrypted_path: "/home/user/encrypted/personal" - - - name: "Work" - encrypted_path: "/home/user/encrypted/work" +Commands: + create Create a new vault + delete Remove an existing vault + edit Modify the configuration ``` ## Usage -Once the YAML configuration file is set up, run the script. It will read the configuration, and you can select a vault to mount or unmount using the `fzf` interactive selector. The status of each vault (whether it's open or closed) is displayed next to the vault's name. +Post YAML configuration, run the script. Use `fzf` to select a vault to mount or unmount. ## Dependencies - gocryptfs - fzf - Crystal-lang -- Other dependencies as per the Crystal-lang script +- Additional Crystal-lang script dependencies + +## Contribution Guidelines + +To contribute to GX-Vault Manager: + +1. **Fork the Repository**: Start by forking the GX-Vault Manager repo. +2. **Create a Feature Branch**: Features or fixes should be isolated in their own branches. +3. **Commit Changes**: Commit with descriptive messages. +4. **Run Tests**: Ensure no broken functionality. +5. **Push to Your Fork**: Upload changes to your GitHub fork. +6. **Submit a Pull Request**: Initiate a pull request to the main repo, detailing your changes. +7. **Review**: Await maintainer feedback and respond accordingly. + +By contributing, you agree to our code of conduct and GPL-2 license terms. + +## Authors and Contributors + +- Glenn Y. Rolland - *Initial Work* + +## Inspired By + +- **Qasim**: A user-friendly FUSE manager. +- **Sirikali**: A Qt/C++ GUI front end to cryfs,gocryptfs,securefs,ecryptfs and encfs. ## License -GPL-2 +GNU GPL-2 From ed3555c6892480ea3a193f4e3989fdb90a519420 Mon Sep 17 00:00:00 2001 From: glenux Date: Tue, 24 Oct 2023 09:22:37 +0000 Subject: [PATCH 2/6] Update README.md --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index a19244b..511218a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,3 @@ -TECHY: Acknowledging projects that served as inspiration is an excellent way to pay homage to previous work and also provides users with a sense of the project's history and evolution. I'll incorporate this addition. Here's the revised README: - ---- - # GX-Vault Manager GX-Vault Manager is a Crystal-lang script designed to simplify the management of encrypted vaults using `gocryptfs`. With its user-friendly interface, users can seamlessly mount and unmount vaults, get real-time vault status, and handle errors gracefully. From e061f6601da1814da57c8869c4ceacaf7aa878ad Mon Sep 17 00:00:00 2001 From: glenux Date: Tue, 24 Oct 2023 09:48:54 +0000 Subject: [PATCH 3/6] Update README.md --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 511218a..a8b2f7e 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,16 @@ GX-Vault Manager is a Crystal-lang script designed to simplify the management of encrypted vaults using `gocryptfs`. With its user-friendly interface, users can seamlessly mount and unmount vaults, get real-time vault status, and handle errors gracefully. -## Prerequisites +## Prerequisites & dependencies -- **gocryptfs**: Ensure you have `gocryptfs` installed on your system before using GX-Vault Manager. +Ensure you have the following tools installed on your system before running GX-Vault: + +- **gocryptfs**: +- **fzf**: + +If you want to build from source, you'll also need: + +- **crystal-lang** : ## Installation @@ -53,13 +60,6 @@ Commands: Post YAML configuration, run the script. Use `fzf` to select a vault to mount or unmount. -## Dependencies - -- gocryptfs -- fzf -- Crystal-lang -- Additional Crystal-lang script dependencies - ## Contribution Guidelines To contribute to GX-Vault Manager: From 241ffb40dcb3cd7251eff6628c908655742c2c45 Mon Sep 17 00:00:00 2001 From: glenux Date: Tue, 24 Oct 2023 09:59:31 +0000 Subject: [PATCH 4/6] Update README.md --- README.md | 74 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 42 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index a8b2f7e..d81b209 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,17 @@ -# GX-Vault Manager +# Minimalist Fuse Manager (MFM) -GX-Vault Manager is a Crystal-lang script designed to simplify the management of encrypted vaults using `gocryptfs`. With its user-friendly interface, users can seamlessly mount and unmount vaults, get real-time vault status, and handle errors gracefully. +MFM is a Crystal-lang CLI tailored to simplify the management of encrypted vaults using multiple FUSE filesystems such as sshfs, gocryptfs, httpdirfs, and more. It provides a user-friendly interface, enabling users to smoothly mount and unmount filesystems, obtain filesystem status, and handle errors adeptly. -## Prerequisites & dependencies +## Prerequisites & Dependencies -Ensure you have the following tools installed on your system before running GX-Vault: +Before using MFM, ensure the following tools are installed on your system: - **gocryptfs**: +- **sshfs**: +- **httpdirfs**: - **fzf**: -If you want to build from source, you'll also need: +To build from source, you'll also require: - **crystal-lang** : @@ -19,60 +21,68 @@ If you want to build from source, you'll also need: 1. Clone or download the source code. 2. Navigate to the source directory. -3. Run `shards install` to fetch dependencies. -4. Build using `shards build`. -5. The compiled binary is located in the `bin` directory. +3. Execute `shards install` to obtain dependencies. +4. Compile using `shards build`. +5. Find the compiled binary in the `bin` directory. ### 2. Binary Download -Alternatively, download a pre-compiled binary version of GX-Vault Manager. +You can also fetch a pre-compiled binary version of MFM. ## Configuration -The script relies on a YAML configuration file, commonly found at `~/.config/gx-vault.yml`, which details vault names and paths. +The script harnesses a YAML configuration file, typically located at `~/.config/mfm.yml`, which outlines vault names and paths. ### YAML File Format ```yaml -vaults: - - name: "vault1" - encrypted_path: "/absolute/path/to/vault1" +fsmap: + - type: "gocryptfs" + name: "Work - SSH Keys" + encrypted_path: "/home/user/.ssh/keyring.work" + + - type: "sshfs" + name: "Personal - Media Server" + remote_user: "user" + remote_host: "mediaserver.local" + remote_path: "/mnt/largedisk/music" + remote_port: 22 - # Add more vaults as required + # Incorporate more vaults as necessary ``` ## Command Line Options ``` -Usage: gx-vault [options] +Usage: mfm [options] Global options: - -c, --config FILE Set configuration file - -h, --help Show this help + -c, --config FILE Define configuration file + -h, --help Showcase this help Commands: - create Create a new vault - delete Remove an existing vault - edit Modify the configuration + create Instantiate a new vault + delete Erase an existing vault + edit Adjust the configuration ``` ## Usage -Post YAML configuration, run the script. Use `fzf` to select a vault to mount or unmount. +After setting up the YAML, activate the script. Employ `fzf` to pick a vault to mount or unmount. ## Contribution Guidelines -To contribute to GX-Vault Manager: +To contribute to MFM: -1. **Fork the Repository**: Start by forking the GX-Vault Manager repo. -2. **Create a Feature Branch**: Features or fixes should be isolated in their own branches. -3. **Commit Changes**: Commit with descriptive messages. -4. **Run Tests**: Ensure no broken functionality. -5. **Push to Your Fork**: Upload changes to your GitHub fork. -6. **Submit a Pull Request**: Initiate a pull request to the main repo, detailing your changes. -7. **Review**: Await maintainer feedback and respond accordingly. +1. **Fork the Repository**: Begin by forking the MFM repository. +2. **Create a Feature Branch**: Every feature or fix should reside in distinct branches. +3. **Commit Changes**: Commit with expressive messages. +4. **Run Tests**: Confirm no functional disruptions. +5. **Push to Your Fork**: Transfer changes to your GitHub fork. +6. **Submit a Pull Request**: Commence a pull request to the main repo, elaborating on your changes. +7. **Review**: Anticipate feedback from maintainers and react suitably. -By contributing, you agree to our code of conduct and GPL-2 license terms. +Contributors are bound by our code of conduct and the terms of the GPL-2 license. ## Authors and Contributors @@ -80,8 +90,8 @@ By contributing, you agree to our code of conduct and GPL-2 license terms. ## Inspired By -- **Qasim**: A user-friendly FUSE manager. -- **Sirikali**: A Qt/C++ GUI front end to cryfs,gocryptfs,securefs,ecryptfs and encfs. +- **Qasim**: A user-convenient FUSE manager. +- **Sirikali**: A Qt/C++ GUI front end for various FUSE filesystems like cryfs, gocryptfs, securefs, ecryptfs, and encfs. ## License From 00569e78dceb71014984b3064472799ebe6fb206 Mon Sep 17 00:00:00 2001 From: glenux Date: Tue, 24 Oct 2023 10:01:45 +0000 Subject: [PATCH 5/6] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index d81b209..92b5d16 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,11 @@ The script harnesses a YAML configuration file, typically located at `~/.config/ ### YAML File Format ```yaml +version: "1" + +global: + mountpoint: "/home/user/mnt/{{name}}" + fsmap: - type: "gocryptfs" name: "Work - SSH Keys" From e59f5fd2be7e4de1e1a1a5bd4cf803aefaa9139a Mon Sep 17 00:00:00 2001 From: glenux Date: Tue, 24 Oct 2023 10:06:47 +0000 Subject: [PATCH 6/6] Update README.md --- README.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 92b5d16..fb4d218 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,25 @@ To build from source, you'll also require: You can also fetch a pre-compiled binary version of MFM. + +## Usage + +### Command Line Options + +``` +Usage: mfm [options] + +Global options: + -c, --config FILE Define configuration file + -h, --help Showcase this help + +Commands: + create Instantiate a new vault + delete Erase an existing vault + edit Adjust the configuration +``` + + ## Configuration The script harnesses a YAML configuration file, typically located at `~/.config/mfm.yml`, which outlines vault names and paths. @@ -56,25 +75,6 @@ fsmap: # Incorporate more vaults as necessary ``` -## Command Line Options - -``` -Usage: mfm [options] - -Global options: - -c, --config FILE Define configuration file - -h, --help Showcase this help - -Commands: - create Instantiate a new vault - delete Erase an existing vault - edit Adjust the configuration -``` - -## Usage - -After setting up the YAML, activate the script. Employ `fzf` to pick a vault to mount or unmount. - ## Contribution Guidelines To contribute to MFM: