🟢 🔁 | Simple command-line helper for FUSE filesystems (sshfs, gocryptfs, etc.)
Go to file
2023-10-25 14:07:12 +02:00
doc doc: add asciinema demo recording as lfs 2023-10-25 14:04:28 +02:00
scripts doc: add asciinema demo recording as lfs 2023-10-25 14:04:28 +02:00
src feat: add support for more filesystems 2023-10-25 13:57:47 +02:00
.gitattributes doc: add asciinema demo recording as lfs 2023-10-25 14:04:28 +02:00
.gitignore doc: add asciinema demo recording as lfs 2023-10-25 14:04:28 +02:00
Makefile Initial import 2023-10-20 11:30:14 +02:00
README.md doc: add demo output & fix text of README 2023-10-25 14:07:12 +02:00
shard.lock fix: update generated lockfile 2023-10-25 13:57:17 +02:00
shard.yml fix: rename to mfm and fix close 2023-10-24 12:50:01 +02:00
Vagrantfile doc: add asciinema demo recording as lfs 2023-10-25 14:04:28 +02:00

Minimalist Fuse Manager (MFM)

MFM is a Crystal-lang CLI designed to streamline the management of various FUSE filesystems, such as sshfs, gocryptfs, httpdirfs, and more. Through its user-friendly interface, users can effortlessly mount and unmount filesystems, get real-time filesystem status, and handle errors proficiently.

Prerequisites & Dependencies

Before using MFM, make sure the following tools are installed on your system:

To build from source, you'll also need:

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. Compile using shards build.
  5. The compiled binary will be in the bin directory.

2. Binary Download

Alternatively, download a pre-compiled binary version of MFM.

Usage

Command Line Options

Usage: mfm [options]

Global options:
    -c, --config FILE                Specify configuration file
    -h, --help                       Display this help

Commands:
    create                           Add a new filesystem
    delete                           Remove an existing filesystem
    edit                             Modify the configuration

Demo

Configuration

MFM uses a YAML configuration file, typically found at ~/.config/mfm.yml, to detail the filesystem names, types, and respective configurations.

YAML File Format

version: "1"

global:
  mountpoint: "/home/user/mnt/{{name}}"

filesystems:
  - 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

  - type: httpdirfs
    name: "Debian Repository"
    url: "http://ftp.debian.org/debian/"
  
  # Add more filesystems as needed

Contribution Guidelines

Contributing to MFM:

  1. Fork the Repository: Start by forking MFM's repository.
  2. Create a Feature Branch: Develop each feature or fix in its own branch.
  3. Commit Changes: Provide clear and informative commit messages.
  4. Run Tests: Ensure that all features are operational.
  5. Push to Your Fork: Push your changes to your fork on GitHub.
  6. Submit a Pull Request: Begin a pull request to the main repository and explain your changes.
  7. Review: Await feedback from the maintainers and respond as necessary.

By contributing, you agree to our code of conduct and GPL-2 license terms.

Authors and Contributors

  • Glenn Y. Rolland - Initial Work

Inspired By

License

GNU GPL-2