Initial import
This commit is contained in:
25
ops/create.js
Normal file
25
ops/create.js
Normal file
@@ -0,0 +1,25 @@
|
||||
const Fuse = require('fuse-native')
|
||||
const Errors = require('../../shared/Errors')
|
||||
const Message = require('../../shared/Message')
|
||||
const connector = require('../connector')
|
||||
|
||||
module.exports = exports = function (path, mode, cb) {
|
||||
connector.send(
|
||||
Message.route('fs.create')
|
||||
.data({ path, mode })
|
||||
.expect_response(msg => {
|
||||
if ( msg.error() ) {
|
||||
return Errors.toCallback(cb, msg.error())
|
||||
}
|
||||
|
||||
const { node, descriptor } = msg.data()
|
||||
|
||||
delete node.pied_name
|
||||
node.mtime = new Date(node.mtime)
|
||||
node.atime = new Date(node.atime)
|
||||
node.ctime = new Date(node.ctime)
|
||||
|
||||
return process.nextTick(cb, 0, descriptor, node)
|
||||
})
|
||||
)
|
||||
}
|
||||
29
ops/getattr.js
Normal file
29
ops/getattr.js
Normal file
@@ -0,0 +1,29 @@
|
||||
const Fuse = require('fuse-native')
|
||||
const Errors = require('../../shared/Errors')
|
||||
const Message = require('../../shared/Message')
|
||||
const connector = require('../connector')
|
||||
|
||||
module.exports = exports = function (path, cb) {
|
||||
connector.send(
|
||||
Message.route('fs.getattr')
|
||||
.data({ path })
|
||||
.expect_response(msg => {
|
||||
if ( msg.error() ) {
|
||||
if ( msg.error() === Errors.NodeDoesNotExist ) {
|
||||
return process.nextTick(cb, Fuse.ENOENT)
|
||||
} else {
|
||||
return process.nextTick(cb, Fuse.ENODATA)
|
||||
}
|
||||
}
|
||||
|
||||
const { node } = msg.data()
|
||||
|
||||
delete node.pied_name
|
||||
node.mtime = new Date(node.mtime)
|
||||
node.atime = new Date(node.atime)
|
||||
node.ctime = new Date(node.ctime)
|
||||
|
||||
return process.nextTick(cb, 0, node)
|
||||
})
|
||||
)
|
||||
}
|
||||
25
ops/mkdir.js
Normal file
25
ops/mkdir.js
Normal file
@@ -0,0 +1,25 @@
|
||||
const Fuse = require('fuse-native')
|
||||
const Errors = require('../../shared/Errors')
|
||||
const Message = require('../../shared/Message')
|
||||
const connector = require('../connector')
|
||||
|
||||
module.exports = exports = function (path, mode, cb) {
|
||||
connector.send(
|
||||
Message.route('fs.mkdir')
|
||||
.data({ path, mode })
|
||||
.expect_response(msg => {
|
||||
if ( msg.error() ) {
|
||||
return Errors.toCallback(cb, msg.error())
|
||||
}
|
||||
|
||||
const { node } = msg.data()
|
||||
|
||||
delete node.pied_name
|
||||
node.mtime = new Date(node.mtime)
|
||||
node.atime = new Date(node.atime)
|
||||
node.ctime = new Date(node.ctime)
|
||||
|
||||
return process.nextTick(cb, 0, node)
|
||||
})
|
||||
)
|
||||
}
|
||||
19
ops/open.js
Normal file
19
ops/open.js
Normal file
@@ -0,0 +1,19 @@
|
||||
const Fuse = require('fuse-native')
|
||||
const Errors = require('../../shared/Errors')
|
||||
const Message = require('../../shared/Message')
|
||||
const connector = require('../connector')
|
||||
|
||||
module.exports = exports = function (path, flags, cb) {
|
||||
connector.send(
|
||||
Message.route('fs.open')
|
||||
.data({ path, flags })
|
||||
.expect_response(msg => {
|
||||
if ( msg.error() ) {
|
||||
return Errors.toCallback(cb, msg.error())
|
||||
}
|
||||
|
||||
const { descriptor } = msg.data()
|
||||
return process.nextTick(cb, 0, descriptor)
|
||||
})
|
||||
)
|
||||
}
|
||||
20
ops/read.js
Normal file
20
ops/read.js
Normal file
@@ -0,0 +1,20 @@
|
||||
const Fuse = require('fuse-native')
|
||||
const Errors = require('../../shared/Errors')
|
||||
const Message = require('../../shared/Message')
|
||||
const connector = require('../connector')
|
||||
const Streamer = require('../Streamer')
|
||||
|
||||
module.exports = exports = async function (path, fd, buffer, length, position, cb) {
|
||||
try {
|
||||
const { socket_uuid, node_uuid } = await connector.simple_request('stream.getfd', { descriptor: fd })
|
||||
|
||||
const streamer = new Streamer(socket_uuid, node_uuid, length, position)
|
||||
const stream_buffer = await streamer.buffer()
|
||||
|
||||
if ( stream_buffer.length < 1 ) return process.nextTick(cb, 0)
|
||||
stream_buffer.copy(buffer)
|
||||
return process.nextTick(cb, stream_buffer.length)
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
}
|
||||
36
ops/readdir.js
Normal file
36
ops/readdir.js
Normal file
@@ -0,0 +1,36 @@
|
||||
const Fuse = require('fuse-native')
|
||||
const Errors = require('../../shared/Errors')
|
||||
const Message = require('../../shared/Message')
|
||||
const connector = require('../connector')
|
||||
|
||||
module.exports = exports = function (path, cb) {
|
||||
|
||||
connector.send(
|
||||
Message.route('fs.readdir')
|
||||
.data({ path })
|
||||
.expect_response(msg => {
|
||||
if ( msg.error() ) {
|
||||
if ( msg.error() === Errors.NodeDoesNotExist ) {
|
||||
return process.nextTick(cb, Fuse.ENOENT)
|
||||
} else {
|
||||
return process.nextTick(cb, Fuse.ENODATA)
|
||||
}
|
||||
}
|
||||
|
||||
const { nodes } = msg.data()
|
||||
|
||||
const names = nodes.map(x => {
|
||||
const name = x.pied_name
|
||||
|
||||
x.mtime = new Date(x.mtime)
|
||||
x.atime = new Date(x.atime)
|
||||
x.ctime = new Date(x.ctime)
|
||||
delete x.pied_name
|
||||
|
||||
return name
|
||||
})
|
||||
|
||||
return process.nextTick(cb, 0, names, nodes)
|
||||
})
|
||||
)
|
||||
}
|
||||
18
ops/release.js
Normal file
18
ops/release.js
Normal file
@@ -0,0 +1,18 @@
|
||||
const Fuse = require('fuse-native')
|
||||
const Errors = require('../../shared/Errors')
|
||||
const Message = require('../../shared/Message')
|
||||
const connector = require('../connector')
|
||||
|
||||
module.exports = exports = function (path, fd, cb) {
|
||||
connector.send(
|
||||
Message.route('fs.release')
|
||||
.data({ path, descriptor: fd })
|
||||
.expect_response(msg => {
|
||||
if ( msg.error() ) {
|
||||
return Errors.toCallback(cb, msg.error())
|
||||
}
|
||||
|
||||
return process.nextTick(cb, 0)
|
||||
})
|
||||
)
|
||||
}
|
||||
18
ops/rename.js
Normal file
18
ops/rename.js
Normal file
@@ -0,0 +1,18 @@
|
||||
const Fuse = require('fuse-native')
|
||||
const Errors = require('../../shared/Errors')
|
||||
const Message = require('../../shared/Message')
|
||||
const connector = require('../connector')
|
||||
|
||||
module.exports = exports = function (source, destination, cb) {
|
||||
connector.send(
|
||||
Message.route('fs.rename')
|
||||
.data({ source, destination })
|
||||
.expect_response(msg => {
|
||||
if ( msg.error() ) {
|
||||
return Errors.toCallback(cb, msg.error())
|
||||
}
|
||||
|
||||
return process.nextTick(cb, 0)
|
||||
})
|
||||
)
|
||||
}
|
||||
18
ops/rmdir.js
Normal file
18
ops/rmdir.js
Normal file
@@ -0,0 +1,18 @@
|
||||
const Fuse = require('fuse-native')
|
||||
const Errors = require('../../shared/Errors')
|
||||
const Message = require('../../shared/Message')
|
||||
const connector = require('../connector')
|
||||
|
||||
module.exports = exports = function (path, cb) {
|
||||
connector.send(
|
||||
Message.route('fs.rmdir')
|
||||
.data({ path })
|
||||
.expect_response(msg => {
|
||||
if ( msg.error() ) {
|
||||
return Errors.toCallback(cb, msg.error())
|
||||
}
|
||||
|
||||
return process.nextTick(cb, 0)
|
||||
})
|
||||
)
|
||||
}
|
||||
18
ops/unlink.js
Normal file
18
ops/unlink.js
Normal file
@@ -0,0 +1,18 @@
|
||||
const Fuse = require('fuse-native')
|
||||
const Errors = require('../../shared/Errors')
|
||||
const Message = require('../../shared/Message')
|
||||
const connector = require('../connector')
|
||||
|
||||
module.exports = exports = function (path, cb) {
|
||||
connector.send(
|
||||
Message.route('fs.unlink')
|
||||
.data({ path })
|
||||
.expect_response(msg => {
|
||||
if ( msg.error() ) {
|
||||
return Errors.toCallback(cb, msg.error())
|
||||
}
|
||||
|
||||
return process.nextTick(cb, 0)
|
||||
})
|
||||
)
|
||||
}
|
||||
19
ops/write.js
Normal file
19
ops/write.js
Normal file
@@ -0,0 +1,19 @@
|
||||
const Fuse = require('fuse-native')
|
||||
const Errors = require('../../shared/Errors')
|
||||
const Message = require('../../shared/Message')
|
||||
const connector = require('../connector')
|
||||
const Streamer = require('../Streamer')
|
||||
|
||||
module.exports = exports = async function (path, fd, buffer, length, position, cb) {
|
||||
try {
|
||||
const { socket_uuid, node_uuid } = await connector.simple_request('stream.getfd', { descriptor: fd })
|
||||
console.log({socket_uuid, node_uuid})
|
||||
|
||||
const streamer = new Streamer(socket_uuid, node_uuid, length, position)
|
||||
streamer.write(buffer)
|
||||
|
||||
return process.nextTick(cb, length)
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user