summarylogtreecommitdiffstats
path: root/distro-project-full.diff
blob: b8f4fb4a765140f739d72069c7d3b313ee4577fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
diff --git a/dh_julia b/dh_julia
index 41cb1f6..75de588 100755
--- a/dh_julia
+++ b/dh_julia
@@ -13,7 +13,7 @@ function main(argv)
 	elseif argv[1] in ("gather_stdlib_manifest", "distro_manifest_")  # requires pretty print
 		result = getfield(DistroHelper, Symbol(argv[1]))(argv[2:end]...)
 		Pkg.TOML.print(result)
-	elseif argv[1] in ("distro_project", "distro_manifest", "distro_merge", "metadata", "download")  # no print
+	elseif argv[1] in ("distro_project", "distro_project_", "distro_manifest", "distro_merge", "metadata", "download")  # no print
 		getfield(DistroHelper, Symbol(argv[1]))(argv[2:end]...)
 	else
 		throw(Base.error("unsupported args"))
diff --git a/src/DistroHelper.jl b/src/DistroHelper.jl
index 95e294e..1211032 100644
--- a/src/DistroHelper.jl
+++ b/src/DistroHelper.jl
@@ -55,6 +55,21 @@ function depends(deps::AbstractString, version::Any = nothing)
 end
 
 
+"""
+Generate a full Project.toml based on given METADATA/Registry files.
+Output will be written to pwd if dest is not specified.
+"""
+function distro_project_(package::AbstractString, versions::AbstractString, deps::AbstractString, version::Any = nothing, dest::Any=nothing)
+	package = Pkg.TOML.parsefile(package)
+	project = Dict{String,Any}()
+	project["name"], project["uuid"] = package["name"], package["uuid"]
+	project["deps"] = depends(deps, version)
+	open((dest==nothing) ? "Project.toml" : dest, "w") do io
+		Pkg.TOML.print(io, project)
+	end
+end
+
+
 """
 Gather manifest for stdlib
 """