|
| 1 | +# nodejs-dist-indexer |
| 2 | + |
| 3 | +**An application to create [nodejs.org](https://nodejs.org) distribution index files: index.json and index.tab** |
| 4 | + |
| 5 | +Output can be seen at: |
| 6 | + |
| 7 | + * https://nodejs.org/download/release/index.tab |
| 8 | + * https://nodejs.org/download/release/index.json |
| 9 | + * https://iojs.org/download/release/index.tab |
| 10 | + * https://iojs.org/download/release/index.json |
| 11 | + |
| 12 | +And all subdirectories of https://nodejs.org/download/ and https://iojs.org/download/ containing downloadable tarballs and installers. |
| 13 | + |
| 14 | +## Data |
| 15 | + |
| 16 | +For the purpose of cataloguing files within each versioned subdirectory, nodejs-dist-indexer is able to: |
| 17 | + |
| 18 | +* Determine the specific version of each directory (just the directory name!) |
| 19 | +* Determine the date the distributables were built |
| 20 | +* Decode filenames to determine the OS / architecture / packaging available |
| 21 | +* Determine the version of dependencies bundled with Node.js, including: |
| 22 | + - npm |
| 23 | + - V8 |
| 24 | + - libuv |
| 25 | + - zlib |
| 26 | + - OpenSSL |
| 27 | +* Determine the `NODE_MODULES_VERSION` for compiled add-on compatibility |
| 28 | +* Determine whether the version is an LTS or not |
| 29 | + |
| 30 | +All of this data is made available in JSON and tab-separated format. |
| 31 | + |
| 32 | +OS / architecture / packaging specifiers used in the listings include: |
| 33 | + |
| 34 | +* **aix-ppc64**: normally .tar.gz and .tar.xz |
| 35 | +* **headers**: normally .tar.gz and .tar.xz, downloaded by [node-gyp](https://github.com/nodejs/node-gyp/) |
| 36 | +* **linux-arm64**: normally .tar.gz and .tar.xz (also known as AArch64 or ARMv8) |
| 37 | +* **linux-armv6l**: normally .tar.gz and .tar.xz |
| 38 | +* **linux-armv7l**: normally .tar.gz and .tar.xz |
| 39 | +* **linux-ppc64le**: normally .tar.gz and .tar.xz |
| 40 | +* **linux-x64**: normally .tar.gz and .tar.xz |
| 41 | +* **linux-x86**: normally .tar.gz and .tar.xz |
| 42 | +* **osx-x64-pkg**: OSX .pkg installer (64-bit only since io.js v1) |
| 43 | +* **osx-x64-tar**: normally .tar.gz and .tar.xz |
| 44 | +* **src**: normally .tar.gz and .tar.xz, full source used to build the distribution |
| 45 | +* **sunos-x64**: normally .tar.gz and .tar.xz |
| 46 | +* **sunos-x86**: normally .tar.gz and .tar.xz |
| 47 | +* **win-x64-msi**: Windows 64-bit .msi installer |
| 48 | +* **win-x86-msi**: Windows 32-bit .msi installer |
| 49 | +* **win-x64-exe**: Windows 64-bit bare node.exe, within a win-x64 directory |
| 50 | +* **win-x86-exe**: Windows 32-bit bare node.exe, within a win-x86 directory |
| 51 | + |
| 52 | +## Usage: |
| 53 | + |
| 54 | +Create an index.json and index.tab from a given distribution directory that contains subdirectories that contain distributable files: |
| 55 | + |
| 56 | +```text |
| 57 | +nodejs-dist-indexer \ |
| 58 | + --dist /path/to/dist/directory/ |
| 59 | + --indexjson /path/to/dist/directory/index.json |
| 60 | + --indextab /path/to/dist/directory/index.tab |
| 61 | +``` |
| 62 | + |
| 63 | +List the type of distributable files contained within given directories: |
| 64 | + |
| 65 | +```text |
| 66 | +nodejs-ls-types [-d] <directory>[ <directory> [<directory> ...]] |
| 67 | +``` |
| 68 | + |
| 69 | +The `-d` argument is supplied if it is to only count files that have a corresponding `.done` file; this is used for promoting staged releases where the `.done` file indicates that an upload from a build server is complete. |
| 70 | + |
| 71 | +Output looks like: |
| 72 | + |
| 73 | +```text |
| 74 | +$ nodejs-ls-types latest* |
| 75 | +latest: aix-ppc64 headers linux-arm64 linux-armv6l linux-armv7l linux-ppc64le linux-x64 linux-x86 osx-x64-pkg osx-x64-tar src sunos-x64 sunos-x86 win-x64-msi win-x86-msi |
| 76 | +latest-argon: headers linux-arm64 linux-armv6l linux-armv7l linux-ppc64le linux-x64 linux-x86 osx-x64-pkg osx-x64-tar src sunos-x64 sunos-x86 win-x64-msi win-x86-msi |
| 77 | +latest-v0.10.x: headers linux-x64 linux-x86 osx-x64-pkg osx-x64-tar osx-x86-tar src sunos-x64 sunos-x86 win-x86-exe win-x86-msi |
| 78 | +latest-v0.12.x: headers linux-x64 linux-x86 osx-x64-pkg osx-x64-tar osx-x86-tar src sunos-x64 sunos-x86 win-x86-exe win-x86-msi |
| 79 | +latest-v4.x: headers linux-arm64 linux-armv6l linux-armv7l linux-ppc64le linux-x64 linux-x86 osx-x64-pkg osx-x64-tar src sunos-x64 sunos-x86 win-x64-msi win-x86-msi |
| 80 | +latest-v5.x: headers linux-arm64 linux-armv6l linux-armv7l linux-ppc64le linux-x64 linux-x86 osx-x64-pkg osx-x64-tar src sunos-x64 sunos-x86 win-x64-msi win-x86-msi |
| 81 | +latest-v6.x: aix-ppc64 headers linux-arm64 linux-armv6l linux-armv7l linux-ppc64le linux-x64 linux-x86 osx-x64-pkg osx-x64-tar src sunos-x64 sunos-x86 win-x64-msi win-x86-msi |
| 82 | +``` |
| 83 | + |
| 84 | +----------------------------------- |
| 85 | + |
| 86 | +Managed under the governance of the Node.js [Build Working Group](https://github.com/nodejs/build). |
| 87 | + |
| 88 | +Copyright (c) 2016 Node.js Foundation. All rights reserved. |
| 89 | + |
| 90 | +Licensed under MIT, see the LICENSE.md file for details |
0 commit comments