mirror of
				https://github.com/TheLocehiliosan/yadm
				synced 2025-06-13 13:03:58 +00:00 
			
		
		
		
	Ensure base directories for alternates before creation
This commit is contained in:
		
							parent
							
								
									6d5467951a
								
							
						
					
					
						commit
						f3249e00b5
					
				| @ -235,6 +235,22 @@ def test_template_overwrite_symlink(runner, yadm_y, paths, tst_sys): | ||||
|     assert link.read().strip() == 'test-data' | ||||
| 
 | ||||
| 
 | ||||
| @pytest.mark.usefixtures('ds1_copy') | ||||
| @pytest.mark.parametrize('style', ['symlink', 'template']) | ||||
| def test_ensure_alt_path(runner, paths, style): | ||||
|     """Test that directories are created before making alternates""" | ||||
|     yadm_dir = setup_standard_yadm_dir(paths) | ||||
|     suffix = 'default' if style == 'symlink' else 'template' | ||||
|     filename = 'a/b/c/file' | ||||
|     source = yadm_dir.join(f'alt/{filename}##{suffix}') | ||||
|     source.write('test-data', ensure=True) | ||||
|     run = runner([paths.pgm, '-Y', yadm_dir, 'add', source]) | ||||
|     assert run.success | ||||
|     assert run.err == '' | ||||
|     assert run.out == '' | ||||
|     assert paths.work.join(filename).read().strip() == 'test-data' | ||||
| 
 | ||||
| 
 | ||||
| def setup_standard_yadm_dir(paths): | ||||
|     """Configure a yadm home within the work tree""" | ||||
|     std_yadm_dir = paths.work.mkdir('.config').mkdir('yadm') | ||||
|  | ||||
							
								
								
									
										5
									
								
								yadm
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								yadm
									
									
									
									
									
								
							| @ -505,10 +505,13 @@ function alt_future_linking() { | ||||
|     filename="${alt_filenames[$index]}" | ||||
|     target="${alt_targets[$index]}" | ||||
|     template_cmd="${alt_template_cmds[$index]}" | ||||
|     basedir=${filename%/*} | ||||
|     if [ -n "$template_cmd" ]; then | ||||
|       # a template is defined, process the template | ||||
|       debug "Creating $filename from template $target" | ||||
|       [ -n "$loud" ] && echo "Creating $filename from template $target" | ||||
|       # ensure the destination path exists | ||||
|       [ -e "$basedir" ] || mkdir -p "$basedir" | ||||
|       # remove any existing symlink before processing template | ||||
|       [ -L "$filename" ] && rm -f "$filename" | ||||
|       "$template_cmd" "$target" "$filename" | ||||
| @ -516,6 +519,8 @@ function alt_future_linking() { | ||||
|       # a link target is defined, create symlink | ||||
|       debug "Linking $target to $filename" | ||||
|       [ -n "$loud" ] && echo "Linking $target to $filename" | ||||
|       # ensure the destination path exists | ||||
|       [ -e "$basedir" ] || mkdir -p "$basedir" | ||||
|       if [ "$do_copy" -eq 1 ]; then | ||||
|         # remove any existing symlink before copying | ||||
|         [ -L "$filename" ] && rm -f "$filename" | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user