|  | 
| 1 | 1 | { runCommandNoCC | 
| 2 | 2 | , callPackage | 
|  | 3 | +, jq | 
| 3 | 4 | }: | 
| 4 | 5 | 
 | 
| 5 | 6 | let | 
|  | 
| 11 | 12 |       packageName = utils.node2nixDev.packageName; | 
| 12 | 13 |     } | 
| 13 | 14 |     '' | 
| 14 |  | -    mkdir -p $out/lib/node_modules/${utils.node2nixDev.packageName} | 
|  | 15 | +    mkdir -p "$out/lib/node_modules/${utils.node2nixDev.packageName}" | 
| 15 | 16 |     # copy the package.json | 
| 16 |  | -    cp ${utils.node2nixDev}/lib/node_modules/${utils.node2nixDev.packageName}/package.json $out/lib/node_modules/${utils.node2nixDev.packageName}/ | 
|  | 17 | +    cp \ | 
|  | 18 | +      "${utils.node2nixDev}/lib/node_modules/${utils.node2nixDev.packageName}/package.json" \ | 
|  | 19 | +      "$out/lib/node_modules/${utils.node2nixDev.packageName}/" | 
| 17 | 20 |     # copy the dist | 
| 18 |  | -    cp -r ${utils.node2nixDev}/lib/node_modules/${utils.node2nixDev.packageName}/dist $out/lib/node_modules/${utils.node2nixDev.packageName}/ | 
|  | 21 | +    cp -r \ | 
|  | 22 | +      "${utils.node2nixDev}/lib/node_modules/${utils.node2nixDev.packageName}/dist" \ | 
|  | 23 | +      "$out/lib/node_modules/${utils.node2nixDev.packageName}/" | 
| 19 | 24 |     # copy over the production dependencies | 
| 20 | 25 |     if [ -d "${utils.node2nixProd}/lib/node_modules" ]; then | 
| 21 |  | -      cp -r ${utils.node2nixProd}/lib/node_modules $out/lib/node_modules/${utils.node2nixDev.packageName}/ | 
|  | 26 | +      cp -r \ | 
|  | 27 | +        "${utils.node2nixProd}/lib/node_modules" \ | 
|  | 28 | +        "$out/lib/node_modules/${utils.node2nixDev.packageName}/" | 
| 22 | 29 |     fi | 
| 23 |  | -    # create symlink to the deployed executable folder, if applicable | 
| 24 |  | -    if [ -d "${utils.node2nixDev}/lib/node_modules/.bin" ]; then | 
| 25 |  | -      cp -r ${utils.node2nixDev}/lib/node_modules/.bin $out/lib/node_modules/ | 
| 26 |  | -      ln -s $out/lib/node_modules/.bin $out/bin | 
|  | 30 | +    # symlink bin executables | 
|  | 31 | +    if [ \ | 
|  | 32 | +      "$(${jq}/bin/jq 'has("bin")' "$out/lib/node_modules/${utils.node2nixDev.packageName}/package.json")" \ | 
|  | 33 | +      == \ | 
|  | 34 | +      "true" \ | 
|  | 35 | +    ]; then | 
|  | 36 | +      mkdir -p "$out/bin" | 
|  | 37 | +      while IFS= read -r bin_name && IFS= read -r bin_path; do | 
|  | 38 | +        # make files executable | 
|  | 39 | +        chmod a+x "$out/lib/node_modules/${utils.node2nixDev.packageName}/$bin_path" | 
|  | 40 | +        # create the symlink | 
|  | 41 | +        ln -s \ | 
|  | 42 | +          "../lib/node_modules/${utils.node2nixDev.packageName}/$bin_path" \ | 
|  | 43 | +          "$out/bin/$bin_name" | 
|  | 44 | +      done < <( | 
|  | 45 | +        ${jq}/bin/jq -r 'select(.bin != null) | .bin | to_entries[] | (.key, .value)' \ | 
|  | 46 | +        "$out/lib/node_modules/${utils.node2nixDev.packageName}/package.json" | 
|  | 47 | +      ) | 
| 27 | 48 |     fi | 
| 28 |  | -  ''; | 
|  | 49 | +    ''; | 
| 29 | 50 | in | 
| 30 | 51 |   drv | 
0 commit comments