Skip to main content

Continuously monitor a file and mirror the content after modification

Project description

Mendeley Watchdog pipeline-checks

Mendeley Watchdog is a command line utility that continuously watches the last modification time of a given files and writes the content to a specified file.

WARNING The contents of the specified destination file are not checked checked before they are overwritten. Therefore the contents of the destination file will always be overwritten after the first "check". All manual changes to the destination file will always be overwritten when a change to the source file was detected.

WARNING The file contents are read and written in binary mode, as of right now this behavior can not be changed. This may be changed in future versions of this software.

The motivation for this software arose from the need to be able to save BibTeX files that are managed by Mendeley Desktop to LaTeX project directories. While Mendeley does support creating BibTeX files on a per-project basis it does not allow setting specific directories to which the individual files are saved. They are all written to the same directory. This software

The first (an so far only) entry point for the software fulfills that need by making it possible to mirror one of these files to any writable destination. Since I write LaTeX using Visual Studio Code I wanted to be able to run the monitoring process whenever the workspace folder for a project is open. Luckily VS Code makes it possible to configure arbitrary tasks for a given workspace. The mendeley-watchdog entry point was designed with this use-case in mind, an exemplary task could look like this:

{
    "label": "Mirror hhn-it-systems",
    "type": "shell",
    "command": "mendeley-watchdog",
    "runOptions": {"runOn": "folderOpen"},
    "problemMatcher": ["$eslint-compact"],
    "args": [
        "--mendeley-bibtex",
        "'R:\\Mendeley Library\\.bib'",
        "hhn-it-systems.bib",
        "resources/references.bib"
    ]
}

The above task launches mendeley-watchdog as soon as the containing workspace folder is opened. The task continuously mirrors the file R:\Mendeley Library.bib\hhn-it-systems.bib as references.bib to the workspace subdirectory resources. Refer to the documentation for a more detailed explanation of the entry point and task.

Installation

The above-mentioned VS Code task assumes the entry point is on PATH. An easy way to achieve this is installing via pipx which isolates the package in its own virtual environment exposes their entry points on PATH.

pipx install mendeley-watchdog

Alternatively install using

pip install mendeley-watchdog

Documentation

The detailed documentation for mendeley-watchdog can be found on GitHub. Be aware that the above link points to the master branch. If you're reading this on PyPI that means it might be outdated. In that case use the Documentation URL from the sidebar which should point towards the latest release docs.

Further Development

Depending on usefulness (and reception) additional functionality may be added. Ideas include:

  • enable mirroring any single file (not just bib files)
    • allow mirroring a single watched file to multiple destinations
  • enable mirroring a map of files and destinations

Feel free to open an issue if you encountered bugs or have other ideas that aren't yet listed in the backlog.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mendeley-watchdog-0.0.2.tar.gz (19.0 kB view hashes)

Uploaded Source

Built Distribution

mendeley_watchdog-0.0.2-py3-none-any.whl (14.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page