Add Python and pip command support
This commit is contained in:
57
terminal.py
57
terminal.py
@@ -119,6 +119,11 @@ class ZDTTTerminal:
|
|||||||
'date': self.cmd_date,
|
'date': self.cmd_date,
|
||||||
'uname': self.cmd_uname,
|
'uname': self.cmd_uname,
|
||||||
'grep': self.cmd_grep,
|
'grep': self.cmd_grep,
|
||||||
|
# Python commands
|
||||||
|
'python': self.cmd_python,
|
||||||
|
'python3': self.cmd_python3,
|
||||||
|
'pip': self.cmd_pip,
|
||||||
|
'pip3': self.cmd_pip3,
|
||||||
}
|
}
|
||||||
|
|
||||||
# Setup readline history and tab completion
|
# Setup readline history and tab completion
|
||||||
@@ -181,6 +186,25 @@ class ZDTTTerminal:
|
|||||||
|
|
||||||
def display_banner(self):
|
def display_banner(self):
|
||||||
"""Display the ZDTT ASCII art banner (or custom banner if available)"""
|
"""Display the ZDTT ASCII art banner (or custom banner if available)"""
|
||||||
|
# Check terminal size to see if banner will fit
|
||||||
|
try:
|
||||||
|
term_size = shutil.get_terminal_size()
|
||||||
|
# Banner is 44 chars wide and 11 lines tall (including version)
|
||||||
|
# Add extra space for non-Debian warning if needed
|
||||||
|
min_height = 13 if not self.is_debian else 11
|
||||||
|
min_width = 44
|
||||||
|
|
||||||
|
if term_size.columns < min_width or term_size.lines < min_height:
|
||||||
|
# Terminal too small, skip banner and just show minimal header
|
||||||
|
print(f"ZDTT Terminal v{self.version}")
|
||||||
|
if not self.is_debian:
|
||||||
|
print("⚠️ Non-Debian system - limited support")
|
||||||
|
print()
|
||||||
|
return
|
||||||
|
except Exception:
|
||||||
|
# If we can't get terminal size, display the banner anyway
|
||||||
|
pass
|
||||||
|
|
||||||
# Check for custom banner
|
# Check for custom banner
|
||||||
if os.path.exists(self.banner_file):
|
if os.path.exists(self.banner_file):
|
||||||
try:
|
try:
|
||||||
@@ -439,6 +463,12 @@ ZDTT Terminal v{self.version}
|
|||||||
print(" nano <file> - Edit file with nano")
|
print(" nano <file> - Edit file with nano")
|
||||||
print(" neofetch - Display system info (auto-installs)")
|
print(" neofetch - Display system info (auto-installs)")
|
||||||
print()
|
print()
|
||||||
|
print("Python Commands:")
|
||||||
|
print(" python [args] - Run Python interpreter")
|
||||||
|
print(" python3 [args] - Run Python 3 interpreter")
|
||||||
|
print(" pip [args] - Run pip package manager")
|
||||||
|
print(" pip3 [args] - Run pip3 package manager")
|
||||||
|
print()
|
||||||
print("Features:")
|
print("Features:")
|
||||||
print(" ↑/↓ arrows - Navigate command history")
|
print(" ↑/↓ arrows - Navigate command history")
|
||||||
print(" Tab - Auto-complete commands/files")
|
print(" Tab - Auto-complete commands/files")
|
||||||
@@ -482,6 +512,7 @@ ZDTT Terminal v{self.version}
|
|||||||
print(" • Command aliases (alias g=git)")
|
print(" • Command aliases (alias g=git)")
|
||||||
print(" • Flexible time/date display with multiple formats")
|
print(" • Flexible time/date display with multiple formats")
|
||||||
print(" • Colorized prompt")
|
print(" • Colorized prompt")
|
||||||
|
print(" • Smart banner (auto-hides on small terminals)")
|
||||||
print(" • Plugin system with ZPS package manager")
|
print(" • Plugin system with ZPS package manager")
|
||||||
print(" • Plugin hot-reload (plugins reload)")
|
print(" • Plugin hot-reload (plugins reload)")
|
||||||
print(" • Safe rm with confirmation prompts")
|
print(" • Safe rm with confirmation prompts")
|
||||||
@@ -1030,6 +1061,32 @@ ZDTT Terminal v{self.version}
|
|||||||
|
|
||||||
subprocess.run(['neofetch'] + args)
|
subprocess.run(['neofetch'] + args)
|
||||||
|
|
||||||
|
# Python Commands
|
||||||
|
|
||||||
|
def cmd_python(self, args):
|
||||||
|
"""Run python command"""
|
||||||
|
subprocess.run(['python'] + args)
|
||||||
|
|
||||||
|
def cmd_python3(self, args):
|
||||||
|
"""Run python3 command"""
|
||||||
|
subprocess.run(['python3'] + args)
|
||||||
|
|
||||||
|
def cmd_pip(self, args):
|
||||||
|
"""Run pip command"""
|
||||||
|
if shutil.which('pip'):
|
||||||
|
subprocess.run(['pip'] + args)
|
||||||
|
else:
|
||||||
|
print("pip: command not found")
|
||||||
|
print("Try installing with: sudo apt-get install python3-pip")
|
||||||
|
|
||||||
|
def cmd_pip3(self, args):
|
||||||
|
"""Run pip3 command"""
|
||||||
|
if shutil.which('pip3'):
|
||||||
|
subprocess.run(['pip3'] + args)
|
||||||
|
else:
|
||||||
|
print("pip3: command not found")
|
||||||
|
print("Try installing with: sudo apt-get install python3-pip")
|
||||||
|
|
||||||
def execute_command(self, command_line):
|
def execute_command(self, command_line):
|
||||||
"""Parse and execute a command"""
|
"""Parse and execute a command"""
|
||||||
if not command_line.strip():
|
if not command_line.strip():
|
||||||
|
|||||||
Reference in New Issue
Block a user