Spaces:
Running
on
Zero
Running
on
Zero
import subprocess | |
from pathlib import Path | |
PIXI_PATH = Path("/home/user/.pixi/bin/pixi") | |
BREW_PATH = Path("/home/linuxbrew/.linuxbrew/bin/brew") | |
LSOF_PATH = Path("/home/linuxbrew/.linuxbrew/Cellar/lsof/4.99.3/bin/lsof") | |
def check_and_install_pixi() -> None: | |
try: | |
subprocess.check_call(f"{PIXI_PATH} --version", shell=True) | |
except subprocess.CalledProcessError: | |
print("pixi not found. Installing pixi...") | |
# Install pixi using the provided installation script | |
subprocess.check_call( | |
"curl -fsSL https://pixi.sh/install.sh | bash", shell=True | |
) | |
def check_and_install_homebrew() -> None: | |
try: | |
# Check if Homebrew is installed | |
subprocess.check_call(f"{BREW_PATH} --version", shell=True) | |
except subprocess.CalledProcessError: | |
# If Homebrew is not found, install it | |
print("Homebrew not found. Installing Homebrew...") | |
subprocess.check_call( | |
'/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"', | |
shell=True, | |
) | |
def install_package(package_name) -> None: | |
try: | |
# Install the specified package using Homebrew | |
subprocess.check_call(f"{BREW_PATH} install {package_name}", shell=True) | |
print(f"{package_name} installed successfully.") | |
except subprocess.CalledProcessError as e: | |
print(f"Failed to install {package_name}. Error: {e}") | |
def run_command(command: str) -> None: | |
try: | |
subprocess.check_call(command, shell=True) | |
except subprocess.CalledProcessError as e: | |
print(f"run command {command}. Error: {e}") | |
if __name__ == "__main__": | |
check_and_install_homebrew() | |
install_package(package_name="lsof") | |
check_and_install_pixi() | |
run_command(command=f"{LSOF_PATH} -t -i:7860 | xargs -r kill") | |
run_command(command=f"{PIXI_PATH} run -e spaces app") | |