36 lines
		
	
	
		
			998 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			998 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| 
								 | 
							
								import ./make-test-python.nix ({ pkgs, ...} : {
							 | 
						||
| 
								 | 
							
								  name = "zsh-history";
							 | 
						||
| 
								 | 
							
								  meta = with pkgs.stdenv.lib.maintainers; {
							 | 
						||
| 
								 | 
							
								    maintainers = [ kampka ];
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  nodes.default = { ... }: {
							 | 
						||
| 
								 | 
							
								    programs = {
							 | 
						||
| 
								 | 
							
								      zsh.enable = true;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    environment.systemPackages = [ pkgs.zsh-history ];
							 | 
						||
| 
								 | 
							
								    programs.zsh.interactiveShellInit = ''
							 | 
						||
| 
								 | 
							
								      source ${pkgs.zsh-history.out}/share/zsh/init.zsh
							 | 
						||
| 
								 | 
							
								    '';
							 | 
						||
| 
								 | 
							
								    users.users.root.shell = "${pkgs.zsh}/bin/zsh";
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  testScript = ''
							 | 
						||
| 
								 | 
							
								    start_all()
							 | 
						||
| 
								 | 
							
								    default.wait_for_unit("multi-user.target")
							 | 
						||
| 
								 | 
							
								    default.wait_until_succeeds("pgrep -f 'agetty.*tty1'")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Login
							 | 
						||
| 
								 | 
							
								    default.wait_until_tty_matches(1, "login: ")
							 | 
						||
| 
								 | 
							
								    default.send_chars("root\n")
							 | 
						||
| 
								 | 
							
								    default.wait_until_tty_matches(1, "root@default>")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Generate some history
							 | 
						||
| 
								 | 
							
								    default.send_chars("echo foobar\n")
							 | 
						||
| 
								 | 
							
								    default.wait_until_tty_matches(1, "foobar")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Ensure that command was recorded in history
							 | 
						||
| 
								 | 
							
								    default.succeed("/run/current-system/sw/bin/history list | grep -q foobar")
							 | 
						||
| 
								 | 
							
								  '';
							 | 
						||
| 
								 | 
							
								})
							 |