{"id":15941447,"url":"https://github.com/frederickgeek8/unipkg","last_synced_at":"2025-03-17T23:32:25.647Z","repository":{"id":57386293,"uuid":"134794859","full_name":"FrederickGeek8/unipkg","owner":"FrederickGeek8","description":"Multi-platform implementation of dpkg","archived":false,"fork":false,"pushed_at":"2024-06-22T05:27:40.000Z","size":261,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-14T09:14:20.758Z","etag":null,"topics":["cli","debian","dpkg","multi-platform"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/unipkg","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FrederickGeek8.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-25T02:48:28.000Z","updated_at":"2024-06-22T04:11:39.000Z","dependencies_parsed_at":"2024-10-27T16:45:07.718Z","dependency_job_id":null,"html_url":"https://github.com/FrederickGeek8/unipkg","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FrederickGeek8%2Funipkg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FrederickGeek8%2Funipkg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FrederickGeek8%2Funipkg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FrederickGeek8%2Funipkg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FrederickGeek8","download_url":"https://codeload.github.com/FrederickGeek8/unipkg/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244126879,"owners_count":20402198,"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","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":["cli","debian","dpkg","multi-platform"],"created_at":"2024-10-07T07:04:19.685Z","updated_at":"2025-03-17T23:32:25.316Z","avatar_url":"https://github.com/FrederickGeek8.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# unipkg\n[![npm](https://img.shields.io/npm/v/unipkg.svg)](https://www.npmjs.com/package/unipkg)\n\n\nMulti-platform implementation of dpkg (in Javascript) with a programming and\ncommand-line interface.\n\n## Requirements\nThis project has been tested (via our Jest tests) on Node v18.20.3 and v20.15.0.\n\nThe project depends on `fs-extra`, `klaw`, `tmp`, `tar`, all of which should be\ninstalled by NPM or Yarn when installing the package. This should *in theory* run\non Windows, macOS, and Linux.\n\n## Installation\n`unipkg` can be installed by either NPM or Yarn, however, for the average user\n`unipkg` can be globally installed (meaning the `unipkg` binaries and libraries\nare in your path) by running\n```bash\nnpm install -g unipkg\n```\nor, of course, locally by running\n```bash\nnpm install unipkg\n```\n\n## Usage\n`unipkg` has both a interface for Node.js as well as a command-line interface.\nThe command line usage is as follows:\n```bash\nUsage: unipkg [options] [command]\n\nOptions:\n\n  -V, --version                output the version number\n  -h, --help                   output usage information\n\nCommands:\n\n  scan|s \u003cdirectory\u003e\n      Implementation of the dpkg-scanpackages -m command.\n  \u003cdirectory\u003e is the directory to be scanned for Debian packages (.deb files).\n  these will be added to a Packages index file which will be output in the current\n  directory.\n\n  build|b \u003cdirectory\u003e [\u003cout\u003e]\n      Implementation of the dpkg-deb -b command.\n  \u003cdirectory\u003e is the well structured package folder which should\n  contain both the DEBIAN folder and the data of the package.\n  [\u003cdeb\u003e] is the optional output filename and path of the resulting Debian\n  format archive. It defaults to outputting a deb file in the current working\n  directory using the standard Debian name scheme.\n```\n\nThe following is boilerplate code for the Node.js interface. The Node.js interface\nhas the same usage and parameters as the CLI. Each function will return a Promise.\n```node\nconst dpkg = require(\"unipkg\");\nconst pkg = \"path/to/repo/deb/root\";\nconst repo = \"path/to/repo\"\n\ndpkg.build(pkg).then(\n  path =\u003e {\n    console.log(`The Debian package ${path} has been successfully written.`);\n  },\n  err =\u003e {\n    console.error(`Error: ${err}`);\n  }\n);\n\ndpkg.scan(repo).then(\n  path =\u003e {\n    console.log(`Your repository has been successfully created.`);\n  },\n  err =\u003e {\n    console.error(`Error: ${err}`);\n  }\n)\n```\n\n## Contributing\nFeel free to submit issues or pull requests to the repository. Before contributing,\nplease read our [Contributing Guide](CONTRIBUTING.md).\n\n## Related Readings\n* [Overview of `control` file fields](http://www.sosst.sk/doc/debian-policy/policy.html/ch-controlfields.html)\n* [Debian Maintainer's Guide](https://www.debian.org/doc/manuals/maint-guide/index.en.html)\n* [Environment Variable Definition](http://pubs.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap08.html)\n* [`ar` File Format](https://en.wikipedia.org/wiki/Ar_%28Unix%29#File_format_details)\n\n## Related Software\nDespite my best efforts to initially find alternative software before beginning\ndevelopment of this project, before publishing I found several alterative to this\npackage. Honestly, if I had found these before probably would not have persued\nwriting my own library for this.\n\n1. [debpkg](https://github.com/xor-gate/debpkg) by xor-gate is a is a pure Go\nlibrary to create Debian packages. It has zero dependencies to Debian. It is\nable to generate packages from Mac OS X, *BSD and Windows.\n2. [dpkg-build](https://github.com/wr1241/dpkg-build) by wr1241 seems to be a\nlargely non-active repository, however, it provides much of the same functionality\nof this library's API (sans CLI).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrederickgeek8%2Funipkg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrederickgeek8%2Funipkg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrederickgeek8%2Funipkg/lists"}