mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-31 15:12:20 +00:00 
			
		
		
		
	Added a rule to delete sudo for pacaur. (#787)
This commit is contained in:
		
				
					committed by
					
						 Vladimir Iakovlev
						Vladimir Iakovlev
					
				
			
			
				
	
			
			
			
						parent
						
							b65e3a9aad
						
					
				
				
					commit
					dd9554539f
				
			| @@ -278,6 +278,7 @@ using the matched rule and runs it. Rules enabled by default are as follows: | |||||||
| * `tsuru_not_command` – fixes wrong `tsuru` commands like `tsuru shell`; | * `tsuru_not_command` – fixes wrong `tsuru` commands like `tsuru shell`; | ||||||
| * `tmux` – fixes `tmux` commands; | * `tmux` – fixes `tmux` commands; | ||||||
| * `unknown_command` – fixes hadoop hdfs-style "unknown command", for example adds missing '-' to the command on `hdfs dfs ls`; | * `unknown_command` – fixes hadoop hdfs-style "unknown command", for example adds missing '-' to the command on `hdfs dfs ls`; | ||||||
|  | * `unsudo` – removes `sudo` from previous command if a process refuses to run on super user privilege. | ||||||
| * `vagrant_up` – starts up the vagrant instance; | * `vagrant_up` – starts up the vagrant instance; | ||||||
| * `whois` – fixes `whois` command; | * `whois` – fixes `whois` command; | ||||||
| * `workon_doesnt_exists` – fixes `virtualenvwrapper` env name os suggests to create new. | * `workon_doesnt_exists` – fixes `virtualenvwrapper` env name os suggests to create new. | ||||||
|   | |||||||
							
								
								
									
										22
									
								
								tests/rules/test_unsudo.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								tests/rules/test_unsudo.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | import pytest | ||||||
|  | from thefuck.rules.unsudo import match, get_new_command | ||||||
|  | from thefuck.types import Command | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @pytest.mark.parametrize('output', [ | ||||||
|  |     'you cannot perform this operation as root']) | ||||||
|  | def test_match(output): | ||||||
|  |     assert match(Command('sudo ls', output)) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def test_not_match(): | ||||||
|  |     assert not match(Command('', '')) | ||||||
|  |     assert not match(Command('sudo ls', 'Permission denied')) | ||||||
|  |     assert not match(Command('ls', 'you cannot perform this operation as root')) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @pytest.mark.parametrize('before, after', [ | ||||||
|  |     ('sudo ls', 'ls'), | ||||||
|  |     ('sudo pacaur -S helloworld', 'pacaur -S helloworld')]) | ||||||
|  | def test_get_new_command(before, after): | ||||||
|  |     assert get_new_command(Command(before, '')) == after | ||||||
							
								
								
									
										15
									
								
								thefuck/rules/unsudo.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								thefuck/rules/unsudo.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | patterns = ['you cannot perform this operation as root'] | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def match(command): | ||||||
|  |     if command.script_parts and command.script_parts[0] != 'sudo': | ||||||
|  |         return False | ||||||
|  |  | ||||||
|  |     for pattern in patterns: | ||||||
|  |         if pattern in command.output.lower(): | ||||||
|  |             return True | ||||||
|  |     return False | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def get_new_command(command): | ||||||
|  |     return ' '.join(command.script_parts[1:]) | ||||||
		Reference in New Issue
	
	Block a user