1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-02-21 20:38:54 +00:00

Add Powershell as a supported shell

- There may be additional functionality to implement, but I've been
  running this way for a month with no known issues
This commit is contained in:
Matt Kotsenas 2016-03-15 14:12:37 -07:00
parent 2207dd2668
commit 6daf687237
3 changed files with 40 additions and 1 deletions

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
import pytest
from thefuck.shells import Powershell
@pytest.mark.usefixtures('isfile', 'no_memoize', 'no_cache')
class TestPowershell(object):
@pytest.fixture
def shell(self):
return Powershell()
def test_and_(self, shell):
assert shell.and_('ls', 'cd') == '(ls) -and (cd)'
def test_app_alias(self, shell):
assert 'function fuck' in shell.app_alias('fuck')
assert 'function FUCK' in shell.app_alias('FUCK')
assert 'thefuck' in shell.app_alias('fuck')

View File

@ -9,12 +9,14 @@ from .fish import Fish
from .generic import Generic from .generic import Generic
from .tcsh import Tcsh from .tcsh import Tcsh
from .zsh import Zsh from .zsh import Zsh
from .powershell import Powershell
shells = {'bash': Bash, shells = {'bash': Bash,
'fish': Fish, 'fish': Fish,
'zsh': Zsh, 'zsh': Zsh,
'csh': Tcsh, 'csh': Tcsh,
'tcsh': Tcsh} 'tcsh': Tcsh,
'powershell': Powershell}
def _get_shell(): def _get_shell():

View File

@ -0,0 +1,18 @@
from .generic import Generic
class Powershell(Generic):
def app_alias(self, fuck):
return 'function ' + fuck + ' { \n' \
' $fuck = $(thefuck (Get-History -Count 1).CommandLine)\n' \
' if (-not [string]::IsNullOrWhiteSpace($fuck)) {\n' \
' if ($fuck.StartsWith("echo")) { $fuck = $fuck.Substring(5) }\n' \
' else { iex "$fuck" }\n' \
' }\n' \
'}\n'
def and_(self, *commands):
return u' -and '.join('({0})'.format(c) for c in commands)
def how_to_configure(self):
return 'iex "thefuck --alias"', '$profile'