Correct me if I'm wrong, but shouldn't TheFuck also recognize recommended commands from the previous successful command?
Running fuck after successful sudo apt update errors and prints long stacktrace on terminal.
Expected behavior:
either apt list --upgradable or sudo apt upgrade is recommended or no fucks given.
The output of thefuck --version (something like The Fuck 3.1 using Python 3.5.0 and Bash 4.4.12(1)-release):
The Fuck 3.30 using Python 3.8.5 and Bash 5.0.17(1)-release
Your system (Debian 7, ArchLinux, Windows, etc.):
Ubuntu 20.04 LTS
How to reproduce the bug:
execute sudo apt update
execute fuck
The output of The Fuck with THEFUCK_DEBUG=true exported (typically execute export THEFUCK_DEBUG=true in your shell before The Fuck):
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 1174, in _send_signal
os.kill(self.pid, sig)
PermissionError: [Errno 1] Operation not permitted
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/thefuck/output_readers/rerun.py", line 17, in _kill_process
proc.kill()
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 270, in wrapper
return fun(self, *args, **kwargs)
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 1237, in kill
self._send_signal(signal.SIGKILL)
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 1184, in _send_signal
raise AccessDenied(self.pid, self._name)
psutil.AccessDenied: psutil.AccessDenied (pid=63424)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/_pslinux.py", line 1620, in exe
return readlink("%s/%s/exe" % (self._procfs_path, self.pid))
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/_pslinux.py", line 212, in readlink
path = os.readlink(path)
PermissionError: [Errno 13] Permission denied: '/proc/63424/exe'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/thefuck", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.8/dist-packages/thefuck/entrypoints/main.py", line 31, in main
fix_command(known_args)
File "/usr/local/lib/python3.8/dist-packages/thefuck/entrypoints/fix_command.py", line 36, in fix_command
command = types.Command.from_raw_script(raw_command)
File "/usr/local/lib/python3.8/dist-packages/thefuck/types.py", line 82, in from_raw_script
output = get_output(script, expanded)
File "/usr/local/lib/python3.8/dist-packages/thefuck/output_readers/init.py", line 20, in get_output
return rerun.get_output(script, expanded)
File "/usr/local/lib/python3.8/dist-packages/thefuck/output_readers/rerun.py", line 62, in get_output
if _wait_output(result, is_slow):
File "/usr/local/lib/python3.8/dist-packages/thefuck/output_readers/rerun.py", line 40, in _wait_output
_kill_process(child)
File "/usr/local/lib/python3.8/dist-packages/thefuck/output_readers/rerun.py", line 20, in _kill_process
proc.pid, proc.exe()))
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 660, in exe
return guess_it(fallback=err)
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 653, in guess_it
raise fallback
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 658, in exe
exe = self._proc.exe()
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/_pslinux.py", line 1633, in exe
raise AccessDenied(self.pid, self._name)
psutil.AccessDenied: psutil.AccessDenied (pid=63424)
Original Issue: https://github.com/nvbn/thefuck/issues/1158
Correct me if I'm wrong, but shouldn't TheFuck also recognize recommended commands from the previous successful command?
Running fuck after successful sudo apt update errors and prints long stacktrace on terminal.
Expected behavior:
either
apt list --upgradable
orsudo apt upgrade
is recommended orno fucks given
. The output of thefuck --version (something like The Fuck 3.1 using Python 3.5.0 and Bash 4.4.12(1)-release):The Fuck 3.30 using Python 3.8.5 and Bash 5.0.17(1)-release
Your system (Debian 7, ArchLinux, Windows, etc.):Ubuntu 20.04 LTS How to reproduce the bug:
sudo apt update
execute
fuck
The output of The Fuck with THEFUCK_DEBUG=true exported (typically execute export THEFUCK_DEBUG=true in your shell before The Fuck):0 ◣ tooster@toosterLap:~$ sudo apt update Hit:1 http://dl.google.com/linux/chrome/deb stable InRelease Hit:2 http://pl.archive.ubuntu.com/ubuntu focal InRelease],
'slow_commands': ['lein', 'react-native', 'gradle', './gradlew', 'vagrant'],
'user_dir': PosixPath('/home/tooster/.config/thefuck'),
'wait_command': 3,
'wait_slow_command': 15}
DEBUG: Call: sudo apt update; with env: {
'SHELL': '/bin/bash',
'SESSION_MANAGER': 'local/toosterLap:@/tmp/.ICE-unix/2666,unix/toosterLap:/tmp/.ICE-unix/2666',
'QT_ACCESSIBILITY': '1',
'TF_SHELL': 'bash',
'COLORTERM': 'truecolor',
'XDG_CONFIG_DIRS': '/etc/xdg/xdg-ubuntu:/etc/xdg:/usr/share/kubuntu-default-settings/kf5-settings',
'LESS': ' -R --mouse --wheel-lines=3',
'XDG_MENU_PREFIX': 'gnome-',
'GNOME_DESKTOP_SESSION_ID': 'this-is-deprecated',
'LANGUAGE': 'en_GB:en',
'LESS_TERMCAP_se': '\x1b[0m',
'MANDATORY_PATH': '/usr/share/gconf/ubuntu.mandatory.path',
'LESS_TERMCAP_so': '\x1b[01;7;33m',
'LC_ADDRESS': 'pl_PL.UTF-8',
'JAVA_HOME': '/home/tooster/.sdkman/candidates/java/current',
'GNOME_SHELL_SESSION_MODE': 'ubuntu',
'LC_NAME': 'pl_PL.UTF-8',
'SSH_AUTH_SOCK': '/run/user/1000/keyring/ssh',
'GRADLE_HOME': '/home/tooster/.sdkman/candidates/gradle/current',
'SDKMAN_CANDIDATES_DIR': '/home/tooster/.sdkman/candidates',
'XMODIFIERS': '@im=ibus',
'DESKTOP_SESSION': 'ubuntu',
'LC_MONETARY': 'pl_PL.UTF-8',
'SSH_AGENT_PID': '2639',
'GTK_MODULES': 'gail:atk-bridge',
'PWD': '/home/tooster',
'XDG_SESSION_DESKTOP': 'ubuntu',
'LOGNAME': 'tooster',
'XDG_SESSION_TYPE': 'x11',
'GPG_AGENT_INFO': '/run/user/1000/gnupg/S.gpg-agent:0:1',
'XAUTHORITY': '/run/user/1000/gdm/Xauthority',
'GJS_DEBUG_TOPICS': 'JS ERROR;JS LOG',
'WINDOWPATH': '2',
'HOME': '/home/tooster',
'USERNAME': 'tooster',
'IM_CONFIG_PHASE': '1',
'AUTOJUMP_ERROR_PATH': '/home/tooster/.local/share/autojump/errors.log',
'LC_PAPER': 'pl_PL.UTF-8',
'LANG': 'C',
'LS_COLORS': '--cut for readibility--',
'XDG_CURRENT_DESKTOP': 'ubuntu:GNOME',
'VTE_VERSION': '6003',
'SDKMAN_VERSION': '5.9.1+575',
'GNOME_TERMINAL_SCREEN': '--redacted--',
'INVOCATION_ID': '--redacted--',
'MANAGERPID': '2400',
'TF_ALIAS': 'fuck',
'GJS_DEBUG_OUTPUT': 'stderr',
'LESSCLOSE': '/usr/bin/lesspipe %s %s',
'XDG_SESSION_CLASS': 'user',
'TERM': 'xterm-256color',
'LC_IDENTIFICATION': 'pl_PL.UTF-8',
'LESS_TERMCAP_mb': '\x1b[1;5;32m',
'LESS_TERMCAP_me': '\x1b[0m',
'LESS_TERMCAP_md': '\x1b[1;32m',
'TF_HISTORY': '\t sudo apt update\n\t sudo apt install python3-dev python3-pip python3-setuptools\n\t sudo pip3 install thefuck\n\t vim\n\t apt update\n\t sudo apt update\n\t fuck\n\t sudo apt update\n\t export THEFUCK_DEBUG=true fuck\n\t sudo apt update',
'DEFAULTS_PATH': '/usr/share/gconf/ubuntu.default.path',
'LESSOPEN': '| pygmentize -gO style=monokai %s',
'LIBVIRT_DEFAULT_URI': 'qemu:///system',
'USER': 'tooster',
'CUDA_PATH': '/usr/local/cuda',
'PYTHONIOENCODING': 'utf-8',
'TF_SHELL_ALIASES': 'alias alert=\'notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e \'\\'\'s/^\s[0-9]\+\s//;s/[;&|]\salert$//\'\\'\')"\'\nalias aliases=\'vim ~/.bash_aliases && . ~/.bash_aliases && echo \'\\'\'.bash_aliases sourced\'\\'\'\'\nalias antlr4=\'java -Xmx500M -cp "/usr/local/lib/antlr-4.8-complete.jar:$CLASSPATH" org.antlr.v4.Tool\'\nalias dotfiles=\'/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME\'\nalias egrep=\'egrep --color=auto\'\nalias f=\'formatter\'\nalias fgrep=\'fgrep --color=auto\'\nalias grep=\'grep --color=auto\'\nalias grun=\'java -Xmx500M -cp "/usr/local/lib/antlr-4.8-complete.jar:$CLASSPATH" org.antlr.v4.gui.TestRig\'\nalias l=\'ls -CF\'\nalias la=\'ls -A\'\nalias lenny=\'echo "( ͡° ͜ʖ ͡°)"\'\nalias ll=\'ls -alF\'\nalias ls=\'ls --color=auto\'\nalias man=\'better_man\'\nalias notes=\'code ~/notes.md\'\nalias pip=\'pip3\'\nalias python=\'python3\'\nalias t=\'_ttr_new_tmux_session\'\nalias wp=\'cd ~/workspace\'',
'GNOME_TERMINAL_SERVICE': ':1.101',
'SDKMAN_DIR': '/home/tooster/.sdkman',
'AUTOJUMP_SOURCED': '1',
'DISPLAY': ':1',
'LESS_TERMCAP_ue': '\x1b[0m',
'SHLVL': '1',
'LESS_TERMCAP_us': '\x1b[1;4;31m',
'LC_TELEPHONE': 'pl_PL.UTF-8',
'QT_IM_MODULE': 'ibus',
'LC_MEASUREMENT': 'pl_PL.UTF-8',
'SDKMAN_CANDIDATES_API': 'https://api.sdkman.io/2',
'PAPERSIZE': 'a4',
'CLASSPATH': '.:/usr/local/lib/antlr-4.8-complete.jar:',
'XDG_RUNTIME_DIR': '/run/user/1000',
'LC_TIME': 'pl_PL.UTF-8',
'CUDA_HOME': '/usr/local/cuda',
'JOURNAL_STREAM': '9:55039',
'XDG_DATA_DIRS': '/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop',
'PATH': '/home/tooster/.sdkman/candidates/java/current/bin:/home/tooster/.sdkman/candidates/gradle/current/bin:/home/tooster/.gem/ruby/2.7.0/bin:/usr/local/cuda/bin:/home/tooster/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/tooster/.dotnet/tools',
'GDMSESSION': 'ubuntu',
'THEFUCK_DEBUG': 'true',
'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1000/bus',
'SDKMAN_PLATFORM': 'Linux64',
'LC_NUMERIC': 'plPL.UTF-8',
'': '/usr/local/bin/thefuck',
'LC_ALL': 'C',
'GIT_TRACE': '1'
}; is slow: False took: 0:00:03.052979
DEBUG: Total took: 0:00:03.082849
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/thefuck/output_readers/rerun.py", line 35, in _wait_output
proc.wait(settings.wait_slow_command if is_slow
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 1259, in wait
self._exitcode = self._proc.wait(timeout)
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/_pslinux.py", line 1517, in wrapper
return fun(self, args, **kwargs)
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/_pslinux.py", line 1725, in wait
return _psposix.wait_pid(self.pid, timeout, self._name)
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/_psposix.py", line 131, in wait_pid
interval = sleep(interval)
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/_psposix.py", line 108, in sleep
raise TimeoutExpired(timeout, pid=pid, name=proc_name)
psutil.TimeoutExpired: psutil.TimeoutExpired timeout after 3 seconds (pid=63423)
Hit:3 http://ppa.launchpad.net/appimagelauncher-team/stable/ubuntu focal InRelease
Hit:4 http://pl.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 https://download.mono-project.com/repo/ubuntu stable-focal InRelease
Hit:6 http://pl.archive.ubuntu.com/ubuntu focal-backports InRelease
Hit:7 http://ppa.launchpad.net/bashtop-monitor/bashtop/ubuntu focal InRelease
Hit:8 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:9 http://ppa.launchpad.net/lutris-team/lutris/ubuntu focal InRelease
Ign:10 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 InRelease
Hit:11 https://packages.microsoft.com/ubuntu/20.04/prod focal InRelease
Hit:12 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 Release Hit:13 http://ppa.launchpad.net/obsproject/obs-studio/ubuntu focal InRelease Hit:14 http://ppa.launchpad.net/webupd8team/y-ppa-manager/ubuntu focal InRelease Reading package lists... Done
Building dependency tree
Reading state information... Done 65 packages can be upgraded. Run 'apt list --upgradable' to see them. 0 ◣ tooster@toosterLap:~$ fuck DEBUG: Run with settings: {'alter_history': True, 'debug': True, 'env': {'GIT_TRACE': '1', 'LANG': 'C', 'LC_ALL': 'C'}, 'exclude_rules': [], 'history_limit': None, 'instant_mode': False, 'no_colors': False, 'num_close_matches': 3, 'priority': {}, 'repeat': False, 'require_confirmation': True, 'rules': [
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 1174, in _send_signal os.kill(self.pid, sig) PermissionError: [Errno 1] Operation not permitted
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/local/lib/python3.8/dist-packages/thefuck/output_readers/rerun.py", line 17, in _kill_process proc.kill() File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 270, in wrapper return fun(self, *args, **kwargs) File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 1237, in kill self._send_signal(signal.SIGKILL) File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 1184, in _send_signal raise AccessDenied(self.pid, self._name) psutil.AccessDenied: psutil.AccessDenied (pid=63424)
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/home/tooster/.local/lib/python3.8/site-packages/psutil/_pslinux.py", line 1620, in exe return readlink("%s/%s/exe" % (self._procfs_path, self.pid)) File "/home/tooster/.local/lib/python3.8/site-packages/psutil/_pslinux.py", line 212, in readlink path = os.readlink(path) PermissionError: [Errno 13] Permission denied: '/proc/63424/exe'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/local/bin/thefuck", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.8/dist-packages/thefuck/entrypoints/main.py", line 31, in main
fix_command(known_args)
File "/usr/local/lib/python3.8/dist-packages/thefuck/entrypoints/fix_command.py", line 36, in fix_command
command = types.Command.from_raw_script(raw_command)
File "/usr/local/lib/python3.8/dist-packages/thefuck/types.py", line 82, in from_raw_script
output = get_output(script, expanded)
File "/usr/local/lib/python3.8/dist-packages/thefuck/output_readers/init.py", line 20, in get_output
return rerun.get_output(script, expanded)
File "/usr/local/lib/python3.8/dist-packages/thefuck/output_readers/rerun.py", line 62, in get_output
if _wait_output(result, is_slow):
File "/usr/local/lib/python3.8/dist-packages/thefuck/output_readers/rerun.py", line 40, in _wait_output
_kill_process(child)
File "/usr/local/lib/python3.8/dist-packages/thefuck/output_readers/rerun.py", line 20, in _kill_process
proc.pid, proc.exe()))
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 660, in exe
return guess_it(fallback=err)
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 653, in guess_it
raise fallback
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/init.py", line 658, in exe
exe = self._proc.exe()
File "/home/tooster/.local/lib/python3.8/site-packages/psutil/_pslinux.py", line 1633, in exe
raise AccessDenied(self.pid, self._name)
psutil.AccessDenied: psutil.AccessDenied (pid=63424)