home: environment-variables: Fix escaping.
* gnu/home/services.scm (environment-variable-shell-definitions): Fix escaping. * tests/guix-home.sh: Add STRING_WITH_ESCAPES environment variable and test its value. Reported-by: elevnkb
This commit is contained in:
		
							parent
							
								
									2acce55a00
								
							
						
					
					
						commit
						35ecbb418c
					
				
					 2 changed files with 6 additions and 3 deletions
				
			
		| 
						 | 
					@ -192,7 +192,7 @@ ensures variable values are properly quoted."
 | 
				
			||||||
              (list->string (string-fold-right
 | 
					              (list->string (string-fold-right
 | 
				
			||||||
                             (lambda (chr lst)
 | 
					                             (lambda (chr lst)
 | 
				
			||||||
                               (if (memq chr quoted-chars)
 | 
					                               (if (memq chr quoted-chars)
 | 
				
			||||||
                                   (append (list chr #\\) lst)
 | 
					                                   (append (list #\\ chr) lst)
 | 
				
			||||||
                                   (cons chr lst)))
 | 
					                                   (cons chr lst)))
 | 
				
			||||||
                             '()
 | 
					                             '()
 | 
				
			||||||
                             value))))
 | 
					                             value))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -84,8 +84,9 @@ trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
 | 
				
			||||||
                   home-environment-variables-service-type
 | 
					                   home-environment-variables-service-type
 | 
				
			||||||
                   `(("TODAY" . "26 messidor")
 | 
					                   `(("TODAY" . "26 messidor")
 | 
				
			||||||
                     ("SHELL" . ,(file-append bash "/bin/bash"))
 | 
					                     ("SHELL" . ,(file-append bash "/bin/bash"))
 | 
				
			||||||
                     ("BUILDHOSTTIME" . ,#~(strftime "%c"
 | 
					                     ("BUILDHOST_TIME" . ,#~(strftime "%c"
 | 
				
			||||||
                                             (localtime (current-time))))
 | 
					                                             (localtime (current-time))))
 | 
				
			||||||
 | 
					                     ("STRING_WITH_ESCAPES" . "chars: \" /\\")
 | 
				
			||||||
                     ("LITERAL" . ,(literal-string "${abc}"))))
 | 
					                     ("LITERAL" . ,(literal-string "${abc}"))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   (simple-service 'home-bash-service-extension-test
 | 
					   (simple-service 'home-bash-service-extension-test
 | 
				
			||||||
| 
						 | 
					@ -156,6 +157,8 @@ EOF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ( . "${HOME}/.guix-home/setup-environment"; test "$TODAY" = "26 messidor" )
 | 
					    ( . "${HOME}/.guix-home/setup-environment"; test "$TODAY" = "26 messidor" )
 | 
				
			||||||
    ( . "${HOME}/.guix-home/setup-environment"; test "$LITERAL" = '${abc}' )
 | 
					    ( . "${HOME}/.guix-home/setup-environment"; test "$LITERAL" = '${abc}' )
 | 
				
			||||||
 | 
					    ( . "${HOME}/.guix-home/setup-environment";
 | 
				
			||||||
 | 
					      test "$STRING_WITH_ESCAPES" = "chars: \" /\\")
 | 
				
			||||||
    ( . "${HOME}/.guix-home/setup-environment";
 | 
					    ( . "${HOME}/.guix-home/setup-environment";
 | 
				
			||||||
      echo "$SHELL" | grep "/gnu/store/.*/bin/bash" )
 | 
					      echo "$SHELL" | grep "/gnu/store/.*/bin/bash" )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue