{"id":20060749,"url":"https://github.com/sinoroc/toolmaker","last_synced_at":"2025-08-13T15:38:27.542Z","repository":{"id":88568894,"uuid":"186448417","full_name":"sinoroc/toolmaker","owner":"sinoroc","description":"Make single-file builds of Python tools using zapp, shiv, or pex","archived":false,"fork":false,"pushed_at":"2020-06-04T12:31:58.000Z","size":82,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-12T22:14:48.071Z","etag":null,"topics":["gnu-stow","python","python-packaging","python-pex","python-shiv","python-zipapp","tool-management","tooling"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/toolmaker/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sinoroc.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE.txt","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-05-13T15:36:04.000Z","updated_at":"2023-06-13T13:09:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"d6304732-595c-47eb-a251-290c10abe3c9","html_url":"https://github.com/sinoroc/toolmaker","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sinoroc%2Ftoolmaker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sinoroc%2Ftoolmaker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sinoroc%2Ftoolmaker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sinoroc%2Ftoolmaker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sinoroc","download_url":"https://codeload.github.com/sinoroc/toolmaker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241488201,"owners_count":19970829,"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":["gnu-stow","python","python-packaging","python-pex","python-shiv","python-zipapp","tool-management","tooling"],"created_at":"2024-11-13T13:16:38.651Z","updated_at":"2025-03-02T10:14:41.293Z","avatar_url":"https://github.com/sinoroc.png","language":"Python","readme":"..\n\n\nIntroduction\n============\n\nMake single-file builds of Python tools using `zapp`_, `shiv`_, or `pex`_.\n\n\nRepositories\n------------\n\nBinary distributions:\n\n* https://pypi.org/project/toolmaker/\n\nSource code:\n\n* https://gitlab.com/sinoroc/toolmaker\n* https://github.com/sinoroc/toolmaker\n\n\nUsage\n=====\n\n\n.. code::\n\n    $ toolmaker --help\n    usage: toolmaker [-h] [--version] [--config CONFIG]\n                     [--build | --rebuild | --delete] [--all]\n                     [tool [tool ...]]\n\n    Make single-file builds of Python tools using zapp, shiv, or pex\n\n    positional arguments:\n      tool                  apply action on this tool(s)\n\n    optional arguments:\n      -h, --help            show this help message and exit\n      --version             show program's version number and exit\n      --config CONFIG, -c CONFIG\n                            configuration file (default:\n                            /home/sinoroc/.config/toolmaker/toolmaker.cfg)\n      --build, -b           build selected tool(s)\n      --rebuild, -r         rebuild selected tool(s)\n      --delete, -d          delete selected tool(s)\n      --all, -a             apply action on all tools\n\n\nConfiguration\n-------------\n\nBy default this tool looks for a configuration file at the following location:\n\n* ``${HOME}/.config/toolmaker/toolmaker.cfg`` on *Linux*\n\n* ``%USERPROFILE%\\AppData\\Roaming\\toolmaker\\toolmaker.cfg`` on *Windows*\n\n.. code::\n\n    [toolmaker.tool.defaults]\n    tools_directory = ~/.local/bin/.toolmaker\n\n    [toolmaker.tool.zapp:deptree]\n    entry_point = deptree.cli:main\n    requirements =\n        deptree\n\n    [toolmaker.tool.pex:http]\n    entry_point = http.server\n\n    [toolmaker.tool.shiv:shiv]\n    entry_point = shiv.cli:main\n    requirements =\n        shiv\n\n    [toolmaker.tool.zapp:something]\n    entry_point = something.cli:main\n    requirements =\n        --no-index\n        SomeRandomProject --find-links /path/to/location\n    requirements_txts =\n        requirements.txt\n        more.txt\n\n\nAction\n------\n\nThe action can be specified on the command line. Either one of:\n\n* ``--build``, ``-b`` to build (already existing tools are skipped);\n* ``--rebuild``, ``-r`` to rebuild (already existing tools are rebuilt);\n* ``--delete``, ``-d`` to delete (tool target file is deleted if it exists,\n  then its parent directory is deleted if it is empty).\n\nThe default action when no flag is specified is to build the tools.\n\n\nConfiguration\n=============\n\nPlace tools in current directory\n--------------------------------\n\n.. code::\n\n    [toolmaker.tool.defaults]\n    tools_directory =\n    tool_directory =\n\n    [toolmaker.tool.zapp:foo]\n    # ./foo\n\n    [toolmaker.tool.zapp:bar]\n    # ./bar\n\n\nPlace tools in specific directory\n---------------------------------\n\n.. code::\n\n    [toolmaker.tool.defaults]\n    tools_directory = /somewhere\n    tool_directory =\n\n    [toolmaker.tool.zapp:foo]\n    # /somewhere/foo\n\n    [toolmaker.tool.zapp:bar]\n    # /somewhere/bar\n\n\nPlace tools in subdirectories\n-----------------------------\n\n.. code::\n\n    [toolmaker.tool.defaults]\n    tools_directory = /somewhere\n\n    [toolmaker.tool.zapp:foo0]\n    # /somewhere/foo0/foo0\n\n    [toolmaker.tool.zapp:foo1]\n    tool_directory = foo0\n    # /somewhere/foo0/foo1\n\n    [toolmaker.tool.zapp:foo2]\n    # /somewhere/foo2/foo2\n\n    [toolmaker.tool.zapp:foo3]\n    tool_file = foo0\n    # /somewhere/foo3/foo0\n\n\nExample to use with GNU stow\n----------------------------\n\nTo use in combination with `GNU Stow`_:\n\n.. code::\n\n    [toolmaker.tool.defaults]\n    tools_directory = ~/.local/bin/.toolmaker\n\n    [toolmaker.tool.zapp:foo0]\n    # ~/.local/bin/.toolmaker/foo0/foo0\n\n    [toolmaker.tool.zapp:foo1]\n    tool_directory = foo0\n    # ~/.local/bin/.toolmaker/foo0/foo1\n\n    [toolmaker.tool.zapp:foo2]\n    # ~/.local/bin/.toolmaker/foo2/foo2\n\n    [toolmaker.tool.zapp:foo3]\n    tool_file = foo0\n    # ~/.local/bin/.toolmaker/foo3/foo0\n\n\n\nDetails\n=======\n\nSimilar projects\n----------------\n\n* `pickley`_\n* `pipx`_\n* `Zapper`_\n\n\n.. Links\n\n.. _`GNU Stow`: https://www.gnu.org/software/stow/\n.. _`pex`: https://pypi.org/project/pex/\n.. _`pickley`: https://pypi.org/project/pickley/\n.. _`pipx`: https://pipxproject.github.io/pipx/\n.. _`shiv`: https://pypi.org/project/shiv/\n.. _`zapp`: https://pypi.org/project/zapp/\n.. _`Zapper`: https://github.com/Valassis-Digital-Media/Zapper\n\n\n.. EOF\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsinoroc%2Ftoolmaker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsinoroc%2Ftoolmaker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsinoroc%2Ftoolmaker/lists"}