mirror of
				https://github.com/TheLocehiliosan/yadm
				synced 2025-06-13 13:03:58 +00:00 
			
		
		
		
	Support YADM_DISTRO in Jinja templates (#68)
				
					
				
			This commit is contained in:
		
							parent
							
								
									280b1179f7
								
							
						
					
					
						commit
						5293db986a
					
				
							
								
								
									
										49
									
								
								test/007_unit_query_distro.bats
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								test/007_unit_query_distro.bats
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | |||||||
|  | load common | ||||||
|  | load_fixtures | ||||||
|  | 
 | ||||||
|  | @test "Query distro (lsb_release present)" { | ||||||
|  |   echo " | ||||||
|  |     Use value of lsb_release -si | ||||||
|  |   " | ||||||
|  | 
 | ||||||
|  |   #shellcheck source=/dev/null | ||||||
|  |   YADM_TEST=1 source "$T_YADM" | ||||||
|  |   status=0 | ||||||
|  |   { output=$( query_distro ); } || { | ||||||
|  |     status=$? | ||||||
|  |     true | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   expected="${T_DISTRO}" | ||||||
|  | 
 | ||||||
|  |   echo "output=$output" | ||||||
|  |   echo "expect=$expected" | ||||||
|  | 
 | ||||||
|  |   [ "$status" == 0 ] | ||||||
|  |   [ "$output" = "$expected" ] | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @test "Query distro (lsb_release missing)" { | ||||||
|  |   echo " | ||||||
|  |     Empty value if lsb_release is missing | ||||||
|  |   " | ||||||
|  | 
 | ||||||
|  |   #shellcheck source=/dev/null | ||||||
|  |   YADM_TEST=1 source "$T_YADM" | ||||||
|  |   LSB_RELEASE_PROGRAM="missing_lsb_release" | ||||||
|  |   echo "Using $LSB_RELEASE_PROGRAM as lsb_release" | ||||||
|  | 
 | ||||||
|  |   status=0 | ||||||
|  |   { output=$( query_distro ); } || { | ||||||
|  |     status=$? | ||||||
|  |     true | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   expected="" | ||||||
|  | 
 | ||||||
|  |   echo "output=$output" | ||||||
|  |   echo "expect=$expected" | ||||||
|  | 
 | ||||||
|  |   [ "$status" == 0 ] | ||||||
|  |   [ "$output" = "$expected" ] | ||||||
|  | } | ||||||
| @ -21,11 +21,11 @@ function test_alt() { | |||||||
|   case $alt_type in |   case $alt_type in | ||||||
|     base) |     base) | ||||||
|       real_name="alt-jinja" |       real_name="alt-jinja" | ||||||
|       file_content_match="-${T_SYS}-${T_HOST}-${T_USER}" |       file_content_match="-${T_SYS}-${T_HOST}-${T_USER}-${T_DISTRO}" | ||||||
|     ;; |     ;; | ||||||
|     override_all) |     override_all) | ||||||
|       real_name="alt-jinja" |       real_name="alt-jinja" | ||||||
|       file_content_match="custom_class-custom_system-custom_host-custom_user" |       file_content_match="custom_class-custom_system-custom_host-custom_user-${T_DISTRO}" | ||||||
|     ;; |     ;; | ||||||
|   esac |   esac | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -27,6 +27,8 @@ function load_fixtures() { | |||||||
|   T_HOST=$(hostname -s) |   T_HOST=$(hostname -s) | ||||||
|   export T_USER |   export T_USER | ||||||
|   T_USER=$(id -u -n) |   T_USER=$(id -u -n) | ||||||
|  |   export T_DISTRO | ||||||
|  |   T_DISTRO=$(lsb_release -si 2>/dev/null || true) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function configure_git() { | function configure_git() { | ||||||
| @ -202,7 +204,7 @@ function create_worktree() { | |||||||
|       make_parents "$DIR_WORKTREE/$f" |       make_parents "$DIR_WORKTREE/$f" | ||||||
|       echo "$f" > "$DIR_WORKTREE/$f" |       echo "$f" > "$DIR_WORKTREE/$f" | ||||||
|     done |     done | ||||||
|     echo "{{ YADM_CLASS }}-{{ YADM_OS }}-{{ YADM_HOSTNAME }}-{{ YADM_USER }}" > "$DIR_WORKTREE/alt-jinja##yadm.j2" |     echo "{{ YADM_CLASS }}-{{ YADM_OS }}-{{ YADM_HOSTNAME }}-{{ YADM_USER }}-{{ YADM_DISTRO }}" > "$DIR_WORKTREE/alt-jinja##yadm.j2" | ||||||
|   fi |   fi | ||||||
| 
 | 
 | ||||||
|   #; for some cygwin tests |   #; for some cygwin tests | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								yadm
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								yadm
									
									
									
									
									
								
							| @ -34,6 +34,7 @@ GPG_PROGRAM="gpg" | |||||||
| GIT_PROGRAM="git" | GIT_PROGRAM="git" | ||||||
| LS_PROGRAM="/bin/ls" | LS_PROGRAM="/bin/ls" | ||||||
| ENVTPL_PROGRAM="envtpl" | ENVTPL_PROGRAM="envtpl" | ||||||
|  | LSB_RELEASE_PROGRAM="lsb_release" | ||||||
| 
 | 
 | ||||||
| PROC_VERSION="/proc/version" | PROC_VERSION="/proc/version" | ||||||
| OPERATING_SYSTEM="Unknown" | OPERATING_SYSTEM="Unknown" | ||||||
| @ -230,6 +231,7 @@ function alt() { | |||||||
|           YADM_OS="$local_system" \ |           YADM_OS="$local_system" \ | ||||||
|           YADM_HOSTNAME="$local_host" \ |           YADM_HOSTNAME="$local_host" \ | ||||||
|           YADM_USER="$local_user" \ |           YADM_USER="$local_user" \ | ||||||
|  |           YADM_DISTRO=$(query_distro) \ | ||||||
|           "$ENVTPL_PROGRAM" < "$tracked_file" > "$real_file" |           "$ENVTPL_PROGRAM" < "$tracked_file" > "$real_file" | ||||||
|         else |         else | ||||||
|           debug "envtpl not available, not creating $real_file from template $tracked_file" |           debug "envtpl not available, not creating $real_file from template $tracked_file" | ||||||
| @ -698,6 +700,14 @@ function version() { | |||||||
| 
 | 
 | ||||||
| #; ****** Utility Functions ****** | #; ****** Utility Functions ****** | ||||||
| 
 | 
 | ||||||
|  | function query_distro() { | ||||||
|  |   distro="" | ||||||
|  |   if command -v "$LSB_RELEASE_PROGRAM" >/dev/null 2>&1; then | ||||||
|  |     distro=$($LSB_RELEASE_PROGRAM -si 2>/dev/null) | ||||||
|  |   fi | ||||||
|  |   echo "$distro" | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function process_global_args() { | function process_global_args() { | ||||||
| 
 | 
 | ||||||
|   #; global arguments are removed before the main processing is done |   #; global arguments are removed before the main processing is done | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user