{ "info": { "author": "Patrick Jennings", "author_email": "patrick@jenningsga.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Description\nControl a Pi-hole installation from anywhere.\n\n* Manage blacklisted and whitelisted domains.\n* Create and remove custom domains for your internal services.\n* Tail the query log.\n* Remotely view the chronometer for realtime statistics.\n\n# Install\n```bash\npip install pyholecli\n```\n\n# Setup\nCreate a SSH key and install on your Pi-hole installation as the root user.\nThis key will be used to connect remotely to the instance.\n\nYou can use standard methods to declare the ssh key to be used by pyholecli.\n\n## ssh-agent\n```bash\neval `ssh-agent`\nssh-add ~/.ssh/keys/pi_hole\n```\n\n## ssh_config\n```bash\n# ~/.ssh/config\nHost pi.hole\n User root\n IdentityFile ~/.ssh/keys/pi_hole\n```\n\n## Pass as an Argument\n```bash\npyholecli -i ~/.ssh/keys/pi_hole status\n```\n\n# Examples\nGet help about a specific command.\n```\npyholecli --help \n```\n\nGet the status of the Pi-hole services.\n```\npyholecli status\n [\u2713] DNS service is running\n [\u2713] Pi-hole blocking is Enabled\n```\n\nAdd a custom hostname to be resolved by Pi.hole.\n```\npyholecli hostname -h testing.local -i 192.168.1.100\n```\n\nRemove multiple custom hostnames.\n```\npyholecli remove-hostnames -h redis.localhost -h psql.localhost\n```\n\n# Functionality\n```\nUsage: pyholecli [--core-opts] [--subcommand-opts] ...\n\nCore options:\n\n --complete Print tab-completion candidates for given parse remainder.\n --hide=STRING Set default value of run()'s 'hide' kwarg.\n --prompt-for-login-password Request an upfront SSH-auth password prompt.\n --prompt-for-passphrase Request an upfront SSH key passphrase prompt.\n --prompt-for-sudo-password Prompt user at start of session for the sudo.password config value.\n --write-pyc Enable creation of .pyc files.\n -d, --debug Enable debug output.\n -D INT, --list-depth=INT When listing tasks, only show the first INT levels.\n -e, --echo Echo executed commands before running.\n -f STRING, --config=STRING Runtime configuration file to use.\n -F STRING, --list-format=STRING Change the display format used when listing tasks. Should be one of: flat (default), nested, json.\n -h [STRING], --help[=STRING] Show core or per-task help and exit.\n -H STRING, --hosts=STRING Comma-separated host name(s) to execute tasks against.\n -i, --identity Path to runtime SSH identity (key) file. May be given multiple times.\n -l [STRING], --list[=STRING] List available tasks, optionally limited to a namespace.\n -p, --pty Use a pty when executing shell commands.\n -S STRING, --ssh-config=STRING Path to runtime SSH config file.\n -V, --version Show version and exit.\n -w, --warn-only Warn, instead of failing, when shell commands fail.\n\nSubcommands:\n\n blacklist Blacklist a given domain.\n blacklisted-domains Get all of the custom blacklisted domains.\n chronometer Continually print the stats using the chronometer.\n disable Disable the pi.hole blacklist.\n enable Enable the pi.hole blacklist.\n hostname Add a custom hostname which the pi.hole will resolve to the given IP address.\n hostnames Print the custom hostnames defined by the pi.hole instance.\n query Query the pi.hole instance for a given FQDN.\n remove-blacklisted-domain Remove a given custom blacklisted domain.\n remove-hostname Remove a custom hostname.\n remove-whitelisted-domain Remove a given whitelisted domain.\n remove-wildcard-blacklist Remove a given wildcard blacklist.\n status Query the status of the pi.hole instance.\n tail Tail the pi.hole resolver log file.\n whitelist Whitelist a given domain.\n whitelisted-domains Get all of the custom whitelisted domains.\n wildcard-blacklist Blacklist a given domain and its subdomains.\n wildcard-blacklists Print the wildcard blacklist.\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/patrickjennings/pyholecli", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyholecli", "package_url": "https://pypi.org/project/pyholecli/", "platform": "", "project_url": "https://pypi.org/project/pyholecli/", "project_urls": { "Homepage": "https://github.com/patrickjennings/pyholecli" }, "release_url": "https://pypi.org/project/pyholecli/0.0.1/", "requires_dist": [ "fabric (==2.2.1)" ], "requires_python": "", "summary": "Remote management of a pi.hole instance.", "version": "0.0.1" }, "last_serial": 4114682, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "f427bfa53e33b76496e8db4f898e5296", "sha256": "c05a39762918809b5bcb7b54ef6d2c808fcde9174478f95199560f9fc253564f" }, "downloads": -1, "filename": "pyholecli-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f427bfa53e33b76496e8db4f898e5296", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7351, "upload_time": "2018-07-29T23:59:25", "url": "https://files.pythonhosted.org/packages/8d/bb/ab63e3d4d832a83d203f1a182d90b91152fbf71b357b40a6e0cf7ac65309/pyholecli-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0a90a000949e0a12574916e7a6db0f4", "sha256": "bcb3ff5bec2e459318dd3407f9c601bfc683c0b27fdd92965ab04c6cb9078f74" }, "downloads": -1, "filename": "pyholecli-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c0a90a000949e0a12574916e7a6db0f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5492, "upload_time": "2018-07-29T23:59:26", "url": "https://files.pythonhosted.org/packages/49/ce/b2503941e99204fe6139b6ebaacc161b31ce1387e8c042549a7f6f1463ca/pyholecli-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f427bfa53e33b76496e8db4f898e5296", "sha256": "c05a39762918809b5bcb7b54ef6d2c808fcde9174478f95199560f9fc253564f" }, "downloads": -1, "filename": "pyholecli-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f427bfa53e33b76496e8db4f898e5296", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7351, "upload_time": "2018-07-29T23:59:25", "url": "https://files.pythonhosted.org/packages/8d/bb/ab63e3d4d832a83d203f1a182d90b91152fbf71b357b40a6e0cf7ac65309/pyholecli-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0a90a000949e0a12574916e7a6db0f4", "sha256": "bcb3ff5bec2e459318dd3407f9c601bfc683c0b27fdd92965ab04c6cb9078f74" }, "downloads": -1, "filename": "pyholecli-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c0a90a000949e0a12574916e7a6db0f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5492, "upload_time": "2018-07-29T23:59:26", "url": "https://files.pythonhosted.org/packages/49/ce/b2503941e99204fe6139b6ebaacc161b31ce1387e8c042549a7f6f1463ca/pyholecli-0.0.1.tar.gz" } ] }