#!/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 setvar DOCKER_ISSUE_URL = ${DOCKER_ISSUE_URL:-"https://github.com/docker/docker/issues/new"} setvar DOCKER_ISSUE_NAME_PREFIX = ${DOCKER_ISSUE_NAME_PREFIX:-"Report: "} setvar DOCKER = ${DOCKER:-"docker"} setvar DOCKER_COMMAND = "${DOCKER}" export DOCKER_COMMAND # pulled from https://gist.github.com/cdown/1163649 proc urlencode { # urlencode 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 } proc template { # this should always match the template from CONTRIBUTING.md cat <<< """ 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: """ } proc format_issue_url { if test ${#@} -ne 2 { return 1 } 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 test "x${use_sudo}" = "xy" -o "x${use_sudo}" = "xY" { export DOCKER_COMMAND="sudo ${DOCKER}" } echo -ne "Title of new issue?: " read -r issue_title echo "" setvar issue_url = $(format_issue_url "${issue_title}" "$(template)") if which xdg-open 2>/dev/null >/dev/null { echo -ne "Would like to launch this report in your browser? [Y|n]: " read -r -n 1 launch_now echo "" if test ${launch_now} != "n" -a ${launch_now} != "N" { xdg-open ${issue_url} } } echo "If you would like to manually open the url, you can open this link if your browser: ${issue_url}"