Skip to main content

Build tool to selectively run blocks of build commands under specified conditions

Project description

HitchTrigger is a self contained build tool designed to trigger blocks of build commands when a condition is met that necessitates a rebuild.

The conditions can be one or more combined of any of the following:

  • A file or files (e.g. source files) have changed.

  • A specified (build) directory did not exist.

  • A period of time has elapsed.

  • A ‘watched’ variable has changed its value.

  • An exception occurred the previous time the commands were run (always by default).

To install from pypi:

$ hitch install hitchtrigger

Use

import hitchtrigger

monitor = hitchtrigger.Monitor(
    "/path/to/project.watch"
    #override=["virtualenv", ],
)

# Will run in the following cases:
#
## The command block has never been run before.
## An exception was triggered within the context manager on the previous run.
## venv directory is non-existent.
## A period of 7 days has elapsed
## A previous block named 'previousblock' was run.
## Either requirements.txt or dev_requirements.txt have been modified (file modification dates are monitored).
## Var "v=1" is changed (e.g. to "v=2").
## The line 'override=["virtualenv", ]' is uncommented.

with monitor.block(
    "virtualenv",
    monitor.nonexistent("venv") | monitor.not_run_since(days=7) | monitor.was_run("previousblock")
    monitor.modified(["requirements.txt", "dev_requirements.txt"]) | monitor.var(v=1)
).context() as trigger:
    if trigger:
        print(trigger.why)  # Prints out reason for running

        Path("venv").rmtree(ignore_errors=True)
        virtualenv("venv").run()
        pip("install", "-r", "requirements.txt").run()
        pip("freeze").stdout(Path("freeze.txt")).run()
        pip("install", "dev_requirements.txt").run()

Project details


Release history Release notifications | RSS feed

This version

0.2

Download files

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

Source Distribution

hitchtrigger-0.2.tar.gz (5.7 kB view details)

Uploaded Source

File details

Details for the file hitchtrigger-0.2.tar.gz.

File metadata

  • Download URL: hitchtrigger-0.2.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for hitchtrigger-0.2.tar.gz
Algorithm Hash digest
SHA256 413c5da2b11dc7d46df0ae94a3961879aef3a6cb10a6682611cad9868060b9e3
MD5 618b225901ffb1f531e3e00a94e1e471
BLAKE2b-256 1fc63338cdd98afa5307a750e95e3e96a6ac0caae7826addd8775afa41e49e1e

See more details on using hashes here.

Supported by

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