| |
@@ -24,13 +24,14 @@
|
| |
XDG_CACHE_HOME = os.getenv("XDG_CACHE_HOME", os.path.expanduser("~/.cache"))
|
| |
CACHEDIR = os.path.join(XDG_CACHE_HOME, "rust2rpm")
|
| |
API_URL = "https://crates.io/api/v1/"
|
| |
- JINJA_ENV = jinja2.Environment(loader=jinja2.ChoiceLoader([
|
| |
- jinja2.FileSystemLoader(["/"]),
|
| |
- jinja2.PackageLoader("rust2rpm", "templates"),
|
| |
- ]),
|
| |
- extensions=["jinja2.ext.do"],
|
| |
- trim_blocks=True,
|
| |
- lstrip_blocks=True)
|
| |
+ JINJA_ENV = jinja2.Environment(
|
| |
+ loader=jinja2.ChoiceLoader([
|
| |
+ jinja2.FileSystemLoader(["/"]),
|
| |
+ jinja2.PackageLoader("rust2rpm", "templates"),
|
| |
+ ]),
|
| |
+ extensions=["jinja2.ext.do"],
|
| |
+ trim_blocks=True,
|
| |
+ lstrip_blocks=True)
|
| |
|
| |
def get_default_target():
|
| |
# TODO: add fallback for /usr/lib/os-release
|
| |
@@ -122,8 +123,7 @@
|
| |
req = requests.get(url, stream=True)
|
| |
req.raise_for_status()
|
| |
total = int(req.headers["Content-Length"])
|
| |
- with remove_on_error(cratef), \
|
| |
- open(cratef, "wb") as f:
|
| |
+ with remove_on_error(cratef), open(cratef, "wb") as f:
|
| |
for chunk in tqdm.tqdm(req.iter_content(), f"Downloading {cratef_base}".format(cratef_base),
|
| |
total=total, unit="B", unit_scale=True):
|
| |
f.write(chunk)
|
| |
@@ -183,7 +183,7 @@
|
| |
cratef, crate, version = local_crate(crate, version)
|
| |
else:
|
| |
if store:
|
| |
- raise ValueError('--store-crate can only be used for a crate')
|
| |
+ raise ValueError("--store-crate can only be used for a crate")
|
| |
|
| |
toml, crate, version = local_toml(crate, version)
|
| |
diff = make_patch(toml, enabled=patch, tmpfile=True)
|
| |
@@ -220,6 +220,8 @@
|
| |
help="Do initial patching of Cargo.toml")
|
| |
parser.add_argument("-s", "--store-crate", action="store_true",
|
| |
help="Store crate in current directory")
|
| |
+ parser.add_argument("--all-features", action="store_true",
|
| |
+ help="Activate all available features")
|
| |
parser.add_argument("crate", help="crates.io name\n"
|
| |
"path/to/local.crate\n"
|
| |
"path/to/project/",
|
| |
@@ -232,7 +234,7 @@
|
| |
return
|
| |
|
| |
if args.crate is None:
|
| |
- parser.error('required crate/path argument missing')
|
| |
+ parser.error("required crate/path argument missing")
|
| |
|
| |
crate, diff, metadata = make_diff_metadata(args.crate, args.version,
|
| |
patch=args.patch,
|
| |
@@ -250,8 +252,9 @@
|
| |
kwargs = {}
|
| |
kwargs["crate"] = crate
|
| |
kwargs["target"] = args.target
|
| |
+ kwargs["all_features"] = args.all_features
|
| |
bins = [tgt for tgt in metadata.targets if tgt.kind == "bin"]
|
| |
- libs = [tgt for tgt in metadata.targets if tgt.kind in ("lib", "rlib", "proc-macro")]
|
| |
+ libs = [tgt for tgt in metadata.targets if tgt.kind in {"lib", "rlib", "proc-macro"}]
|
| |
is_bin = len(bins) > 0
|
| |
is_lib = len(libs) > 0
|
| |
if is_bin:
|
| |
@@ -268,7 +271,7 @@
|
| |
else:
|
| |
kwargs["auto_changelog_entry"] = True
|
| |
|
| |
- if args.target in ("fedora", "mageia", "opensuse"):
|
| |
+ if args.target in {"fedora", "mageia", "opensuse"}:
|
| |
kwargs["include_build_requires"] = True
|
| |
kwargs["include_provides"] = False
|
| |
kwargs["include_requires"] = False
|
| |
Signed-off-by: Igor Gnatenko ignatenkobrain@fedoraproject.org