ndev-stack 0.3.5__tar.gz → 0.3.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/PKG-INFO +1 -1
  2. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/__init__.py +1 -1
  3. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/upgrade.py +4 -4
  4. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/runtime/upgrade.py +9 -15
  5. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev_stack.egg-info/PKG-INFO +1 -1
  6. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/pyproject.toml +1 -1
  7. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/README.md +0 -0
  8. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/__main__.py +0 -0
  9. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/cli.py +0 -0
  10. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/__init__.py +0 -0
  11. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/config.py +0 -0
  12. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/constants.py +0 -0
  13. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/distro.py +0 -0
  14. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/github.py +0 -0
  15. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/logger.py +0 -0
  16. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/manifest.py +0 -0
  17. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/modules/__init__.py +0 -0
  18. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/modules/base.py +0 -0
  19. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/modules/builtin/mailpit/manifest.json +0 -0
  20. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/modules/builtin/mailpit/module.py +0 -0
  21. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/modules/builtin/mongodb/manifest.json +0 -0
  22. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/modules/builtin/mongodb/module.py +0 -0
  23. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/modules/builtin/postgres/manifest.json +0 -0
  24. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/modules/builtin/postgres/module.py +0 -0
  25. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/modules/builtin/redis/manifest.json +0 -0
  26. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/modules/builtin/redis/module.py +0 -0
  27. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/modules/manager.py +0 -0
  28. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/common/utils.py +0 -0
  29. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/__init__.py +0 -0
  30. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/chroot/manager.py +0 -0
  31. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/chroot/packages.py +0 -0
  32. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/chroot/shell.py +0 -0
  33. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/cli.py +0 -0
  34. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/available.py +0 -0
  35. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/clean.py +0 -0
  36. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/ctl.py +0 -0
  37. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/current.py +0 -0
  38. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/db.py +0 -0
  39. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/doctor.py +0 -0
  40. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/grok.py +0 -0
  41. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/install.py +0 -0
  42. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/list.py +0 -0
  43. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/logs.py +0 -0
  44. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/mailpit.py +0 -0
  45. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/modules.py +0 -0
  46. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/mongodb.py +0 -0
  47. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/postgres.py +0 -0
  48. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/reload.py +0 -0
  49. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/restart.py +0 -0
  50. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/setup.py +0 -0
  51. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/start.py +0 -0
  52. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/status.py +0 -0
  53. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/stop.py +0 -0
  54. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/uninstall.py +0 -0
  55. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/update.py +0 -0
  56. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/use.py +0 -0
  57. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/commands/vhost.py +0 -0
  58. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/php/builder.py +0 -0
  59. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/php/downloader.py +0 -0
  60. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/php/extensions.py +0 -0
  61. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/php/installer.py +0 -0
  62. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/php/resolver.py +0 -0
  63. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/php/templates.py +0 -0
  64. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/runtime/fpm.py +0 -0
  65. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/runtime/mailpit.py +0 -0
  66. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/runtime/nginx_helper.py +0 -0
  67. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/runtime/pma.py +0 -0
  68. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/runtime/process.py +0 -0
  69. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/runtime/services.py +0 -0
  70. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/runtime/sockets.py +0 -0
  71. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/linux/tui.py +0 -0
  72. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/main.py +0 -0
  73. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/tui.py +0 -0
  74. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/__init__.py +0 -0
  75. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/bin/shim.exe +0 -0
  76. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/cli.py +0 -0
  77. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/commands/__init__.py +0 -0
  78. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/__init__.py +0 -0
  79. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/db.py +0 -0
  80. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/elevate.py +0 -0
  81. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/ext.py +0 -0
  82. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/fcgi.py +0 -0
  83. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/grok.py +0 -0
  84. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/logs.py +0 -0
  85. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/mailpit.py +0 -0
  86. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/mkcert.py +0 -0
  87. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/paths.py +0 -0
  88. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/php.py +0 -0
  89. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/pma.py +0 -0
  90. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/redis_core.py +0 -0
  91. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/services.py +0 -0
  92. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/setup.py +0 -0
  93. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/shim.py +0 -0
  94. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/upgrade.py +0 -0
  95. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/core/vhost.py +0 -0
  96. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/templates/vhost.conf.tmpl +0 -0
  97. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/templates/vhost_ssl.conf.tmpl +0 -0
  98. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev/win/tui.py +0 -0
  99. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev_stack.egg-info/SOURCES.txt +0 -0
  100. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev_stack.egg-info/dependency_links.txt +0 -0
  101. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev_stack.egg-info/entry_points.txt +0 -0
  102. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev_stack.egg-info/requires.txt +0 -0
  103. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/ndev_stack.egg-info/top_level.txt +0 -0
  104. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/setup.cfg +0 -0
  105. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/tests/test_opensuse_compat.py +0 -0
  106. {ndev_stack-0.3.5 → ndev_stack-0.3.6}/tests/test_shim.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ndev-stack
