Skip to main content

The melding of docker compose and neovim

Project description

unholy

Cooperates with Docker Compose, injects an nvim-based container into it, and connects neovide to it.

You can call it what you'd like, but I'm going to call this union unholy.

Requirements

  • Unholy itself (I suggest using pipx)
  • Git
  • The Docker CLI
  • socat
  • Neovide

Usage

  1. Commit an Unholyfile to your repo (see below)
  2. Run unholy new <git url>
  3. Work on your project using unholy shell and unholy neovide

Use unholy remake to rebuild your development environment without re-cloning your repo or touching your work.

Note: By default, the name of the Unholy project is the repo name.

Unholyfile

A major aspect of unholy is the Unholyfile. It is a script with TOML head matter, like so:

---
[dev]
image="python"
---
pip install pytest

The complete headmatter schema is loosely documented in core.Unholyfile.

The script supports a #!, defaulting to #!/bin/sh

If you specify a non-default image, it must be Debian-based.

Additional config

Local configuration (including project definitions) are stored in the XDG Config directory (default ~/.config/unholy).

There is a global ~/.config/unholy/Unholy applied to all projects. This is an excellent place for personal settings (like utilities you like or nvim configuration).

Each project gets an ~/.config/<name>.Unholyfile where unholy keeps git and Docker settings. You can add some local project overrides here.

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

unholy-0.2.1.tar.gz (14.8 kB view hashes)

Uploaded Source

Built Distribution

unholy-0.2.1-py3-none-any.whl (17.1 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