File: report-issue.sh

package info (click to toggle)
docker.io 20.10.24%2Bdfsg1-1%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bookworm-proposed-updates
  • size: 60,824 kB
  • sloc: sh: 5,621; makefile: 593; ansic: 179; python: 162; asm: 7
file content (103 lines) | stat: -rwxr-xr-x 2,035 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/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}"