| #!/bin/sh |
| |
| # This is a convenience script for reporting issues that include a base |
| # template of information. See https://github.com/docker/docker/pull/8845 |
| |
| set -e |
| |
| DOCKER_ISSUE_URL=${DOCKER_ISSUE_URL:-"https://github.com/docker/docker/issues/new"} |
| DOCKER_ISSUE_NAME_PREFIX=${DOCKER_ISSUE_NAME_PREFIX:-"Report: "} |
| DOCKER=${DOCKER:-"docker"} |
| DOCKER_COMMAND="${DOCKER}" |
| export DOCKER_COMMAND |
| |
| # pulled from https://gist.github.com/cdown/1163649 |
| function urlencode() { |
| # urlencode <string> |
| |
| local length="${#1}" |
| for (( i = 0; i < length; i++ )); do |
| local c="${1:i:1}" |
| case $c in |
| [a-zA-Z0-9.~_-]) printf "$c" ;; |
| *) printf '%%%02X' "'$c" |
| esac |
| done |
| } |
| |
| function template() { |
| # this should always match the template from CONTRIBUTING.md |
| cat <<- EOM |
| Description of problem: |
| |
| |
| \`docker version\`: |
| `${DOCKER_COMMAND} -D version` |
| |
| |
| \`docker info\`: |
| `${DOCKER_COMMAND} -D info` |
| |
| |
| \`uname -a\`: |
| `uname -a` |
| |
| |
| Environment details (AWS, VirtualBox, physical, etc.): |
| |
| |
| How reproducible: |
| |
| |
| Steps to Reproduce: |
| 1. |
| 2. |
| 3. |
| |
| |
| Actual Results: |
| |
| |
| Expected Results: |
| |
| |
| Additional info: |
| |
| |
| EOM |
| } |
| |
| function format_issue_url() { |
| if [ ${#@} -ne 2 ] ; then |
| return 1 |
| fi |
| local issue_name=$(urlencode "${DOCKER_ISSUE_NAME_PREFIX}${1}") |
| local issue_body=$(urlencode "${2}") |
| echo "${DOCKER_ISSUE_URL}?title=${issue_name}&body=${issue_body}" |
| } |
| |
| |
| echo -ne "Do you use \`sudo\` to call docker? [y|N]: " |
| read -r -n 1 use_sudo |
| echo "" |
| |
| if [ "x${use_sudo}" = "xy" -o "x${use_sudo}" = "xY" ]; then |
| export DOCKER_COMMAND="sudo ${DOCKER}" |
| fi |
| |
| echo -ne "Title of new issue?: " |
| read -r issue_title |
| echo "" |
| |
| issue_url=$(format_issue_url "${issue_title}" "$(template)") |
| |
| if which xdg-open 2>/dev/null >/dev/null ; then |
| echo -ne "Would like to launch this report in your browser? [Y|n]: " |
| read -r -n 1 launch_now |
| echo "" |
| |
| if [ "${launch_now}" != "n" -a "${launch_now}" != "N" ]; then |
| xdg-open "${issue_url}" |
| fi |
| fi |
| |
| echo "If you would like to manually open the url, you can open this link if your browser: ${issue_url}" |
| |