nix-shell: Use $XDG_RUNTIME_DIR
This prevents collisions with other users. Fixes #262.
This commit is contained in:
		
							parent
							
								
									3bea429ae8
								
							
						
					
					
						commit
						3e5dbb2433
					
				
					 1 changed files with 2 additions and 1 deletions
				
			
		| 
						 | 
					@ -204,6 +204,7 @@ foreach my $expr (@exprs) {
 | 
				
			||||||
            or die "$0: failed to build all dependencies\n";
 | 
					            or die "$0: failed to build all dependencies\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Set the environment.
 | 
					        # Set the environment.
 | 
				
			||||||
 | 
					        my $tmp = $ENV{"TMPDIR"} // $ENV{"XDG_RUNTIME_DIR"} // "/tmp";
 | 
				
			||||||
        if ($pure) {
 | 
					        if ($pure) {
 | 
				
			||||||
            foreach my $name (keys %ENV) {
 | 
					            foreach my $name (keys %ENV) {
 | 
				
			||||||
                next if grep { $_ eq $name } ("HOME", "USER", "LOGNAME", "DISPLAY", "PATH", "TERM", "IN_NIX_SHELL", "TZ", "PAGER");
 | 
					                next if grep { $_ eq $name } ("HOME", "USER", "LOGNAME", "DISPLAY", "PATH", "TERM", "IN_NIX_SHELL", "TZ", "PAGER");
 | 
				
			||||||
| 
						 | 
					@ -212,7 +213,7 @@ foreach my $expr (@exprs) {
 | 
				
			||||||
            # NixOS hack: prevent /etc/bashrc from sourcing /etc/profile.
 | 
					            # NixOS hack: prevent /etc/bashrc from sourcing /etc/profile.
 | 
				
			||||||
            $ENV{'__ETC_PROFILE_SOURCED'} = 1;
 | 
					            $ENV{'__ETC_PROFILE_SOURCED'} = 1;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        $ENV{'NIX_BUILD_TOP'} = $ENV{'TMPDIR'} = $ENV{'TEMPDIR'} = $ENV{'TMP'} = $ENV{'TEMP'} = $ENV{'TMPDIR'} // "/tmp";
 | 
					        $ENV{'NIX_BUILD_TOP'} = $ENV{'TMPDIR'} = $ENV{'TEMPDIR'} = $ENV{'TMP'} = $ENV{'TEMP'} = $tmp;
 | 
				
			||||||
        $ENV{'NIX_STORE'} = $Nix::Config::storeDir;
 | 
					        $ENV{'NIX_STORE'} = $Nix::Config::storeDir;
 | 
				
			||||||
        $ENV{$_} = $drv->{env}->{$_} foreach keys %{$drv->{env}};
 | 
					        $ENV{$_} = $drv->{env}->{$_} foreach keys %{$drv->{env}};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue