Fixed the following issues:
1. gitstatus.py:
- Fixed broad IOError exception handling to catch specific OSError/FileNotFoundError
- Fixed unused variable warning by using _ for ignored stderr
2. proxy.py:
- Fixed os.path.expandvars usage that doesn't expand ~, changed to os.path.expanduser
- Fixed check_output call that was incorrectly passing a file path instead of command list
- Fixed missing space in env variable assignment for aliases
3. update_emoji.py:
- Fixed file handle leaks by using with statements for file operations
- Removed unnecessary .keys() call in dict iteration
4. cheatsheet.py:
- Fixed parse() function to handle lines without '=' character
- Fixed inefficient list comprehension using any() instead
- Fixed shadowing of built-in 'cheatsheet' function name
5. ssh-agent.py:
- Modernized string formatting from .format() to f-string
6. ssh-proxy.py:
- Fixed next() call without default value that crashes when no proxy env vars set
- Fixed missing exit code propagation from subprocess.call
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This fixes the typographic error that always assigned an undefined
array to `$names`, which made `$list_size` = 0 and triggered a
divide by zero error on the next line.
Refactor the functions and group listings to have fewer functions,
but have them take group names as parameters.
Pull group definitions in to a single associative array.