diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2019-08-01 09:44:06 +0200 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2019-08-01 09:44:06 +0200 |
commit | 4ca8e53e1ddb2f2f1e5520be33654c33481faae0 (patch) | |
tree | 94896f54f338cc97a1e43adf3dcbdff15d5a512c /pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js | |
parent | 59ac7e16347e2e841e24d3dd959b9fc5dab5fdc8 (diff) | |
parent | 55e4555b77ff7506579c1d4f5d9b562ca6e853b4 (diff) | |
download | nixpkgs-4ca8e53e1ddb2f2f1e5520be33654c33481faae0.tar nixpkgs-4ca8e53e1ddb2f2f1e5520be33654c33481faae0.tar.gz nixpkgs-4ca8e53e1ddb2f2f1e5520be33654c33481faae0.tar.bz2 nixpkgs-4ca8e53e1ddb2f2f1e5520be33654c33481faae0.tar.lz nixpkgs-4ca8e53e1ddb2f2f1e5520be33654c33481faae0.tar.xz nixpkgs-4ca8e53e1ddb2f2f1e5520be33654c33481faae0.tar.zst nixpkgs-4ca8e53e1ddb2f2f1e5520be33654c33481faae0.zip |
Merge staging-next into staging
Diffstat (limited to 'pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js')
-rwxr-xr-x | pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js new file mode 100755 index 00000000000..86e92f85208 --- /dev/null +++ b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js @@ -0,0 +1,49 @@ +#!/usr/bin/env node + +/* Usage: + * node fixup_yarn_lock.js yarn.lock + */ + +const fs = require('fs') +const readline = require('readline') + +const urlToName = require('../lib/urlToName') + +const yarnLockPath = process.argv[2] + +const readFile = readline.createInterface({ + input: fs.createReadStream(yarnLockPath, { encoding: 'utf8' }), + + // Note: we use the crlfDelay option to recognize all instances of CR LF + // ('\r\n') in input.txt as a single line break. + crlfDelay: Infinity, + + terminal: false, // input and output should be treated like a TTY +}) + +const result = [] + +readFile + .on('line', line => { + const arr = line.match(/^ {2}resolved "([^#]+)#([^"]+)"$/) + + if (arr !== null) { + const [_, url, shaOrRev] = arr + + const fileName = urlToName(url) + + result.push(` resolved "${fileName}#${shaOrRev}"`) + } else { + result.push(line) + } + }) + .on('close', () => { + fs.writeFile(yarnLockPath, result.join('\n'), 'utf8', err => { + if (err) { + console.error( + 'fixup_yarn_lock: fatal error when trying to write to yarn.lock', + err, + ) + } + }) + }) |