mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2024-05-11 05:55:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			91 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'
 | |
| 
 |