Skip to main content

A nice lint runner

Project description

Fnug

image image image Actions status

Fnug is a command runner, well actually it's a terminal multiplexer (like tmux), but with a focus on running all your lint and test commands, at once, and displaying the result of those command. Confused? Watch the demo

screenshot

Features

  • User-friendly terminal interface, with 100% support for both keyboard and mouse navigation
  • Git integration, automatically select lints and tests that's should be run, based on what files have uncommitted changes
  • Track file changes, and selects commands based on the changed files
  • Terminal emulation with scroll back, for those really long error messages

Installation

Python 3.10 or later is required.

pipx or rye tool are highly recommended:

# Recommended
pipx install fnug
# (or with rye tool)
rye install fnug
# Via pip (NOT RECOMMENDED)
pip install fnug

Usage

To start fnug you only need to run it in a directory with a .fnug.yaml configuration file (or with the argument -c path/to/config.yaml)

Config

Fnug is controlled by a .fnug.yaml configuration file (or .fnug.json if thats more your speed).

Minimal example:

Runs a single commands

fnug_version: 0.1.0
name: fnug
commands:
  - name: hello
    cmd: echo world

Git selection example:

Uses git auto to select commands based on what files have uncommitted changes (reselect by pressing "g")

fnug_version: 0.1.0
name: fnug
commands:
  - name: hello
    cmd: echo world
    auto:
      git: true
      path:
        - "./"
      regex:
        - "\\.fnug\\.yaml$"

File watching example:

Uses file watching to monitor the file system for changes, and select commands accordingly, can be combined with git auto

fnug_version: 0.1.0
name: fnug
commands:
  - name: hello
    cmd: echo world
    auto:
      watch: true
      path:
        - "./"
      regex:
        - "\\.fnug\\.yaml$"

Advanced example:

View this projects .fnug.yaml file for an advanced example

Demo

https://github.com/nickolaj-jepsen/fnug/assets/1039554/8f8a4d34-8beb-4fb4-9bbc-6fd0a4a384be

Development

Build with Rye

Install dependencies

rye sync

Run in textual devmode

log terminal: rye run console fnug (debug) terminal: rye run debug

Run lint/tests

Use fnug of course 😄 (or rye run fnug)

Thanks

Made possible by:

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

fnug-0.0.25.tar.gz (31.0 kB view details)

Uploaded Source

Built Distributions

fnug-0.0.25-cp310-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.10+ Windows x86-64

fnug-0.0.25-cp310-abi3-win32.whl (1.3 MB view details)

Uploaded CPython 3.10+ Windows x86

fnug-0.0.25-cp310-abi3-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10+ musllinux: musl 1.2+ x86-64

fnug-0.0.25-cp310-abi3-musllinux_1_2_i686.whl (1.7 MB view details)

Uploaded CPython 3.10+ musllinux: musl 1.2+ i686

fnug-0.0.25-cp310-abi3-musllinux_1_2_armv7l.whl (1.7 MB view details)

Uploaded CPython 3.10+ musllinux: musl 1.2+ ARMv7l

fnug-0.0.25-cp310-abi3-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.10+ musllinux: musl 1.2+ ARM64

fnug-0.0.25-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10+ manylinux: glibc 2.17+ x86-64

fnug-0.0.25-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.7 MB view details)

Uploaded CPython 3.10+ manylinux: glibc 2.17+ s390x

fnug-0.0.25-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.6 MB view details)

Uploaded CPython 3.10+ manylinux: glibc 2.17+ ppc64le

fnug-0.0.25-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.4 MB view details)

Uploaded CPython 3.10+ manylinux: glibc 2.17+ ARMv7l

fnug-0.0.25-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10+ manylinux: glibc 2.17+ ARM64

fnug-0.0.25-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl (1.5 MB view details)

Uploaded CPython 3.10+ manylinux: glibc 2.5+ i686

fnug-0.0.25-cp310-abi3-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.10+ macOS 11.0+ ARM64

fnug-0.0.25-cp310-abi3-macosx_10_12_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10+ macOS 10.12+ x86-64

File details

Details for the file fnug-0.0.25.tar.gz.

File metadata

  • Download URL: fnug-0.0.25.tar.gz
  • Upload date:
  • Size: 31.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.4

File hashes

Hashes for fnug-0.0.25.tar.gz
Algorithm Hash digest
SHA256 af7589fe7e448df8a3aa3dec5def8ff8e88f835797e3a898162bb1243fee1cd2
MD5 54dd1042363d05da84db77e956dca65e
BLAKE2b-256 970dd8774b0961bc0e95401b18fb88a62d49338fa0870cccbbd5719b111fda19

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: fnug-0.0.25-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.4

File hashes

