Metadata-Version: 1.1
Name: tooler
Version: 0.1.2
Summary: Tooler: Create friendly devops tools in minutes
Home-page: http://qix.github.io/tooler
Author: Josh Yudaken
Author-email: josh@yud.co.za
License: MIT
Description: Tooler: Easier, better, faster python devops scripts
        ====================================================
        
        Features:
        
         * Simple access to local or remote (via asyncssh) shells
         * Neat legible output from multiple hosts
        
        
        Simple access to bash:
        ----------------------
        
        .. code:: python
          import shlex
          from tooler import Tooler
        
          tooler = Tooler()
        
          @tooler.command
          def free(mount='/'):
              for result in tooler.bash('df -mah | grep %s' % shell_quote(mount + '$')):
                  fs, blocks, use, available, use_pct, mnt = shlex.split(result.stdout)
                  result.host.print('Used %s (%s) of %s [%s]' % (use, use_pct, mnt, fs))
        
          if __name__ == '__main__':
              tooler.main()
        
        
        ..
          $ ./disk.py free --mount=/
          local$ df -mah | grep '/$'
          local> /dev/mapper/ubuntu--vg-root  102G   69G   28G  72% /
          local: [✔]
          local: Used 69G (72%) of / [/dev/mapper/ubuntu--vg-root]
        
        Subcommands made easy:
        ----------------------
        
        .. code:: python
          from tooler import Tooler
          from tooler.library import (named, SshConfig)
        
          import disk
        
          tooler = Tooler()
        
          tooler.add_submodule('disk', disk.tooler)
          tooler.add_submodule('named', named.tooler)
        
          if __name__ == '__main__':
              named.add_hosts(SshConfig().get_hosts())
              tooler.main(hosts=[])
        
        Library of awesome sauce:
        -------------------------
        
        ..
          $ ./tool.py named:nginx* disk.free
          $ s named:nginx* free
          nginx1$ df -mah | grep '/$'
          nginx2$ df -mah | grep '/$'
          nginx3$ df -mah | grep '/$'
          nginx3> /dev/sda1        59G   37G   22G  64% /
          nginx3: [✔]
          nginx1> /dev/sda1        59G   37G   22G  64% /
          nginx1: [✔]
          nginx2> /dev/sda1        59G   37G   22G  64% /
          nginx2: [✔]
          nginx1: Used 37G (64%) of / [/dev/sda1]
          nginx2: Used 37G (64%) of / [/dev/sda1]
          nginx3: Used 37G (64%) of / [/dev/sda1]
        
        Thanks required:
        ----------------
        
         * asyncssh_  for an easy to use ssh client
         * fabric_ & baker_ as inspiration
        
        .. _asyncssh: https://github.com/ronf/asyncssh
        .. _baker: https://bitbucket.org/mchaput/baker
        .. _fabric: https://github.com/fabric/fabric
        
Platform: Any
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Networking
