mirror of
				https://github.com/frebib/dotfiles.git
				synced 2024-06-14 12:57:23 +00:00 
			
		
		
		
	Improve dsh and drsh argument parsing
This commit is contained in:
		
							
								
								
									
										20
									
								
								aliases
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								aliases
									
									
									
									
									
								
							@@ -158,7 +158,7 @@ alias dalpine='docker run -ti --rm alpine /bin/sh'
 | 
				
			|||||||
alias drm-stopped='docker container prune'
 | 
					alias drm-stopped='docker container prune'
 | 
				
			||||||
alias drmi-untag='docker image prune'
 | 
					alias drmi-untag='docker image prune'
 | 
				
			||||||
alias dsh='_CMD=dsh _dsh exec'
 | 
					alias dsh='_CMD=dsh _dsh exec'
 | 
				
			||||||
alias drsh='_CMD=drsh _dsh "run --rm"'
 | 
					alias drsh='_CMD=drsh _dsh run --rm'
 | 
				
			||||||
_dsh() {
 | 
					_dsh() {
 | 
				
			||||||
    if [ $# -lt 2 ]; then
 | 
					    if [ $# -lt 2 ]; then
 | 
				
			||||||
        echo "Usage: ${_CMD:-$0} [user@]container [program [args]]" >&2
 | 
					        echo "Usage: ${_CMD:-$0} [user@]container [program [args]]" >&2
 | 
				
			||||||
@@ -166,13 +166,21 @@ _dsh() {
 | 
				
			|||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    local dowhat="$1"
 | 
					    local dowhat="$1"
 | 
				
			||||||
    local user=$(echo "$2" | cut -d'@' -f1 -s)
 | 
					    local docker_args=()
 | 
				
			||||||
    local prog="${@:3:$#}"
 | 
					    shift
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    while [ "${1:0:1}" = '-' ]; do
 | 
				
			||||||
 | 
					        docker_args+=("$1")
 | 
				
			||||||
 | 
					        shift
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    local user="$(echo "$1" | cut -d'@' -f1 -s)"
 | 
				
			||||||
 | 
					    local prog="${@:2:$#}"
 | 
				
			||||||
    local usercmd=""
 | 
					    local usercmd=""
 | 
				
			||||||
    if [ -z "$user" ]; then
 | 
					    if [ -z "$user" ]; then
 | 
				
			||||||
        host="$2"
 | 
					        host="$1"
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        host=`echo $2 | cut -d'@' -f2 -s`
 | 
					        host=`echo $1 | cut -d'@' -f2 -s`
 | 
				
			||||||
        usercmd="--user=$user "
 | 
					        usercmd="--user=$user "
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -196,7 +204,7 @@ _dsh() {
 | 
				
			|||||||
        fi
 | 
					        fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    eval "docker $dowhat -ti $usercmd$host $prog"
 | 
					    docker $dowhat ${docker_args[@]} -ti $usercmd $host $(xargs <<< $prog)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
alias dm='docker-machine'
 | 
					alias dm='docker-machine'
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user