Hashes for fnug-0.0.25-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f5c4545c73c0abce39e706aeb9d24355999920daf73bbeb4cd33bcb8b1da15ab
MD5 bb2513d0c99e04f8273be338fdd6a5b3
BLAKE2b-256 66de6882e2eaff14f0ef2c14bfd13abf1df9645a9919a4d0c57599caeed625d7

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-win32.whl.

File metadata

  • Download URL: fnug-0.0.25-cp310-abi3-win32.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.10+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.4

File hashes

Hashes for fnug-0.0.25-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 99a967d95b7365ecb008f857f36562b78ea53256bbd30af0cbe9d83449421095
MD5 c60991639fe210904747a7f8f44caa6f
BLAKE2b-256 1f6aebd043dd5659f87ee1954f1b2c386a636afcb636fb6471d8576b5fa69653

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fnug-0.0.25-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8612559255b59ccf02b5e76e6f7e87ba11adf5858daeee91446b68247501482c
MD5 3b53cdc1ecde41e8ea4627f1b8f3e6b9
BLAKE2b-256 353211e4a78305f187dd1945eb64af530d4c17a4528b0a4cf5a5cff5734c5c9b

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for fnug-0.0.25-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 1a6e54f56e3e9fd60708dd7b9c135327acc51f82621a71587168578dc164e807
MD5 faf4c0a17e60f96f5bae04d44f292bc0
BLAKE2b-256 fa9ab3742b8f4a6d4585a33165cf9c0c46a51fca09f0dbaf2ea1420825c6b6aa

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for fnug-0.0.25-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 f17c4988c62b2c847abd0d3e3c55f5c32f2c323ddef042df10fab88dc6d1df26
MD5 44d3ced28617c333ef06ddb9770b8b60
BLAKE2b-256 854c5971d44bda899612708be5320a1c0efa23967d31a72561bc951f7a72af9d

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for fnug-0.0.25-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 725fe9e623841e5161fe00cc653178bb91b97110d0f63db81ee93f12079b8bd0
MD5 1c4efc2013eec771fb77aaf7d58327d9
BLAKE2b-256 cc1d863d22f4a1fab89b612d3e3125ffcd5474bceea49975d205724e189b2c28

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fnug-0.0.25-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aa67f7e00169b41ca02e8c15615f71d26dd5cbf4222356728b7dfe1c5cf92b46
MD5 08efefb4fd9d0fc614fdb41f625661e3
BLAKE2b-256 ee64d9651c6b95775de1a2de1aecbd74b6f68eb3bb11bbcc976d7f33140f93b6

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for fnug-0.0.25-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 6b74998bbc757285207466b4186c0618092541b1929d6cccab555ea7eb872d4f
MD5 5e628f44bc0882c15486e4825606ea33
BLAKE2b-256 a11c61a11aece4a93cbe70bd26d69b740c19a5072f4decc08b13c00d221d7917

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for fnug-0.0.25-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0dbfdfd75b2b28d9ed95b68ac2a14a97e5a2498520ea107776a4038457aad31e
MD5 652afa1be306007732b118db05dbc0bd
BLAKE2b-256 88323ed358ef10164d52cc6925b74795779fbd3e9f7a1ca48ad38a58efa632a2

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for fnug-0.0.25-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 7cfb813fe03162233ca5852dc13d210d6cec25dc2a14bb2c7e77ee457a377d20
MD5 0b42bc9375c97d825da7dc35d13c7d60
BLAKE2b-256 201dcbb1efd8c130116a119def61f7bbc632be7c2e8015ec11ed2b5f70667c6c

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fnug-0.0.25-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0abf562718489b987c4c25dda3f8f50d567d3382f3a6e14c6f6df978d740af70
MD5 71f1f3813d86d8812be24036d0ef9b85
BLAKE2b-256 a1a2759d5beadb78993b169ea7a697316e51913637a6e84d6bb8558568e8e897

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for fnug-0.0.25-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 7ec19a326a949bda498760d3d5ce200bb1d814096ce5fd46040c62b4b3f4d010
MD5 bed9fbe04f71c0bf026e59362367f988
BLAKE2b-256 f749331db534f239f8229ae24e18bd4b5e47cfb9db43fea13979ae2127ebe19b

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fnug-0.0.25-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c38380483b79f8fd1d41d3d57bac54734e756ecd1290f940bb6ac411a37f9ac
MD5 7bf0425217e025c220bf0b00dcd6f52e
BLAKE2b-256 fcf0ac58c65f83655aae05dfa56fdd401184dafc0911b0860042607ba0e42ac5

See more details on using hashes here.

File details

Details for the file fnug-0.0.25-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fnug-0.0.25-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 81ab94bf08f9d277764825a371c28cade1835110fbb9cc8bdbaf10dd16a3ef85
MD5 295f044647c2785abcf1f221deb9d8ea
BLAKE2b-256 fb098fbb2b995cdd5c22ede49d1d6b3eaba136718a39b35a729b04458a2e76f3

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