{"id":16661286,"url":"https://github.com/willbasky/lineman","last_synced_at":"2026-04-17T18:32:26.222Z","repository":{"id":43771589,"uuid":"306440441","full_name":"willbasky/lineman","owner":"willbasky","description":"Lineman traverses directory recursively and run command by condition","archived":false,"fork":false,"pushed_at":"2025-08-29T04:20:43.000Z","size":93,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-29T08:22:09.033Z","etag":null,"topics":["hacktoberfest","utility"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/willbasky.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-10-22T19:34:28.000Z","updated_at":"2025-08-29T04:20:46.000Z","dependencies_parsed_at":"2024-10-26T02:11:07.334Z","dependency_job_id":"101f5187-35de-4a3d-bd2a-4fbff608d8c6","html_url":"https://github.com/willbasky/lineman","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/willbasky/lineman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willbasky%2Flineman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willbasky%2Flineman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willbasky%2Flineman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willbasky%2Flineman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/willbasky","download_url":"https://codeload.github.com/willbasky/lineman/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willbasky%2Flineman/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31940830,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","utility"],"created_at":"2024-10-12T10:34:25.678Z","updated_at":"2026-04-17T18:32:26.198Z","avatar_url":"https://github.com/willbasky.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lineman\n\n[![BSD 3](https://img.shields.io/badge/license-BSD3-blue.svg)](LICENSE)\n[![Haskell-CI](https://github.com/willbasky/lineman/actions/workflows/haskell-ci.yml/badge.svg?branch=master)](https://github.com/willbasky/lineman/actions/workflows/haskell-ci.yml)\n\n## Description\n\nLineman traverses directory recursively and run command by conditions.\n\nFor example supposed there a many haskell projects with building files (like `.stack-work` or `dist-newstyle`) that take enormous space of disk. It takes time to purge them all manually. The lineman is able to carry out this job automatically. All you need is to configure lineman's config and run it.\n\n## Installation\n\n    git clone https://github.com/willbasky/lineman\n    cd lineman\n\nAnd either\n\n    cabal install\n\n## Usage\n\n    lineman /path/to/toml/config/\n\n## Lineman's config\n\nLineman uses [dhall](https://dhall-lang.org) configuration. See [Config](./lineman.dhall) example.\n\n## Term policy\n\n- `Action` - a single command that run in a directory due to particular `conditions`\n- `Conditions` describe the directory has to have to run `action`\n- `EntryPoint` is a parent directory where `lineman` starts seeking for `targets`\n- `Target` is a directory that aligns to `condition` \n- `Swarm` is a bunch of `actions` that match to `condition`\n- `Hive` is a collection of `swarms`\n\n## Features \n\n- Both `actions` in a `swarm` and `swarms` in a `hive` can be run concurrently or successively \n- Both `actions` and `swarms` can be interspersed with breaks\n- `Lineman` starts seeking `targets` from `entryPoint` recursively and finds directories that have particular subdirectories, files or extensions. And then it run `Action` in found `targets`. \n\n## Use cases\n\n- Clear build artefact in bunch of projects. \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillbasky%2Flineman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwillbasky%2Flineman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillbasky%2Flineman/lists"}