| 
									
										
										
										
											2011-02-23 15:32:17 +01:00
										 |  |  | #!/bin/sh | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2011-02-23 15:42:14 +01:00
										 |  |  | # 2011 Nico Schottelius (nico-cdist at schottelius.org) | 
					
						
							| 
									
										
										
										
											2011-02-23 15:32:17 +01:00
										 |  |  | # | 
					
						
							|  |  |  | # This file is part of cdist. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # cdist is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  | # it under the terms of the GNU General Public License as published by | 
					
						
							|  |  |  | # the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  | # (at your option) any later version. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # cdist 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 General Public License for more details. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  | # along with cdist. If not, see <http://www.gnu.org/licenses/>. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2011-02-23 15:42:14 +01:00
										 |  |  | # Push a directory to a target, both sides have the same name (i.e. explorers) | 
					
						
							| 
									
										
										
										
											2011-02-23 15:50:33 +01:00
										 |  |  | # or | 
					
						
							|  |  |  | # Pull a directory from a target, both sides have the same name (i.e. explorers) | 
					
						
							| 
									
										
										
										
											2011-02-23 15:32:17 +01:00
										 |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | . cdist-config | 
					
						
							| 
									
										
										
										
											2011-02-23 15:42:14 +01:00
										 |  |  | if [ $# -lt 3 ]; then | 
					
						
							| 
									
										
										
										
											2011-02-23 15:50:33 +01:00
										 |  |  |    __cdist_usage "<target host> <push|pull> <src dir> <dst dir>" | 
					
						
							| 
									
										
										
										
											2011-02-23 15:32:17 +01:00
										 |  |  | fi | 
					
						
							|  |  |  | set -ue | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __cdist_target_host="$1"; shift | 
					
						
							| 
									
										
										
										
											2011-02-23 15:50:33 +01:00
										 |  |  | __cdist_action="$1"; shift | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __cdist_src_dir="$1"; shift | 
					
						
							|  |  |  | __cdist_dst_dir="$1"; shift | 
					
						
							| 
									
										
										
										
											2011-02-23 15:32:17 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-23 15:42:14 +01:00
										 |  |  | # This will be the destination directory, so no subdirectories | 
					
						
							|  |  |  | # of the same name are created, if the directory is already existing | 
					
						
							| 
									
										
										
										
											2011-02-23 15:50:33 +01:00
										 |  |  | __cdist_top_dir="${__cdist_dst_dir%/*}" | 
					
						
							| 
									
										
										
										
											2011-02-23 15:32:17 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-23 15:50:33 +01:00
										 |  |  | if [ "$__cdist_action" = "push" ]; then | 
					
						
							|  |  |  |    ssh "${__cdist_remote_user}@${__cdist_target_host}" \ | 
					
						
							|  |  |  |       "mkdir -p \"${__cdist_dst_dir}\"" | 
					
						
							|  |  |  |    scp -r "$__cdist_src_dir" \ | 
					
						
							|  |  |  |       "${__cdist_remote_user}@${__cdist_target_host}:${__cdist_top_dir}" | 
					
						
							|  |  |  | elif [ "$__cdist_action" = "pull" ]; then | 
					
						
							|  |  |  |    mkdir -p "${__cdist_dst_dir}" | 
					
						
							|  |  |  |    scp -r "${__cdist_remote_user}@${__cdist_target_host}:${__cdist_src_dir}" \ | 
					
						
							|  |  |  |       "${__cdist_top_dir}" | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |    __cdist_exit_err "Unknown action $__cdist_action" | 
					
						
							|  |  |  | fi |