{"id":18939062,"url":"https://github.com/monai/brass","last_synced_at":"2025-07-28T21:09:00.039Z","repository":{"id":20428566,"uuid":"23705172","full_name":"monai/brass","owner":"monai","description":"Build Node.js project to a native OS package","archived":false,"fork":false,"pushed_at":"2015-01-20T15:02:21.000Z","size":596,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-06-26T13:53:41.543Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/monai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-05T14:08:48.000Z","updated_at":"2016-07-03T08:38:38.000Z","dependencies_parsed_at":"2022-07-31T19:18:15.496Z","dependency_job_id":null,"html_url":"https://github.com/monai/brass","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/monai/brass","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monai%2Fbrass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monai%2Fbrass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monai%2Fbrass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monai%2Fbrass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monai","download_url":"https://codeload.github.com/monai/brass/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monai%2Fbrass/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267273147,"owners_count":24062547,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T12:16:16.003Z","updated_at":"2025-07-28T21:09:00.006Z","avatar_url":"https://github.com/monai.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# brass\n\nThis project is deprecated. Use [gulp-brass](https://github.com/monai/gulp-brass) and [gulp-brass-npm](https://github.com/monai/gulp-brass-npm) instead.\n\n[![Build Status](http://img.shields.io/travis/monai/brass/develop.svg)](https://travis-ci.org/monai/brass)\n[![NPM Version](http://img.shields.io/npm/v/brass.svg)](https://www.npmjs.org/package/brass)\n\nBuild Node.js project to a native OS package.\n\n## Installation\n\nInstall as dependency:\n\n`npm install brass`\n\nInstall as CLI tool:\n\n`npm install -g brass`\n\n## How to use\n\n### CLI\n\nRun `brass` in your project directory where file `package.json` is located.\n\nRun `brass -h` for usage.\n\n### Programmatically\n\n```js\nvar brass = require('brass');\nvar options, emitter;\n\noptions = {\n  workDir: '.'\n};\n\nemitter = brass.build(options, function (error) {\n    console.log('finish');\n});\n\nemitter.on('info', function (data) {\n    console.log(data);\n});\n```\n\n## API\n\n### build([options], [callback])\n\n- `options Object` - an optional object that supersedes options from `package.json`.\n- `callback(error) Function` - an optional callback function to run once package building have completed.\n\n## Options\n\nOptions are read from several locations and merged key-wise in particular order:\n\n1. Standard package.json [properties](https://www.npmjs.org/doc/files/package.json.html) (`pkg`).\n2. Object `brass` in package.json file.\n3. `options` argument in API function or CLI overrides.\n\n### Example\n\nFor given package.json file\n\n```json\n{\n  \"name\": \"theapp\",\n  \"version\": \"0.0.0\",\n  \"brass\": {\n    \"name\": \"myapp\"\n  }\n}\n```\n\nand API call\n\n```js\nbrass.build({ version: \"0.0.1\" });\n```\n\nfinal options object would be:\n\n```js\n{\n  name: \"myapp\",\n  version: \"0.0.1\"\n}\n```\n\n### Properties\n\nRequired:\n\n- `type` (default: rpm) - package type. For now only RPM is supported.\n- `name` (default: `pkg.name`) - package name.\n- `version` (default: `pkg.version`) - package version.\n- `package` (default: `process.cwd()`) - path to npm package to build.\n- `workDir` (default: `os.tmpdir()`) - work directory for temporary and build files.\n- `summary` (default: 'Node.js module '+ `pkg.name`) - short description.\n- `description` (default: `pkg.description`) - long description.\n- `release` (default: 1) - release number.\n- `group` (default: 'Applications/Internet') - RPM group ([valid groups](https://fedoraproject.org/wiki/RPMGroups)).\n- `license` (default: `pkg.license`) - license.\n- `prefix` (default: '/usr') - install prefix.\n\nBinaries and service:\n\n- `bin` (default: `pkg.bin`) - [map of command names](https://www.npmjs.org/doc/files/package.json.html#bin) to local filenames that will be symlinked into `prefix/bin`.\n- `service` (default: none) - system service description.\n  - `service.type` - valid type: (systemd, sysv).\n  - `service.name` - command name that will be placed into `prefix/sbin`.\n  - `service.target` - local filename that the command will be linking to.\n  - `service.user`- run process as another user.\n\nFile mapping:\n\n- `files` - an array of map objects.\n - `files[].target` - directory to copy files to.\n - `files[].files` - glob pattern.\n - `files[].cwd` - directory to start [globbing from](https://github.com/isaacs/node-glob#options).\n - `files[].type` - 'config' for configuration files or empty for normal files.\n - `files[].noreplace` - don't replace files on package upgrade, it can be used in combination with `type = config`.\n - `files[].attr` - an file permission array `[ chmod, user, group ]`.\n\nInstead of map object a shorthand expression can be used. Simple glob pattern, e.g. `**\\*.js` is equal to:\n\n```json\n{\n  \"target\": \"/usr/lib/\u003cname\u003e\",\n  \"files\": \"**/*.js\",\n  \"cwd\": \".\"\n}\n```\n\nOptional RPM [properties](http://www.rpm.org/max-rpm/s1-rpm-build-creating-spec-file.html):\n\n- `url` (default: empty) - documentation URL.\n- `distribution` (default: empty) - usually Linux distribution name.\n- `vendor` (default: `pkg.author`) - organization that distributes the software.\n- `packager` (default: empty) - organization that actually packaged the software.\n\n## License\n\nISC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonai%2Fbrass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonai%2Fbrass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonai%2Fbrass/lists"}