| 
									
										
										
										
											2012-03-09 17:32:45 -05:00
										 |  |  | #!/bin/sh | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # 2012 Matt Coddington (mcoddington at gmail.com) | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # 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/>. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2012-03-09 17:39:54 -05:00
										 |  |  | # Use rsync over ssh to copy files.  This particular invocation of | 
					
						
							|  |  |  | # rsync makes a backup of the file before overwriting it.  For example, | 
					
						
							|  |  |  | # if cdist overwrites /etc/passwd then you'll end up with the old copy | 
					
						
							|  |  |  | # at /etc/passwd~cdist. | 
					
						
							| 
									
										
										
										
											2012-03-09 17:32:45 -05:00
										 |  |  | # | 
					
						
							|  |  |  | # Usage: | 
					
						
							| 
									
										
										
										
											2012-05-29 11:02:23 +02:00
										 |  |  | #  cdist config --remote-copy /path/to/this/script target_host | 
					
						
							| 
									
										
										
										
											2012-03-09 17:32:45 -05:00
										 |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-29 11:02:23 +02:00
										 |  |  | # second last argument is the source | 
					
						
							|  |  |  | source_index=$(($#-1)) | 
					
						
							|  |  |  | index=0 | 
					
						
							|  |  |  | for arg in $@; do | 
					
						
							|  |  |  |    if [ $index -eq 0 ]; then | 
					
						
							|  |  |  |       # reset $@ | 
					
						
							| 
									
										
										
										
											2012-05-29 11:03:15 +02:00
										 |  |  |       set -- | 
					
						
							| 
									
										
										
										
											2012-05-29 11:02:23 +02:00
										 |  |  |    fi | 
					
						
							|  |  |  |    index=$((index+=1)) | 
					
						
							|  |  |  |    if [ $index -eq $source_index -a -d "$arg" ]; then | 
					
						
							|  |  |  |       # if the source is a directory, it has to end with "/" for rsync to do the right thing | 
					
						
							|  |  |  |       arg="${arg%/}/" | 
					
						
							|  |  |  |    fi | 
					
						
							|  |  |  |    set -- "$@" "$arg" | 
					
						
							|  |  |  | done | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-09 17:39:54 -05:00
										 |  |  | rsync --backup --suffix=~cdist -e 'ssh -o User=root' $@ |