Skip to main content

Assist in setting up and maintaining developer environments

Project description

Daktari is a tool to help the initial setup and ongoing maintenance of developer environments. It runs a series of checks (for example, that required software is installed) and provides suggestions on how to fix the issue if the check fails.

Configuration

In the root of the project repository, create a .daktari.py configuration file listing the checks you want run. For example,

from daktari.checks.git import *

version = "0.0.225"
title = "My Project"

checks = [
    GitInstalled(),
    GitLfsInstalled(),
    GitLfsSetUpForUser(),
    GitLfsFilesDownloaded(),
    GitCryptInstalled(),
]

Then run daktari to diagnose your environment:

$ daktari
✅ [git.installed] Git is installed
✅ [git.lfs.installed] Git LFS is installed
✅ [git.lfs.setUpForUser] Git LFS is set up for the current user
✅ [git.lfs.filesDownloaded] Git LFS files have been downloaded
❌ [git.crypt.installed] git-crypt is not installed
┌─💡 Suggestion ─────────┐
│ brew install git-crypt │
└────────────────────────┘

Custom Check

You can write a custom check as a Python class within .daktari.py, and include it in your list of checks. Example of a check implementation:

class GitCryptInstalled(Check):
    name = "git.crypt.installed"
    depends_on = [GitInstalled]

    suggestions = {
        OS.OS_X: "<cmd>brew install git-crypt</cmd>",
        OS.UBUNTU: "<cmd>sudo apt install git-crypt</cmd>",
        OS.GENERIC: "Install git-crypt (https://www.agwa.name/projects/git-crypt/)",
    }

    def check(self):
        return self.verify(can_run_command("git crypt version"), "git-crypt is <not/> installed")

Testing Daktari changes locally

Having cloned the repo into ~/daktari, you can make use of PYTHONPATH to run daktari using your local changes.

To do this, navigate into a directory that has a .daktari.py (e.g. another repository intending to use your change) and run:

PYTHONPATH=~/daktari python3 -m daktari --debug

Release instructions

Daktari is continuously deployed via a github action - see release.yaml. In case of a need to manually release, the steps are:

bumpversion --verbose patch
python setup.py sdist bdist_wheel
twine check dist/*
twine upload dist/*

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

daktari-0.0.225.tar.gz (37.1 kB view details)

Uploaded Source

Built Distribution

daktari-0.0.225-py3-none-any.whl (54.0 kB view details)

Uploaded Python 3

File details

Details for the file daktari-0.0.225.tar.gz.

File metadata

  • Download URL: daktari-0.0.225.tar.gz
  • Upload date:
  • Size: 37.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for daktari-0.0.225.tar.gz
Algorithm Hash digest
SHA256 85f5d1eaac0fb293394b40f019dbab8ce3273304a7a27de7e49deb75cf2abe1c
MD5 bf1050b40a24f13b5c575b0d19bc7b36
BLAKE2b-256 ff47f06559cf364898c27b8a1247f64c1db36678af68ff720ce944fd61b969d5

See more details on using hashes here.

File details

Details for the file daktari-0.0.225-py3-none-any.whl.

File metadata

  • Download URL: daktari-0.0.225-py3-none-any.whl
  • Upload date:
  • Size: 54.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for daktari-0.0.225-py3-none-any.whl
Algorithm Hash digest
SHA256 df8949831d58fad3d19cbc39a15dc92a21c9699b9531375c35e3522ca0d3833d
MD5 17772b2f7cc491b50b2b6106a07dcce6
BLAKE2b-256 db27b525fda776ecec59e0f08e94d918936a5da2fbc65244fca0508db348addf

See more details on using hashes here.

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