Skip to content

fluendo/flumes-fuse

Repository files navigation

Flumes-fuse

Generate a filesystem from a database created by flumes

Maintenance Code style: black Pull requests Contributors License


Table of Contents

About the project

Flumes-fuse is a tool that utilises Fuse (Filesystem in Userspace) to generate and mount filesystems out of databases created by flumes tool. The purpose is to provide uncomplicated access to data via basic terminal commands.

Features

  • Tree mode: representation of each database file entry and its properties in tree-style hierarchy
  • Search mode: database representation facilitating search by file entry property
  • Direct content access: read media content directly from the filesystem

Getting started

Supported platforms

We depend upon libfuse supported platforms which are the following

  • Linux
  • BSD (partial)

System requirements

Installation

For a successful and complete installation we recommend you to use poetry package manager.

  • Install poetry
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -

Make sure you are on the root path of the project repository before running the following commands.

  • Install project dependencies
poetry install

Usage

Mount the corresponding flumes database by running

flumes-fuse -s <MOUNT DIR> -o uri=sqlite:///(<RELATIVE PATH TO DB> OR /<ABSOLUTE PATH TO DB>) -f

Note that directory should exist, otherwise the command will throw an error. -f calls the process in foreground mode.

Tree Mode

You can navigate over flumes files and read the fields and relationships Tree mode example

Search Mode

You can navigate over flumes files by generating queries in the filesystem through paths Search mode example

Development

The project is based in poetry dependency management and packaging system.

  • Install development pre-commit hooks
poetry run pre-commit install
  • Update package dependencies in poetry.lock

The following command simply updates poetry.lock with the latest versions of the dependencies

poetry update --lock

If you also want poetry to install the latest versions in your local environment

poetry update

New releases

To generate a new release you must update the version number. The following files will need to be updated:

  • init file
  • tests/test_flumes_fuse.py
  • pyproject.toml

Once it is merged, tagging must be done in order to distribute the new version correctly.

Tagging

git tag -a <version> -m "Release <version>"
git push origin --tags

Testing

All tests are located in the tests folder. The framework used is pytest.

  • Run all tests with poetry
poetry run pytest

License

See LICENSE.LGPL for more information.

References