Sfoglia il codice sorgente

Check if curl and unzip are installed (#386)

Francesco Ambrosini 2 anni fa
parent
commit
4c7d923b7d
1 ha cambiato i file con 17 aggiunte e 2 eliminazioni
  1. 17 2
      pynecone/utils.py

+ 17 - 2
pynecone/utils.py

@@ -17,7 +17,6 @@ from collections import defaultdict
 from pathlib import Path
 from pathlib import Path
 from subprocess import DEVNULL, PIPE, STDOUT
 from subprocess import DEVNULL, PIPE, STDOUT
 from types import ModuleType
 from types import ModuleType
-from typing import _GenericAlias  # type: ignore
 from typing import (
 from typing import (
     TYPE_CHECKING,
     TYPE_CHECKING,
     Any,
     Any,
@@ -29,6 +28,7 @@ from typing import (
     Type,
     Type,
     Union,
     Union,
 )
 )
+from typing import _GenericAlias  # type: ignore
 from urllib.parse import urlparse
 from urllib.parse import urlparse
 import psutil
 import psutil
 import plotly.graph_objects as go
 import plotly.graph_objects as go
@@ -414,7 +414,11 @@ def initialize_web_directory():
 
 
 
 
 def install_bun():
 def install_bun():
-    """Install bun onto the user's system."""
+    """Install bun onto the user's system.
+
+    Raises:
+        FileNotFoundError: If the required packages are not installed.
+    """
     # Bun is not supported on Windows.
     # Bun is not supported on Windows.
     if platform.system() == "Windows":
     if platform.system() == "Windows":
         console.log("Skipping bun installation on Windows.")
         console.log("Skipping bun installation on Windows.")
@@ -423,6 +427,17 @@ def install_bun():
     # Only install if bun is not already installed.
     # Only install if bun is not already installed.
     if not os.path.exists(get_package_manager()):
     if not os.path.exists(get_package_manager()):
         console.log("Installing bun...")
         console.log("Installing bun...")
+
+        # Check if curl is installed
+        curl_path = which("curl")
+        if curl_path is None:
+            raise FileNotFoundError("Pynecone requires curl to be installed.")
+
+        # Check if unzip is installed
+        unzip_path = which("unzip")
+        if unzip_path is None:
+            raise FileNotFoundError("Pynecone requires unzip to be installed.")
+
         os.system(constants.INSTALL_BUN)
         os.system(constants.INSTALL_BUN)