Skip to content

Commit c849a01

Browse files
committed
Add list command
1 parent 25b4252 commit c849a01

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

index.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const level = require('level')
88
const through = require('through2')
99
const pump = require('pump')
1010
const mkdirp = require('mkdirp')
11+
const collect = require('collect-stream')
1112
const argv = require('yargs').argv
1213

1314
const { loadMetadata } = require('./lib/metadata')
@@ -118,6 +119,16 @@ async function start () {
118119
return res.sendStatus(200)
119120
})
120121

122+
app.get('/list', async (req, res) => {
123+
try {
124+
let result = await list(db)
125+
return res.json(result)
126+
} catch (err) {
127+
console.error('List error:', err)
128+
return res.sendStatus(500)
129+
}
130+
})
131+
121132
await store.ready()
122133
await refreshMounts(hypermount, db)
123134

@@ -134,6 +145,20 @@ async function start () {
134145
}
135146
}
136147

148+
function list (db) {
149+
return new Promise((resolve, reject) => {
150+
const result = {}
151+
const stream = db.createReadStream()
152+
stream.on('data', ({ key: mnt, value: record }) => {
153+
result[record.key] = mnt
154+
})
155+
stream.on('end', () => {
156+
return resolve(result)
157+
})
158+
stream.on('error', reject)
159+
})
160+
}
161+
137162
async function mount (hypermount, db, key, mnt, opts) {
138163
let { key: mountedKey } = await hypermount.mount(key, mnt, opts)
139164

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
"homepage": "https://github.com/andrewosh/hypermount#readme",
2727
"dependencies": {
2828
"chalk": "^2.4.2",
29+
"collect-stream": "^1.2.1",
2930
"corestore": "^1.2.2",
3031
"dat-encoding": "^5.0.1",
3132
"express": "^4.16.4",

0 commit comments

Comments
 (0)