Eric Zhang 2 лет назад
Родитель
Сommit
257c9a7578
4 измененных файлов с 269 добавлено и 13 удалено
  1. 11 13
      README.md
  2. 201 0
      snap-constraints.txt
  3. 5 0
      snap-requirements.txt
  4. 52 0
      snap/snapcraft.yaml

+ 11 - 13
README.md

@@ -2,32 +2,30 @@
 
 A certbot dns plugin to obtain certificates using dnspod.
 
-
 ## Obtain API Token
 [https://www.dnspod.cn/console/user/security](https://www.dnspod.cn/console/user/security)
 
-
 ## Install
 
+Pip:
+
 ```bash
-git clone https://github.com/tengattack/certbot-dns-dnspod
-cd certbot-dns-dnspod
-sudo python setup.py install
+sudo pip install git+https://github.com/tengattack/certbot-dns-dnspod.git
 ```
 
-If you are using `certbot-auto`, you should run `virtualenv` first:
+Snap:
 
 ```bash
-# CentOS 7
-virtualenv --no-site-packages --python "python2.7" "/opt/eff.org/certbot/venv"
-/opt/eff.org/certbot/venv/bin/python2.7 setup.py install
+sudo snap install certbot-dns-dnspod
+sudo snap set certbot trust-plugin-with-root=ok
+sudo snap connect certbot:plugin certbot-dns-dnspod
 ```
 
 ## Credentials File
 
 ```ini
-certbot_dns_dnspod:dns_dnspod_api_id = 12345
-certbot_dns_dnspod:dns_dnspod_api_token = 1234567890abcdef1234567890abcdef
+dns_dnspod_api_id = 12345
+dns_dnspod_api_token = 1234567890abcdef1234567890abcdef
 ```
 
 ```bash
@@ -38,8 +36,8 @@ chmod 600 /path/to/credentials.ini
 ## Obtain Certificates
 
 ```bash
-certbot certonly -a certbot-dns-dnspod:dns-dnspod \
-    --certbot-dns-dnspod:dns-dnspod-credentials /path/to/credentials.ini \
+certbot certonly -a dns-dnspod \
+    --dns-dnspod-credentials /path/to/credentials.ini \
     -d example.com \
     -d "*.example.com"
 ```

+ 201 - 0
snap-constraints.txt

@@ -0,0 +1,201 @@
+# This file was generated by tools/pinning/current/repin.sh and can be updated using
+# that script.
+#
+# It is normally used as constraints to pip, however, it has the name
+# requirements.txt so that is scanned by GitHub. See
+# https://docs.github.com/en/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems
+# for more info.
+alabaster==0.7.12; python_version >= "3.6"
+apacheconfig==0.3.2; python_version >= "3.6"
+appdirs==1.4.4; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0"
+appnope==0.1.2; python_version == "3.6" and sys_platform == "darwin" or python_version >= "3.7" and sys_platform == "darwin"
+astroid==2.8.6; python_version >= "3.6" and python_version < "4.0"
+atomicwrites==1.4.0; python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.4.0"
+attrs==21.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+awscli==1.22.11; python_version >= "3.6"
+azure-devops==6.0.0b4; python_version >= "3.6"
+babel==2.9.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0"
+backcall==0.2.0; python_version == "3.6" or python_version >= "3.7"
+bcrypt==3.2.0; python_version >= "3.6"
+beautifulsoup4==4.10.0; python_full_version > "3.0.0" and python_version >= "3.6" or python_version >= "3.6" and python_version < "4.0" and python_full_version > "3.0.0"
+bleach==4.1.0; python_version >= "3.6"
+boto3==1.20.11; python_version >= "3.6"
+botocore==1.23.11; python_version >= "3.6"
+cachecontrol==0.12.10; python_version >= "3.6" and python_version < "4.0"
+cached-property==1.5.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
+cachetools==4.2.4; python_version >= "3.5" and python_version < "4.0" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6")
+cachy==0.3.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0"
+certifi==2021.10.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_version >= "3.6"
+cffi==1.15.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0" or python_version >= "3.6"
+charset-normalizer==2.0.7; python_full_version >= "3.6.0" and python_version >= "3.6"
+cleo==1.0.0a4; python_version >= "3.6" and python_version < "4.0"
+cloudflare==2.8.15; python_version >= "3.6"
+colorama==0.4.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or python_full_version >= "3.5.0" and python_version >= "3.6" and sys_platform == "win32" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" and sys_platform == "win32" or python_version >= "3.6" and python_version < "4.0" and sys_platform == "win32" and python_full_version >= "3.5.0" or python_version >= "3.6" and python_full_version < "3.0.0" and platform_system == "Windows" or python_version >= "3.6" and python_full_version >= "3.5.0" and platform_system == "Windows" or python_version == "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or python_version == "3.6" and sys_platform == "win32" and python_full_version >= "3.5.0" or python_version >= "3.7" and python_full_version < "3.0.0" and sys_platform == "win32" or python_version >= "3.7" and sys_platform == "win32" and python_full_version >= "3.5.0"
+configargparse==1.5.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+configobj==5.0.6; python_version >= "3.6"
+coverage==6.1.2; python_version >= "3.6" or python_version >= "3.6"
+crashtest==0.3.1; python_version >= "3.6" and python_version < "4.0"
+cryptography==36.0.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_version >= "3.6" or python_version >= "3.6" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and sys_platform == "linux"
+cython==0.29.24; (python_version >= "2.6" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0")
+dataclasses==0.8; python_version >= "3.6" and python_version < "3.7"
+decorator==5.1.0; python_version == "3.6" or python_version > "3.6" or python_version >= "3.5" or python_version >= "3.7"
+deprecated==1.2.13; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0"
+distlib==0.3.3; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0" or python_version >= "3.6"
+distro==1.6.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" or python_version >= "3.6"
+dns-lexicon==3.8.3; python_version >= "3.6" and python_version < "4.0"
+dnspython==2.1.0; python_version >= "3.6"
+docker-compose==1.26.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
+docker==4.2.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+dockerpty==0.4.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
+docopt==0.6.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
+docutils==0.15.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6" or python_version >= "3.6" and python_full_version >= "3.4.0"
+entrypoints==0.3; python_version >= "3.6" and python_version < "4.0"
+execnet==1.9.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+fabric==2.6.0; python_version >= "3.6"
+filelock==3.4.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0" or python_version >= "3.6" and python_version < "4.0"
+google-api-core==2.2.2; python_version >= "3.6"
+google-api-python-client==2.31.0; python_version >= "3.6"
+google-auth-httplib2==0.1.0; python_version >= "3.6"
+google-auth==2.3.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6"
+googleapis-common-protos==1.53.0; python_version >= "3.6"
+html5lib==1.1; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0"
+httplib2==0.20.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
+idna==3.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_version >= "3.6" and python_version < "4.0"
+imagesize==1.3.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0"
+importlib-metadata==1.7.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.8" or python_version >= "3.6" and python_version < "3.8" and python_full_version >= "3.5.0"
+importlib-resources==5.4.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.7" or python_version >= "3.6" and python_version < "3.7" and python_full_version >= "3.4.0"
+iniconfig==1.1.1; python_version >= "3.6"
+invoke==1.6.0; python_version >= "3.6"
+ipdb==0.13.9; python_version >= "3.6"
+ipython-genutils==0.2.0
+ipython==7.16.1; python_version == "3.6"
+ipython==7.29.0; python_version >= "3.7"
+isodate==0.6.0; python_version >= "3.6"
+isort==5.8.0; python_version >= "3.6" and python_version < "4.0"
+jedi==0.18.1; python_version == "3.6" or python_version >= "3.7"
+jeepney==0.7.1; python_version >= "3.6" and python_version < "4.0" and sys_platform == "linux"
+jinja2==3.0.3; python_version >= "3.6" or python_version >= "3.6"
+jmespath==0.10.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6"
+josepy==1.9.0; python_version >= "3.6"
+jsonlines==2.0.0; python_version >= "3.6"
+jsonpickle==2.0.0; python_version >= "3.6"
+jsonschema==3.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
+keyring==22.3.0; python_version >= "3.6" and python_version < "4.0" or python_version >= "3.6"
+lazy-object-proxy==1.6.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.6.0"
+lockfile==0.12.2
+markupsafe==2.0.1; python_version >= "3.6"
+matplotlib-inline==0.1.3; python_version >= "3.7"
+mccabe==0.6.1; python_version >= "3.6" and python_version < "4.0"
+mock==4.0.3; python_version >= "3.6"
+msgpack==1.0.2; python_version >= "3.6" and python_version < "4.0"
+msrest==0.6.21; python_version >= "3.6"
+mypy-extensions==0.4.3; python_version >= "3.6"
+mypy==0.910; python_version >= "3.6"
+oauth2client==4.1.3; python_version >= "3.6"
+oauthlib==3.1.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0"
+packaging==20.9; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0" or python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" or python_version >= "3.6" and python_full_version >= "3.5.0"
+paramiko==2.8.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" or python_version >= "3.6"
+parsedatetime==2.6; python_version >= "3.6"
+parso==0.8.2; python_version == "3.6"
+pathlib2==2.3.6; python_version >= "3.6"
+pexpect==4.8.0; python_version >= "3.6" and python_version < "4.0" or python_version == "3.6" and sys_platform != "win32" or python_version >= "3.7" and sys_platform != "win32"
+pickleshare==0.7.5; python_version == "3.6" or python_version >= "3.7"
+pip==21.3.1; python_version >= "3.6"
+pkginfo==1.8.1; python_version >= "3.6" and python_version < "4.0" or python_version >= "3.6"
+platformdirs==2.4.0; python_version >= "3.6" and python_version < "4.0"
+pluggy==1.0.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" or python_version >= "3.6"
+ply==3.11; python_version >= "3.6"
+poetry-core==1.1.0a6; python_version >= "3.6" and python_version < "4.0"
+poetry==1.2.0a2; python_version >= "3.6" and python_version < "4.0"
+prompt-toolkit==3.0.22; python_version == "3.6" and python_full_version >= "3.6.2" or python_version >= "3.7" and python_full_version >= "3.6.2"
+protobuf==3.19.1; python_version >= "3.6"
+ptyprocess==0.7.0; python_version >= "3.6" and python_version < "4.0"
+py==1.11.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+pyasn1-modules==0.2.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_version >= "3.6"
+pyasn1==0.4.8; python_version >= "3.6" and python_version < "4" or python_version >= "3.6"
+pycparser==2.21; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
+pygithub==1.55; python_version >= "3.6"
+pygments==2.10.0; python_version >= "3.6" or python_version == "3.6" or python_version >= "3.7"
+pyjwt==2.3.0; python_version >= "3.6"
+pylev==1.4.0; python_version >= "3.6" and python_version < "4.0"
+pylint==2.11.1; python_version >= "3.6" and python_version < "4.0"
+pynacl==1.4.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0"
+pynsist==2.7; python_version >= "3.6"
+pyopenssl==21.0.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6"
+pyparsing==3.0.6; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" or python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0"
+pypiwin32==223; sys_platform == "win32" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6")
+pyrfc3339==1.1; python_version >= "3.6"
+pyrsistent==0.18.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
+pytest-cov==3.0.0; python_version >= "3.6" or python_version >= "3.6"
+pytest-forked==1.3.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+pytest-xdist==2.4.0; python_version >= "3.6" or python_version >= "3.6"
+pytest==6.2.5; python_version >= "3.6" or python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+python-augeas==1.1.0; python_version >= "3.6"
+python-dateutil==2.8.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6"
+python-digitalocean==1.17.0; python_version >= "3.6"
+python-dotenv==0.19.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
+pytz==2021.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0" or python_version >= "3.6"
+pywin32-ctypes==0.2.0; python_version >= "3.6" and python_version < "4.0" and sys_platform == "win32"
+pywin32==302; sys_platform == "win32" and python_version >= "3.6" or sys_platform == "win32" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6")
+pyyaml==5.4.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.6.0"
+readme-renderer==30.0; python_version >= "3.6"
+requests-download==0.1.2; python_version >= "3.6"
+requests-file==1.5.1; python_version >= "3.6" and python_version < "4.0"
+requests-oauthlib==1.3.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0"
+requests-toolbelt==0.9.1; python_version >= "3.6" and python_version < "4.0" or python_version >= "3.6" or python_version >= "3.6"
+requests==2.26.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.6.0"
+rfc3986==1.5.0; python_version >= "3.6"
+rsa==4.7.2; python_version >= "3.6" and python_version < "4" or python_version >= "3.5" and python_version < "4" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6")
+s3transfer==0.5.0; python_version >= "3.6"
+secretstorage==3.3.1; python_version >= "3.6" and python_version < "4.0" and sys_platform == "linux"
+semantic-version==2.8.5; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
+setuptools-rust==0.12.1; python_version >= "3.6"
+setuptools==59.2.0; python_version >= "3.6" or python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" or python_full_version >= "3.4.0" and python_version >= "3.6" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_version == "3.6" or python_version >= "3.7" or python_version >= "3.6" and python_version < "4.0"
+shellingham==1.4.0; python_version >= "3.6" and python_version < "4.0"
+six==1.16.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" or python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" or python_full_version >= "3.6.0" and python_version >= "3.6" or python_full_version >= "3.3.0" and python_version >= "3.6" or python_version >= "3.6" and python_full_version >= "3.5.0" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.3.0" or python_version == "3.6" and python_full_version < "3.0.0" or python_version == "3.6" and python_full_version >= "3.3.0"
+snowballstemmer==2.2.0; python_version >= "3.6"
+soupsieve==2.3.1; python_full_version > "3.0.0" and python_version >= "3.6"
+sphinx-rtd-theme==1.0.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0"
+sphinx==4.3.0; python_version >= "3.6" or python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0"
+sphinxcontrib-applehelp==1.0.2; python_version >= "3.6"
+sphinxcontrib-devhelp==1.0.2; python_version >= "3.6"
+sphinxcontrib-htmlhelp==2.0.0; python_version >= "3.6"
+sphinxcontrib-jsmath==1.0.1; python_version >= "3.6"
+sphinxcontrib-qthelp==1.0.3; python_version >= "3.6"
+sphinxcontrib-serializinghtml==1.1.5; python_version >= "3.6"
+texttable==1.6.4; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
+tldextract==3.1.2; python_version >= "3.6" and python_version < "4.0"
+toml==0.10.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6" or python_version == "3.6" and python_full_version < "3.0.0" or python_version > "3.6" and python_full_version < "3.0.0" or python_version == "3.6" and python_full_version >= "3.3.0" or python_version > "3.6" and python_full_version >= "3.3.0" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.3.0" or python_version >= "3.6" and python_full_version >= "3.5.0"
+tomli==1.2.2; python_version >= "3.6"
+tomlkit==0.7.2; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0"
+tox==3.24.4; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0"
+tqdm==4.62.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.4.0"
+traitlets==4.3.3
+twine==3.3.0; python_version >= "3.6"
+typed-ast==1.4.3; python_version >= "3.6" and python_version < "3.8" or implementation_name == "cpython" and python_version < "3.8" and python_version >= "3.6"
+types-cryptography==3.3.8; python_version >= "3.6"
+types-enum34==1.1.1; python_version >= "3.6"
+types-ipaddress==1.0.1; python_version >= "3.6"
+types-mock==4.0.3; python_version >= "3.6"
+types-pyopenssl==21.0.0; python_version >= "3.6"
+types-pyrfc3339==1.1.0; python_version >= "3.6"
+types-python-dateutil==2.8.2; python_version >= "3.6"
+types-pytz==2021.3.0; python_version >= "3.6"
+types-requests==2.26.0; python_version >= "3.6"
+types-setuptools==57.4.2; python_version >= "3.6"
+types-six==1.16.2; python_version >= "3.6"
+typing-extensions==4.0.0; python_version >= "3.6" or python_version >= "3.6" and python_version < "3.10"
+uritemplate==4.1.1; python_version >= "3.6"
+urllib3==1.26.7; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "3.6" or python_full_version >= "3.5.0" and python_version < "4" and python_version >= "3.6"
+virtualenv==20.4.4; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0" or python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0"
+wcwidth==0.2.5; python_version == "3.6" and python_full_version >= "3.6.2"
+webencodings==0.5.1; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0" or python_version >= "3.6"
+websocket-client==0.59.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" or python_full_version >= "3.5.0" and python_version >= "3.6"
+wheel==0.37.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0"
+wrapt==1.13.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_version >= "3.6" and python_full_version >= "3.5.0" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0"
+yarg==0.1.9; python_version >= "3.6"
+zipp==3.6.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.8" or python_version >= "3.6" and python_version < "3.8" and python_full_version >= "3.5.0" or python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.7" or python_version >= "3.6" and python_version < "3.7" and python_full_version >= "3.4.0"
+zope.component==5.0.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+zope.event==4.5.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+zope.hookable==5.1.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+zope.interface==5.4.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"

+ 5 - 0
snap-requirements.txt

@@ -0,0 +1,5 @@
+acme>=0.21.1
+dns-lexicon>=3.8.3
+mock>=4.0.3
+setuptools>=59.2.0
+zope.interface>=5.4.0

+ 52 - 0
snap/snapcraft.yaml

@@ -0,0 +1,52 @@
+name: certbot-dns-dnspod
+summary: DNSPod DNS Authenticator plugin for Certbot
+version: '0.24.1'
+description: A certbot dns plugin to obtain certificates using dnspod. For information on how to set up, go to the GitHub page.
+website: https://github.com/ericzhang456/certbot-dns-dnspod # TODO (after merge): change url to https://github.com/tengattack/certbot-dns-dnspod 
+license: Apache-2.0
+confinement: strict
+grade: stable
+base: core20
+adopt-info: certbot-dns-dnspod
+architectures:
+  - build-on: arm64
+  - build-on: amd64
+parts:
+  certbot-dns-dnspod:
+    plugin: python
+    source: .
+    override-pull: |
+        snapcraftctl pull
+        snapcraftctl set-version `grep ^version $SNAPCRAFT_PART_SRC/setup.py | cut -f2 -d= | tr -d "'[:space:]"`
+    build-environment:
+      - PIP_CONSTRAINT: $SNAPCRAFT_PART_SRC/snap-constraints.txt
+      - SNAP_BUILD: "True" 
+    requirements: 
+      - snap-requirements.txt
+    build-packages:
+      - gcc
+      - git
+      - build-essential
+      - libssl-dev
+      - libffi-dev
+      - python3-dev
+  certbot-metadata:
+    plugin: dump
+    source: .
+    stage: [setup.py, certbot-shared]
+    override-pull: |
+        snapcraftctl pull
+        mkdir -p $SNAPCRAFT_PART_SRC/certbot-shared
+
+slots:
+  certbot:
+    interface: content
+    content: certbot-1
+    read:
+      - $SNAP/lib/python3.8/site-packages
+
+plugs:
+  certbot-metadata:
+    interface: content
+    content: metadata-1
+    target: $SNAP/certbot-shared