Metadata-Version: 2.1
Name: toolmaker
Version: 0.0.6
Summary: Make single-file builds of Python tools using zapp, shiv, or pex
Home-page: https://pypi.org/project/toolmaker/
Author: sinoroc
Author-email: sinoroc.code+python@gmail.com
License: Apache-2.0
Project-URL: GitLab, https://gitlab.com/sinoroc/toolmaker
Project-URL: GitHub, https://github.com/sinoroc/toolmaker
Description: ..
        
        
        Introduction
        ============
        
        Make single-file builds of Python tools using `zapp`_, `shiv`_, or `pex`_.
        
        
        Repositories
        ------------
        
        Binary distributions:
        
        * https://pypi.org/project/toolmaker/
        
        Source code:
        
        * https://gitlab.com/sinoroc/toolmaker
        * https://github.com/sinoroc/toolmaker
        
        
        Usage
        =====
        
        Configuration
        -------------
        
        By default this tool looks for a configuration file at the following location:
        
        * ``${HOME}/.config/toolmaker/toolmaker.cfg`` on *Linux*
        
        * ``%USERPROFILE%\AppData\Roaming\toolmaker\toolmaker.cfg`` on *Windows*
        
        .. code::
        
            [toolmaker.tool.defaults]
            tools_directory = ~/.local/bin/.toolmaker
        
            [toolmaker.tool.zapp:deptree]
            entry_point = deptree.cli:main
            requirements =
                deptree
        
            [toolmaker.tool.pex:http]
            entry_point = http.server
        
            [toolmaker.tool.shiv:shiv]
            entry_point = shiv.cli:main
            requirements =
                shiv
        
            [toolmaker.tool.zapp:something]
            entry_point = something.cli:main
            requirements =
                --no-index
                SomeRandomProject --find-links /path/to/location
            requirements_txts =
                requirements.txt
                more.txt
        
        
        Action
        ------
        
        The action can be specified on the command line. Either one of:
        
        * ``--build``, ``-b`` to build (already existing tools are skipped);
        * ``--rebuild``, ``-r`` to rebuild (already existing tools are rebuilt);
        * ``--delete``, ``-d`` to delete (tool target file is deleted if it exists,
          then its parent directory is deleted if it is empty).
        
        The default action when no flag is specified is to build the tools.
        
        
        Configuration
        =============
        
        Place tools in current directory
        --------------------------------
        
        .. code::
        
            [toolmaker.tool.defaults]
            tools_directory =
            tool_directory =
        
            [toolmaker.tool.zapp:foo]
            # ./foo
        
            [toolmaker.tool.zapp:bar]
            # ./bar
        
        
        Place tools in specific directory
        ---------------------------------
        
        .. code::
        
            [toolmaker.tool.defaults]
            tools_directory = /somewhere
            tool_directory =
        
            [toolmaker.tool.zapp:foo]
            # /somewhere/foo
        
            [toolmaker.tool.zapp:bar]
            # /somewhere/bar
        
        
        Place tools in subdirectories
        -----------------------------
        
        .. code::
        
            [toolmaker.tool.defaults]
            tools_directory = /somewhere
        
            [toolmaker.tool.zapp:foo0]
            # /somewhere/foo0/foo0
        
            [toolmaker.tool.zapp:foo1]
            tool_directory = foo0
            # /somewhere/foo0/foo1
        
            [toolmaker.tool.zapp:foo2]
            # /somewhere/foo2/foo2
        
            [toolmaker.tool.zapp:foo3]
            tool_file = foo0
            # /somewhere/foo3/foo0
        
        
        Example to use with GNU stow
        ----------------------------
        
        To use in combination with `GNU Stow`_:
        
        .. code::
        
            [toolmaker.tool.defaults]
            tools_directory = ~/.local/bin/.toolmaker
        
            [toolmaker.tool.zapp:foo0]
            # ~/.local/bin/.toolmaker/foo0/foo0
        
            [toolmaker.tool.zapp:foo1]
            tool_directory = foo0
            # ~/.local/bin/.toolmaker/foo0/foo1
        
            [toolmaker.tool.zapp:foo2]
            # ~/.local/bin/.toolmaker/foo2/foo2
        
            [toolmaker.tool.zapp:foo3]
            tool_file = foo0
            # ~/.local/bin/.toolmaker/foo3/foo0
        
        
        
        Details
        =======
        
        Similar projects
        ----------------
        
        * `pickley`_
        * `pipx`_
        * `Zapper`_
        
        
        .. Links
        
        .. _`GNU Stow`: https://www.gnu.org/software/stow/
        .. _`pex`: https://pypi.org/project/pex/
        .. _`pickley`: https://pypi.org/project/pickley/
        .. _`pipx`: https://pipxproject.github.io/pipx/
        .. _`shiv`: https://pypi.org/project/shiv/
        .. _`zapp`: https://pypi.org/project/zapp/
        .. _`Zapper`: https://github.com/Valassis-Digital-Media/Zapper
        
        
        .. EOF
        
Platform: UNKNOWN
Description-Content-Type: text/x-rst
Provides-Extra: package
Provides-Extra: test
