forked from ungleich-public/cdist
		
	superseed cdist-dir-push with cdist-dir
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								d8cb6d58f7
							
						
					
				
			
			
				commit
				
					
						5d881f226a
					
				
			
		
					 1 changed files with 20 additions and 14 deletions
				
			
		| 
						 | 
					@ -19,30 +19,36 @@
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Push a directory to a target, both sides have the same name (i.e. explorers)
 | 
					# Push a directory to a target, both sides have the same name (i.e. explorers)
 | 
				
			||||||
 | 
					# or
 | 
				
			||||||
 | 
					# Pull a directory from a target, both sides have the same name (i.e. explorers)
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
. cdist-config
 | 
					. cdist-config
 | 
				
			||||||
if [ $# -lt 3 ]; then
 | 
					if [ $# -lt 3 ]; then
 | 
				
			||||||
   __cdist_usage "<target host> <local src dir> <remote dst dir>"
 | 
					   __cdist_usage "<target host> <push|pull> <src dir> <dst dir>"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
set -ue
 | 
					set -ue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__cdist_target_host="$1"; shift
 | 
					__cdist_target_host="$1"; shift
 | 
				
			||||||
__cdist_local_src_dir="$1"; shift
 | 
					__cdist_action="$1"; shift
 | 
				
			||||||
__cdist_remote_dst_dir="$1"; shift
 | 
					
 | 
				
			||||||
 | 
					__cdist_src_dir="$1"; shift
 | 
				
			||||||
 | 
					__cdist_dst_dir="$1"; shift
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# This will be the destination directory, so no subdirectories
 | 
					# This will be the destination directory, so no subdirectories
 | 
				
			||||||
# of the same name are created, if the directory is already existing
 | 
					# of the same name are created, if the directory is already existing
 | 
				
			||||||
__cdist_remote_top_dir="${__cdist_remote_dst_dir%/*}"
 | 
					__cdist_top_dir="${__cdist_dst_dir%/*}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# The directory name itself
 | 
					if [ "$__cdist_action" = "push" ]; then
 | 
				
			||||||
__cdist_remote_base_dir="${__cdist_remote_dst_dir##*/}"
 | 
					   ssh "${__cdist_remote_user}@${__cdist_target_host}" \
 | 
				
			||||||
 | 
					      "mkdir -p \"${__cdist_dst_dir}\""
 | 
				
			||||||
# Create remote destination directory
 | 
					   scp -r "$__cdist_src_dir" \
 | 
				
			||||||
ssh "${__cdist_remote_user}@${__cdist_target_host}" \
 | 
					      "${__cdist_remote_user}@${__cdist_target_host}:${__cdist_top_dir}"
 | 
				
			||||||
   "mkdir -p \"${__cdist_remote_dst_dir}\""
 | 
					elif [ "$__cdist_action" = "pull" ]; then
 | 
				
			||||||
 | 
					   mkdir -p "${__cdist_dst_dir}"
 | 
				
			||||||
# The actual transfer
 | 
					   scp -r "${__cdist_remote_user}@${__cdist_target_host}:${__cdist_src_dir}" \
 | 
				
			||||||
scp -r "$__cdist_local_src_dir" \
 | 
					      "${__cdist_top_dir}"
 | 
				
			||||||
   "${__cdist_remote_user}@${__cdist_target_host}:${__cdist_remote_top_dir}"
 | 
					else
 | 
				
			||||||
 | 
					   __cdist_exit_err "Unknown action $__cdist_action"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue