Giter Site home page Giter Site logo

astraluma / unholy Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 1.0 123 KB

The unholy union of docker compose, neovim, and neovide

Home Page: https://unholy.readthedocs.io/

Dockerfile 0.24% Python 99.03% Just 0.73%
dev-container dev-containers docker docker-compose neovide neovim

unholy's Introduction

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.

unholy's People

Contributors

astraluma avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

rhixghart

unholy's Issues

Stale socat lockfiles confuse Unholy

If socat dies unceremoniously (computer dies, kill -9, etc), it'll leave a lockfile.

When starting the agent forward, ensure the socat lockfile is still valid.

Remove command

Add a CLI command to complete blow away an unholy project.

Make sure it has all the appropriate confirmations.

Compose alias

It's annoying to call docker compose inside the devenv with the unholy settings.

Have unholy inject an alias/script of some kind to improve this.

Don't use root

Don't do everything as root. Create a user in the environment and use that for most commands.

Exec command

Add an exec CLI command to have unholy just execute a thing in the devenv.

zscaler cert

Docker Desktop for Mac now runs HTTP traffic through the system proxy. Which for $DAYJOB is zscaler with tls inspection.

Add the zscaler root cert to the container

Unholy new bare

Allow unholy new to create a workspace and devenv without looking at or cloning a git repo

Multi-user story

Figure out how multiple Unholy users should share one server/daemon.

Add `--version` flag

I just did pipx install unholy, and tried unholy --version to check what version I had.

PS C:\Users\puppy> unholy --version
Usage: unholy [OPTIONS] COMMAND [ARGS]...
Try 'unholy --help' for help.

Error: No such option: --version
PS C:\Users\puppy>

Compose command

Add a compose command to the CLI to allow access to calling docker compose through unholy, without bouncing through unholy shell.

Config synchronization story

Figure out how a user with multiple workstations should synchronize local configuration between those workstations.

Reduce Local dependencies

Reduce the number of non-python dependencies required by Unholy.

This should improve platform portability and reduce installation friction.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.