mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-02-20 03:02:29 +01:00
The $OSTYPE variable is set at ZSH compile time and can be safely used to determine the OS of the system. e.g. darwin (os x)
90 lines
2.2 KiB
Bash
90 lines
2.2 KiB
Bash
# To use: add a .jira-url file in the base of your project
|
|
# You can also set JIRA_URL in your .zshrc or put .jira-url in your home directory
|
|
# .jira-url in the current directory takes precedence
|
|
#
|
|
# If you use Rapid Board, set:
|
|
#JIRA_RAPID_BOARD="true"
|
|
# in you .zshrc
|
|
#
|
|
# Setup: cd to/my/project
|
|
# echo "https://name.jira.com" >> .jira-url
|
|
# Usage: jira # opens a new issue
|
|
# jira ABC-123 # Opens an existing issue
|
|
open_jira_issue () {
|
|
local open_cmd
|
|
if [[ "$OSTYPE" = darwin* ]]; then
|
|
open_cmd='open'
|
|
else
|
|
open_cmd='xdg-open'
|
|
fi
|
|
|
|
if [ -f .jira-url ]; then
|
|
jira_url=$(cat .jira-url)
|
|
elif [ -f ~/.jira-url ]; then
|
|
jira_url=$(cat ~/.jira-url)
|
|
elif [[ "x$JIRA_URL" != "x" ]]; then
|
|
jira_url=$JIRA_URL
|
|
else
|
|
echo "JIRA url is not specified anywhere."
|
|
return 1
|
|
fi
|
|
|
|
if [ -f .jira-prefix ]; then
|
|
jira_prefix=$(cat .jira-prefix)
|
|
elif [ -f ~/.jira-prefix ]; then
|
|
jira_prefix=$(cat ~/.jira-prefix)
|
|
else
|
|
jira_prefix=""
|
|
fi
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "Opening new issue"
|
|
$open_cmd "${jira_url}/secure/CreateIssue!default.jspa"
|
|
elif [[ "$1" = "assigned" || "$1" = "reported" ]]; then
|
|
jira_query $@
|
|
else
|
|
echo "Opening issue #$1"
|
|
if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then
|
|
$open_cmd "$jira_url/issues/$jira_prefix$1"
|
|
else
|
|
$open_cmd "$jira_url/browse/$jira_prefix$1"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
jira_name () {
|
|
if [[ -z "$1" ]]; then
|
|
if [[ "x${JIRA_NAME}" != "x" ]]; then
|
|
jira_name=${JIRA_NAME}
|
|
else
|
|
echo "JIRA_NAME not specified"
|
|
return 1
|
|
fi
|
|
else
|
|
jira_name=$@
|
|
fi
|
|
}
|
|
|
|
jira_query () {
|
|
verb="$1"
|
|
if [[ "${verb}" = "reported" ]]; then
|
|
lookup=reporter
|
|
preposition=by
|
|
elif [[ "${verb}" = "assigned" ]]; then
|
|
lookup=assignee
|
|
preposition=to
|
|
else
|
|
echo "not a valid lookup $verb"
|
|
return 1
|
|
fi
|
|
shift 1
|
|
jira_name $@
|
|
if [[ $? = 1 ]]; then
|
|
return 1
|
|
fi
|
|
echo "Browsing issues ${verb} ${preposition} ${jira_name}"
|
|
$open_cmd "${jira_url}/secure/IssueNavigator.jspa?reset=true&jqlQuery=${lookup}+%3D+%22${jira_name}%22+AND+resolution+%3D+unresolved+ORDER+BY+priority+DESC%2C+created+ASC"
|
|
}
|
|
|
|
alias jira='open_jira_issue'
|
|
|