Install Pear and Pear Applications
The published binary. With no link, installs the Pear platform. With a pear:// link, installs that application and/or its binaries.
npx pear-install [link]--to <dir>— target directory (overrides platform default)--only <paths>— comma-separated filenames to install--timeout <seconds>— network timeout (default30)--dht-bootstrap <nodes>— comma-separatedhost:port--json— newline-delimited JSON output (one{ cmd: 'install', tag, data }per line)
- macOS — apps to
/Applications, bins to/usr/local/bin - Linux — apps to
~/Applications,~/AppImages, or~/.local/bin; bins to~/.local/bin - Windows — apps and bins installed as MSIX packages
const Install = require('pear-install')link(string) —pear://linkto(string, optional) — target directoryonly(string, optional) — comma-separated filenamesbootstrap(array, optional) —[{ host, port }, ...]DHT nodestimeout(number, optional) — milliseconds, default30000corestore(Corestore, optional) — inject an existing corestore; not closed byinstall.close()swarm(Hyperswarm, optional) — inject an existing swarm; not destroyed byinstall.close()
If corestore or swarm is omitted, Install creates and owns its own.
Runs the install. Throws on failure.
Releases the drive, the owned swarm and corestore, and removes the temp dir.
const corestore = new Corestore('./store')
const swarm = new Hyperswarm()
swarm.on('connection', (c) => corestore.replicate(c))
for (const link of links) {
const install = new Install({ link, corestore, swarm })
await install.ready()
await install.close()
}
await swarm.destroy()
await corestore.close()installing→{ link, host }app→{ app, name, version, upgrade, verlink, key, dest }stats→{ download, upload, peers }final→{ success, installed, exists }
For embedding in another CLI. Wraps Install as a pear-opstream of { tag, data } records with stdout formatters.
const InstallCmd = require('pear-install/cmd')
const stream = new InstallCmd({ link, to, only, bootstrap, timeout })
await InstallCmd.output(json, stream)installing→{ link, host }app→{ app, name, version, upgrade, verlink, key, dest }stats→{ download, upload, peers }error→{ code, message, stack, info, success: false }final→{ success, installed, exists }
Drains stream to STDOUT.
jsontruthy — emits each record as{ cmd: 'install', tag, data }, newline-delimited.jsonfalsy — formats per-tag;statsupdates in place via ANSI; static tags stack above.
Returns the final record.
Pass directly as a paparam command runner. Creates InstallCmd instance and passes it to InstallCmd.output
cmdis a paparamcmdinstance
Apache-2.0