{"id":10966947,"name":"THSH","ecosystem":"hackage","description":"\n\n[Index] [Quick Jump]\n\nPackage maintainers\n\nFor package maintainers and hackage trustees\n\nCandidates\n\n\n\n[!NOTE]\n\nThis project is still work in progress. It has a working proof-of-concept (PoC), that was demonstrated at the\nMuniHac2024 event.\n\nTHSH (Template Haskell SHell) is a \"noDSL\" approach to mixing shell scripting with Haskell programs\nusing Template Haskell.\n\nThe key goal of the project is to enable a gradual approach to adding strongly-typed Haskell code to enhance your shell\nscripting experience.\n\nIt is gradual because you can wrap any shell script into a Template Haskell quasi-quotation with thsh:\n\n[!WARNING]\n\nThe current PoC uses the PyF project's internal code to achieve parsing, which presents difficulty in choosing a\nbetter Haskell code delimiters other than \"Â« ... Â»\", for now. In the next version, a more palatable syntax should be\nachieved, e.g. \"!{ ... }\".\n\nYou can pipe the entire outputs from a process to a Haskell function:\n\n===\u003e\n\nYou can also process each line independently:\n\n===\u003e\n\n[!NOTE]\n\nMore pre-defined function patter will be developed.\n\nThe thsh quoted code can compose with each other:\n\n--\u003e\n\nBy default, the \"thsh\" loader uses the \"cabal\nrun\" under the hood. That means that you can use\ncabal specific metadata sections for both package-level and project-level:\n\nYou can find more examples available under the \"examples\" folder.\n\nWe should note that there have been multiple projects allowing the mixing of Haskell code with shell scripting. All of\nthem require their users to learn an eDSL of their own.\n\nHere is an incomplete list of these projects:\n\nBy now, it should be evident to you that requiring minimum learning of a new eDSL, aka \"noDSL\" to be tongue-in-cheek,\nsets this project apart to offer a viable alternative to Haskell enthusiasts.\n\nKnown Bugs and Limitations\n\nFeatures\n\nMaintainability\n\nDevX","homepage":null,"licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"","keywords_array":["library","mit","program","system","Propose Tags"],"namespace":null,"versions_count":5,"first_release_published_at":"2024-10-13T12:24:46.000Z","latest_release_published_at":"2024-10-15T13:52:49.000Z","latest_release_number":"0.0.0.5","last_synced_at":"2026-05-16T20:18:11.780Z","created_at":"2024-10-13T12:37:36.432Z","updated_at":"2026-05-16T20:18:11.780Z","registry_url":"https://hackage.haskell.org/package/THSH","install_command":"cabal install THSH","documentation_url":null,"metadata":{},"repo_metadata":{},"repo_metadata_updated_at":null,"dependent_packages_count":0,"downloads":232,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":99.99443052074632,"dependent_repos_count":57.13728766360345,"dependent_packages_count":21.03035366193261,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":59.38735728209412},"purl":"pkg:hackage/THSH","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/hackage/THSH","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/hackage/THSH","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/hackage/THSH/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/THSH/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/THSH/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/THSH/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/THSH/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/THSH/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/THSH/codemeta","maintainers":[{"uuid":"hellwolf","login":"hellwolf","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://hackage.haskell.org/user/hellwolf","role":null,"created_at":"2024-10-13T14:40:48.278Z","updated_at":"2024-10-13T14:40:48.278Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/maintainers/hellwolf/packages"}]}