repoweave 0.1.0__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.
@@ -0,0 +1,13 @@
1
+ # Generated by Cargo
2
+ /target/
3
+ Cargo.lock
4
+
5
+ # IDE
6
+ .idea/
7
+ .vscode/
8
+ *.swp
9
+ *.swo
10
+ *~
11
+
12
+ # mdbook output
13
+ /book/
@@ -0,0 +1,13 @@
1
+ Metadata-Version: 2.4
2
+ Name: repoweave
3
+ Version: 0.1.0
4
+ Summary: A cross-repo workspace manager
5
+ Project-URL: Repository, https://github.com/cwalv/repoweave
6
+ License-Expression: MIT
7
+ Keywords: git,monorepo,multi-repo,workspace
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Rust
12
+ Classifier: Topic :: Software Development :: Build Tools
13
+ Requires-Python: >=3.8
@@ -0,0 +1,27 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "repoweave"
7
+ version = "0.1.0"
8
+ description = "A cross-repo workspace manager"
9
+ license = "MIT"
10
+ requires-python = ">=3.8"
11
+ keywords = ["workspace", "monorepo", "git", "multi-repo"]
12
+ classifiers = [
13
+ "Development Status :: 3 - Alpha",
14
+ "Intended Audience :: Developers",
15
+ "License :: OSI Approved :: MIT License",
16
+ "Programming Language :: Rust",
17
+ "Topic :: Software Development :: Build Tools",
18
+ ]
19
+
20
+ [project.urls]
21
+ Repository = "https://github.com/cwalv/repoweave"
22
+
23
+ [project.scripts]
24
+ rwv = "repoweave:main"
25
+
26
+ [tool.hatch.build.targets.wheel]
27
+ packages = ["src/repoweave"]
@@ -0,0 +1,51 @@
1
+ """
2
+ repoweave - A cross-repo workspace manager.
3
+
4
+ This is a thin Python wrapper that downloads and runs the pre-built
5
+ repoweave (rwv) binary from GitHub Releases. It enables `uvx repoweave`
6
+ and `pipx run repoweave` without requiring a Rust toolchain.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import os
12
+ import platform
13
+ import sys
14
+ import sysconfig
15
+
16
+
17
+ def _find_binary() -> str:
18
+ """Locate the rwv binary bundled in the package's scripts/data directory."""
19
+ # When installed via pip/pipx/uvx, the binary ends up in the scripts dir
20
+ scripts_dir = sysconfig.get_path("scripts")
21
+ if scripts_dir:
22
+ bin_name = "rwv.exe" if sys.platform == "win32" else "rwv"
23
+ candidate = os.path.join(scripts_dir, bin_name)
24
+ if os.path.isfile(candidate):
25
+ return candidate
26
+
27
+ # Fallback: check next to this file (for development / editable installs)
28
+ pkg_dir = os.path.dirname(os.path.abspath(__file__))
29
+ bin_name = "rwv.exe" if sys.platform == "win32" else "rwv"
30
+ candidate = os.path.join(pkg_dir, "bin", bin_name)
31
+ if os.path.isfile(candidate):
32
+ return candidate
33
+
34
+ raise FileNotFoundError(
35
+ f"Could not find the rwv binary. "
36
+ f"Platform: {platform.system()} {platform.machine()}. "
37
+ f"Please report this issue at https://github.com/cwalv/repoweave/issues"
38
+ )
39
+
40
+
41
+ def main() -> None:
42
+ """Entry point for the `rwv` console script."""
43
+ import subprocess
44
+
45
+ binary = _find_binary()
46
+ result = subprocess.run([binary, *sys.argv[1:]])
47
+ raise SystemExit(result.returncode)
48
+
49
+
50
+ if __name__ == "__main__":
51
+ main()