{"id":15010417,"url":"https://github.com/tasosx/tools4clj","last_synced_at":"2025-04-09T22:41:41.983Z","repository":{"id":57568108,"uuid":"218591867","full_name":"tasosx/tools4clj","owner":"tasosx","description":"go tools for clojure","archived":false,"fork":false,"pushed_at":"2025-02-22T12:50:02.000Z","size":210,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T00:38:23.644Z","etag":null,"topics":["clj","clojure"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tasosx.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}},"created_at":"2019-10-30T18:07:35.000Z","updated_at":"2025-02-22T12:50:06.000Z","dependencies_parsed_at":"2025-01-17T19:32:42.430Z","dependency_job_id":"896500e7-4abe-4645-9a5b-5685a2950531","html_url":"https://github.com/tasosx/tools4clj","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tasosx%2Ftools4clj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tasosx%2Ftools4clj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tasosx%2Ftools4clj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tasosx%2Ftools4clj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tasosx","download_url":"https://codeload.github.com/tasosx/tools4clj/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248124848,"owners_count":21051757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["clj","clojure"],"created_at":"2024-09-24T19:34:07.821Z","updated_at":"2025-04-09T22:41:41.962Z","avatar_url":"https://github.com/tasosx.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tools4clj\n\n\nIn the shadows of the official clojure tools:\n\n```\nconst version = \"1.12.0.1517\"\n```\n\n\n## What is this?\n\nThis is the **_go_ tools for clojure**. \n\nThe _tools4clj_ build produces two binaries that follow closely the functionality of **clojure/brew-install** command line scripts:\n- the `clojure` binary launcher of the official clojure tools, and\n- the `clj` binary, which launches the official clojure tools within a `rlwrap` readline wrapper, intended for interactive repl use.\n\nPlan is to keep this project up to date with _clojure/brew-install_ changes (focused on stable releases).\n\nAny requests/PRs for features are welcome, as long as they do not stray from the plan.\n\nPlease, report any bugs at https://github.com/tasosx/tools4clj/issues, stating your platform, and steps to reproduce them, along with actual and expected results.\n\n## Why this?\n\n### Is there something different compared to official clojure/clj tools?\n\nFor a Go user:\n- An easy entrance to clojure world. If you are a go user you are one command line away from clojured happiness.\n\nFor a Windows user:\n- Resolves Windows (powershell/cmd/bash) quotes handling differences. One clojure/clj tools command to run anywhere. So pick a published deps clj/clojure command line example on the internet and run it on Windows, with no need to change/escape the quotes.\n- Bypasses operating systems command line length limits, frequently reached (on Windows) when large classpaths are defined, using a java command line argument file in place of the classpath value.\n\nFor any user:\n- Same update procedure to all supported platforms.\n- A pretty clojure repl. Use rebel when you want to view/display a prettier clojure dev UI.\n\n### Is it only for Windows?\n\nTL;DR. No, it is for any platform, but on Windows has some specific features.\n\nFor the Windows platform a decision was made, in order to mitigate the quote escaping mess (see: https://clojure.atlassian.net/browse/TDEPS-133, https://clojure.atlassian.net/browse/TDEPS-136), to prefer a unix oriented command line input, by accepting arguments enclosed in single or double quotes, like `'(print \"test\")'` or `\"(print \\\"test\\\")\"`. Windows double-quotes nesting or Unix single quotes nesting is not supported on Windows platform.\n\nIf you need to override this behaviour, and want to use the native Windows arguments parsing, use `--native-args` option. It is the default on all other platforms.\n\n\n## Based upon...\n\nTried to keep the usage of this project's produced binaries inline with the official CLI tools, with the exception of the installation directory. This project uses `~/.tools4clj/[version]` folder for the installation of `deps.edn`, `example-deps.edn`, `tools.edn`, `exec.jar` and `clojure-tools-X.Y.Z.jar` files, and the `%GOPATH%/bin` folder for the binaries.\n\nCheck:\n- https://clojure.org/reference/deps_and_cli for a Deps and CLI detailed reference\n- https://clojure.org/guides/getting_started for the official installers (Mac, Linux, Windows and also building clojure from source)\n\n\n## Usage\n\nYou need to have Java and, also, Go installed and ready to develop (...have your go path ready)\n\nTo install (or update) the `clojure` and `clj` binary launchers, on a shell/command line prompt, run:\n```\ngo install github.com/tasosx/tools4clj/cmd/...@latest\n```\n\nYou are ready to _go_ clojure... \n\nFor usage info try:\n```\nclojure --help\n```\n\nOn the first launch of `clojure` or `clj`, after a tools4clj update or installation, it will download the latest referenced version of clojure tools. \n\nSo an one-liner for a tools update is:\n```\ngo install github.com/tasosx/tools4clj/cmd/...@latest \u0026\u0026 clojure\n```\n\nAlso, `clj --rebel` runs an extended version of clj that, instead of using `rlwrap`, it uses the terminal readline library **bhauman/rebel-readline**, giving a more polished look and feel. \n\nNote: on Windows *rebel* prompt, a long running function can not be stopped by Ctrl+C. Use the task manager... \n\nAlthough *rebel* extension looks great, it is a bit slow sometimes, so it may not always be the choice of heart. Thats why *rlwrap'ed clj* is the default.\n\nLooks and feel of `clj --rebel` are configurable through the `rebel-readline` options:\n\nhttps://github.com/bhauman/rebel-readline/#config\n\n\n## More\n\n### Clojure\n\nhttps://clojure.org/guides/getting_started\n\n### Clojure official CLI tools\n\nhttps://clojure.org/guides/deps_and_cli\n\nhttps://github.com/clojure/brew-install\n\n### Readliners\n\nhttps://github.com/hanslub42/rlwrap\n\nhttps://github.com/bhauman/rebel-readline\n\n### Go\n\nhttps://golang.org/doc/code.html#GOPATH\n\n### Windows \"quotes\" issue (fixed in tools4clj)\n\nhttps://clojure.atlassian.net/browse/TDEPS-121\n\nhttps://clojure.atlassian.net/browse/TDEPS-133\n\nhttps://clojure.atlassian.net/browse/TDEPS-136\n\n\n## Homepage\n\nhttps://github.com/tasosx/tools4clj\n\n\n## Copyright and License\n\nCopyright (c) 2019 Tasos Mamaloukos.\n\nAll rights reserved. This program and the accompanying materials \nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution.\n\nThe Eclipse Public License is available at\n    https://www.eclipse.org/org/documents/epl-v10.html\n\nSPDX-License-Identifier: EPL-1.0","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftasosx%2Ftools4clj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftasosx%2Ftools4clj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftasosx%2Ftools4clj/lists"}