forked from ungleich-public/cdist
		
	handle existing symlink but wrong source
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								0a98abbffa
							
						
					
				
			
			
				commit
				
					
						75c203a1f0
					
				
			
		
					 2 changed files with 12 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
#
 | 
			
		||||
# 2012 Steven Armstrong (steven-cdist at armstrong.cc)
 | 
			
		||||
# 2012-2014 Steven Armstrong (steven-cdist at armstrong.cc)
 | 
			
		||||
#
 | 
			
		||||
# This file is part of cdist.
 | 
			
		||||
#
 | 
			
		||||
| 
						 | 
				
			
			@ -34,8 +34,12 @@ case "$type" in
 | 
			
		|||
   symbolic)
 | 
			
		||||
      cd "$destination_dir"
 | 
			
		||||
      source_is=$(ls -l "$destination" | sed 's/.*-> //g')
 | 
			
		||||
      if [ -h "$destination" -a "$source_is" = "$source" ]; then
 | 
			
		||||
      if [ -h "$destination" ]; then
 | 
			
		||||
         if [ "$source_is" = "$source" ]; then
 | 
			
		||||
            echo present
 | 
			
		||||
         else
 | 
			
		||||
            echo wrongsource
 | 
			
		||||
         fi
 | 
			
		||||
      else
 | 
			
		||||
         echo absent
 | 
			
		||||
      fi
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
#
 | 
			
		||||
# 2011-2012 Nico Schottelius (nico-cdist at schottelius.org)
 | 
			
		||||
# 2013 Steven Armstrong (steven-cdist at armstrong.cc)
 | 
			
		||||
# 2013-2014 Steven Armstrong (steven-cdist at armstrong.cc)
 | 
			
		||||
#
 | 
			
		||||
# This file is part of cdist.
 | 
			
		||||
#
 | 
			
		||||
| 
						 | 
				
			
			@ -18,9 +18,6 @@
 | 
			
		|||
# You should have received a copy of the GNU General Public License
 | 
			
		||||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
# Mostly a wrapper for ln
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
destination="/$__object_id"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -55,6 +52,10 @@ rm -rf "$destination"
 | 
			
		|||
DONE
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        if [ "$state_is" = "wrongsource" ]; then
 | 
			
		||||
            printf 'rm -f "%s"\n' "$destination"
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        # create our link
 | 
			
		||||
        cat << DONE
 | 
			
		||||
ln ${lnopt} -f "$source" "$destination"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue