summary refs log tree commit diff
path: root/pkgs/development/tools/yarn2nix-moretea/yarn2nix
diff options
context:
space:
mode:
authorYuka <yuka@yuka.dev>2021-10-08 14:18:57 +0200
committerGitHub <noreply@github.com>2021-10-08 14:18:57 +0200
commitb27d18a412b071f5d7991d1648cfe78ee7afe68a (patch)
tree3ee7aafb1e71944f50e798b9ea45055c3b0f6318 /pkgs/development/tools/yarn2nix-moretea/yarn2nix
parent839fb3f5231b29091c6951c0fda29f9b8cd2bc19 (diff)
downloadnixpkgs-b27d18a412b071f5d7991d1648cfe78ee7afe68a.tar
nixpkgs-b27d18a412b071f5d7991d1648cfe78ee7afe68a.tar.gz
nixpkgs-b27d18a412b071f5d7991d1648cfe78ee7afe68a.tar.bz2
nixpkgs-b27d18a412b071f5d7991d1648cfe78ee7afe68a.tar.lz
nixpkgs-b27d18a412b071f5d7991d1648cfe78ee7afe68a.tar.xz
nixpkgs-b27d18a412b071f5d7991d1648cfe78ee7afe68a.tar.zst
nixpkgs-b27d18a412b071f5d7991d1648cfe78ee7afe68a.zip
yarn2nix: handle codeload.github.com uris in IFD mode (#136922)
Diffstat (limited to 'pkgs/development/tools/yarn2nix-moretea/yarn2nix')
-rwxr-xr-xpkgs/development/tools/yarn2nix-moretea/yarn2nix/bin/yarn2nix.js10
-rw-r--r--pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js10
2 files changed, 15 insertions, 5 deletions
diff --git a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/bin/yarn2nix.js b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/bin/yarn2nix.js
index d4f160b124d..d6b4dcf358c 100755
--- a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/bin/yarn2nix.js
+++ b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/bin/yarn2nix.js
@@ -53,7 +53,7 @@ if (json.type !== 'success') {
 
 // Check for missing hashes in the yarn.lock and patch if necessary
 
-const pkgs = R.pipe(
+let pkgs = R.pipe(
   mapObjIndexedReturnArray((value, key) => ({
     ...value,
     nameWithVersion: key,
@@ -61,10 +61,10 @@ const pkgs = R.pipe(
   R.uniqBy(R.prop('resolved')),
 )(json.object)
 
-const fixedPkgsPromises = R.map(fixPkgAddMissingSha1, pkgs)
-
 ;(async () => {
-  const fixedPkgs = await Promise.all(fixedPkgsPromises)
+  if (!options['--no-patch']) {
+    pkgs = await R.map(fixPkgAddMissingSha1, pkgs)
+  }
 
   const origJson = lockfile.parse(data)
 
@@ -81,7 +81,7 @@ const fixedPkgsPromises = R.map(fixPkgAddMissingSha1, pkgs)
 
   if (!options['--no-nix']) {
     // print to stdout
-    console.log(generateNix(fixedPkgs, options['--builtin-fetchgit']))
+    console.log(generateNix(pkgs, options['--builtin-fetchgit']))
   }
 })().catch(error => {
   console.error(error)
diff --git a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js
index 407a602dc5a..7df4679a130 100644
--- a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js
+++ b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js
@@ -80,6 +80,16 @@ function fetchLockedDep(builtinFetchGit) {
 
     const fileName = urlToName(url)
 
+    if (resolved.startsWith('https://codeload.github.com/')) {
+      const s = resolved.split('/')
+      const githubUrl = `https://github.com/${s[3]}/${s[4]}.git`
+      const githubRev = s[6]
+
+      const [_, branch] = nameWithVersion.split('#')
+
+      return fetchgit(fileName, githubUrl, rev, branch || 'master', builtinFetchGit)
+    }
+
     if (url.startsWith('git+') || url.startsWith("git:")) {
       const rev = sha1OrRev