3
- Version: 0.3.5
3
+ Version: 0.3.6
4
4
  Summary: Cross-platform developer stack manager for PHP, FastCGI/PHP-FPM, MariaDB, Redis, PostgreSQL, MongoDB, Nginx, SSL, and Mailpit on Linux and Windows
5
5
  Author-email: Ankit Karan <ankit.karan99@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/ankitkaran99/ndev
@@ -1,7 +1,7 @@
1
1
  """
2
2
  ndev: Fast, cross-platform PHP developer environment for Windows and Linux.
3
3
  """
4
- __version__ = "0.3.5"
4
+ __version__ = "0.3.6"
5
5
 
6
6
  from . import common as common
7
7
  from .common.logger import logger as logger
@@ -71,11 +71,11 @@ def main(
71
71
  console.print(f"\n[bold blue]Upgrading {len(targets)} component(s): {', '.join(targets)}...[/bold blue]\n")
72
72
 
73
73
  for target in targets:
74
- with console.status(f"[bold green]Upgrading {target}...[/bold green]"):
75
- ok, msg = upgrade_rt.upgrade_component(target)
74
+ console.print(f"[bold cyan]Upgrading {target}...[/bold cyan]")
75
+ ok, msg = upgrade_rt.upgrade_component(target)
76
76
  if ok:
77
- console.print(f"[bold green]✓ {msg}[/bold green]")
77
+ console.print(f"[bold green]✓ {msg}[/bold green]\n")
78
78
  else:
79
- console.print(f"[bold red]✗ {msg}[/bold red]")
79
+ console.print(f"[bold red]✗ {msg}[/bold red]\n")
80
80
 
81
81
  console.print("\n[bold green]Upgrade process complete![/bold green]")
@@ -392,31 +392,25 @@ def _download_latest_mkcert() -> tuple[bool, str]:
392
392
  except Exception:
393
393
  pass
394
394
 
395
+ # Attempt -install if passwordless sudo or root is available; don't block on password prompt
395
396
  try:
396
- subprocess.run([str(dest), "-install"], check=False, capture_output=True)
397
+ can_elevate = (os.geteuid() == 0)
398
+ if not can_elevate and shutil.which("sudo"):
399
+ res = subprocess.run(["sudo", "-n", "true"], capture_output=True)
400
+ can_elevate = (res.returncode == 0)
401
+ if can_elevate:
402
+ subprocess.run([str(dest), "-install"], check=False, capture_output=True)
397
403
  except Exception:
398
404
  pass
399
405
 
400
406
  info = get_mkcert_info()
401
- return True, f"mkcert upgraded successfully ({info.current_version or target_ver})."
407
+ return True, f"mkcert installed/upgraded successfully ({info.current_version or target_ver})."
402
408
  except Exception as e:
403
409
  return False, f"mkcert binary download failed: {e}"
404
410
 
405
411
 
406
412
  def upgrade_mkcert() -> tuple[bool, str]:
407
- # 1. Try system package manager first
408
- if shutil.which("zypper") or shutil.which("apt") or shutil.which("apt-get"):
409
- _upgrade_system_packages(["mkcert"])
410
- mkcert_bin = which_binary("mkcert")
411
- if mkcert_bin:
412
- try:
413
- subprocess.run([mkcert_bin, "-install"], check=False)
414
- except Exception:
415
- pass
416
- info = get_mkcert_info()
417
- return True, f"mkcert upgraded successfully ({info.current_version})."
418
-
419
- # 2. Fallback to direct prebuilt binary download
413
+ """Download and set up latest standalone mkcert binary (unprivileged, zero sudo required)."""
420
414
  return _download_latest_mkcert()
421
415
 
422
416
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ndev-stack
3
- Version: 0.3.5
3
+ Version: 0.3.6
4
4
  Summary: Cross-platform developer stack manager for PHP, FastCGI/PHP-FPM, MariaDB, Redis, PostgreSQL, MongoDB, Nginx, SSL, and Mailpit on Linux and Windows
5
5
  Author-email: Ankit Karan <ankit.karan99@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/ankitkaran99/ndev
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ndev-stack"
7
- version = "0.3.5"
7
+ version = "0.3.6"
8
8
  description = "Cross-platform developer stack manager for PHP, FastCGI/PHP-FPM, MariaDB, Redis, PostgreSQL, MongoDB, Nginx, SSL, and Mailpit on Linux and Windows"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes