| 
									
										
										
										
											2024-04-17 15:11:06 +01:00
										 |  |  | # | 
					
						
							|  |  |  | # Copyright 2013 Allison Karlitskaya | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # This library is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  | # it under the terms of the GNU Lesser General Public License as | 
					
						
							|  |  |  | # published by the Free Software Foundation; either version 2.1 of the | 
					
						
							|  |  |  | # licence, or (at your option) any later version. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # This is distributed in the hope that it will be useful, but WITHOUT | 
					
						
							|  |  |  | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 
					
						
							|  |  |  | # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public | 
					
						
							|  |  |  | # License for more details. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # You should have received a copy of the GNU Lesser General Public License | 
					
						
							|  |  |  | # along with this library; if not, see <http://www.gnu.org/licenses/>. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # SPDX-License-Identifier: LGPL-2.1-or-later | 
					
						
							| 
									
										
										
										
											2013-07-14 19:43:19 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-16 13:51:44 +01:00
										 |  |  | # shellcheck shell=bash | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-07-14 19:43:19 -04:00
										 |  |  | # Check for bash | 
					
						
							|  |  |  | [ -z "$BASH_VERSION" ] && return | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #################################################################################################### | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __app() { | 
					
						
							| 
									
										
										
										
											2024-04-17 15:08:43 +01:00
										 |  |  |   local gapplication_binary | 
					
						
							|  |  |  |   gapplication_binary="$1" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-07-14 19:43:19 -04:00
										 |  |  |   case "${COMP_CWORD}" in | 
					
						
							|  |  |  |     1) | 
					
						
							| 
									
										
										
										
											2024-04-16 14:09:36 +01:00
										 |  |  |       # shellcheck disable=SC2207 | 
					
						
							| 
									
										
										
										
											2013-07-14 19:43:19 -04:00
										 |  |  |       COMPREPLY=($(compgen -W "help version list-apps launch action list-actions" -- "${COMP_WORDS[1]}")) | 
					
						
							|  |  |  |       return 0 | 
					
						
							|  |  |  |       ;; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     2) | 
					
						
							|  |  |  |       case "${COMP_WORDS[1]}" in | 
					
						
							|  |  |  |         launch|action|list-actions) | 
					
						
							| 
									
										
										
										
											2024-04-16 14:09:36 +01:00
										 |  |  |           # shellcheck disable=SC2207 | 
					
						
							| 
									
										
										
										
											2024-04-17 15:08:43 +01:00
										 |  |  |           COMPREPLY=($(compgen -W "$("$gapplication_binary" list-apps)" -- "${COMP_WORDS[2]}")) | 
					
						
							| 
									
										
										
										
											2013-07-14 19:43:19 -04:00
										 |  |  |           return 0 | 
					
						
							|  |  |  |           ;; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         *) | 
					
						
							|  |  |  |           COMPREPLY=() | 
					
						
							|  |  |  |           return 0 | 
					
						
							|  |  |  |           ;; | 
					
						
							|  |  |  |       esac | 
					
						
							|  |  |  |       ;; | 
					
						
							|  |  |  |   esac | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Otherwise, what we will do is based on the command in ${COMP_WORDS[1]} | 
					
						
							|  |  |  |   case "${COMP_WORDS[1]}" in | 
					
						
							|  |  |  |     action) | 
					
						
							|  |  |  |       # Word 3 is the action name.  This is the only one we can help with. | 
					
						
							|  |  |  |       if [ "${COMP_CWORD}" == 3 ]; then | 
					
						
							| 
									
										
										
										
											2024-04-16 14:09:36 +01:00
										 |  |  |         # shellcheck disable=SC2207 | 
					
						
							| 
									
										
										
										
											2024-04-17 15:08:43 +01:00
										 |  |  |         COMPREPLY=($(compgen -W "$("$gapplication_binary" list-actions "${COMP_WORDS[2]}")" -- "${COMP_WORDS[3]}")) | 
					
						
							| 
									
										
										
										
											2013-07-14 19:43:19 -04:00
										 |  |  |         return 0 | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         COMPREPLY=() | 
					
						
							|  |  |  |         return 0 | 
					
						
							|  |  |  |       fi | 
					
						
							|  |  |  |       ;; | 
					
						
							|  |  |  |     launch) | 
					
						
							|  |  |  |       # Filenames... | 
					
						
							| 
									
										
										
										
											2024-04-16 14:09:36 +01:00
										 |  |  |       # shellcheck disable=SC2207 | 
					
						
							| 
									
										
										
										
											2013-07-14 19:43:19 -04:00
										 |  |  |       COMPREPLY=($(compgen -A file "${COMP_WORDS[COMP_CWORD]}")) | 
					
						
							|  |  |  |       return 0 | 
					
						
							|  |  |  |       ;; | 
					
						
							|  |  |  |     *) | 
					
						
							|  |  |  |       # Nothing else should be out this far... | 
					
						
							|  |  |  |       COMPREPLY=() | 
					
						
							|  |  |  |       return 0 | 
					
						
							|  |  |  |   esac | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #################################################################################################### | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | complete -F __app gapplication |