const Fuse = require('fuse-native') const fs = require('fs') const conn = require('./connector') const config = require('./config') const ops = { readdir: require('./ops/readdir'), getattr: require('./ops/getattr'), mkdir: require('./ops/mkdir'), rmdir: require('./ops/rmdir'), open: require('./ops/open'), read: require('./ops/read'), release: require('./ops/release'), create: require('./ops/create'), unlink: require('./ops/unlink'), rename: require('./ops/rename'), write: require('./ops/write'), flush: require('./ops/flush'), getxattr: require('./ops/getxattr'), setxattr: require('./ops/setxattr'), removexattr: require('./ops/removexattr'), listxattr: require('./ops/listxattr'), fgetattr: require('./ops/fgetattr'), symlink: require('./ops/symlink'), readlink: require('./ops/readlink'), chmod: require('./ops/chmod'), } ;(async () => { await config.initialize() conn.initialize() await conn.open() await conn.authenticate(config.config.token) const mnt = config.config.mountpoint const fuse = new Fuse(mnt, ops, {debug: true, displayFolder: true}) await new Promise((res, rej) => { fuse.mount(err => { if (err) { console.error(err) rej(err) } else res() }) }) console.log('Mounted at ' + mnt) await new Promise(res => { process.on('SIGINT', () => { res() }) }) await new Promise((res, rej) => { fuse.unmount(err => { if (err) { console.error(err) rej(err) } else { res() } }) }) console.log('Unmounted.') conn.close() })().catch((e) => { console.error(e) conn.close() })