123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- async function getList (ftp, src) {
- return new Promise(resolve => {
- ftp.list(src, (err, list) => {
- if (err) {
- console.error(err)
- resolve(false)
- } else {
- resolve(list)
- }
- })
- })
- }
- async function rmDir (ftp, src, recusive = true) {
- return new Promise(resolve => {
- ftp.rmdir(src, recusive, err => {
- if (err) {
- console.error(err)
- resolve(false)
- } else {
- resolve(true)
- }
- })
- })
- }
- async function deleteFile (ftp, src) {
- return new Promise(resolve => {
- ftp.delete(src, err => {
- if (err) {
- console.error(err)
- resolve(false)
- } else {
- resolve(true)
- }
- })
- })
- }
- async function emptyDir (ftp, src, except = []) {
- const list = await getList(ftp, src)
- for (let i = 0, listNum = list.length; i < listNum; i++) {
- const { type, name } = list[i]
- if (type === 'd' && (name === '.' || name === '..')) continue
- if (except.find(n => n === name)) continue
- const fullSrc = `./${name}`
- if (type === 'd') {
- if (!await rmDir(ftp, fullSrc, true)) return false
- } else {
- if (!await deleteFile(ftp, fullSrc)) return false
- }
- }
- return true
- }
- async function put (ftp, src, dest) {
- return new Promise(resolve => {
- ftp.put(src, dest, err => {
- if (err) {
- console.error(err)
- resolve(false)
- } else {
- resolve(true)
- }
- })
- })
- }
- async function mkDir (ftp, src, recusive = true) {
- return new Promise(resolve => {
- ftp.mkdir(src, recusive, err => {
- if (err) {
- console.error(err)
- resolve(false)
- } else {
- resolve(true)
- }
- })
- })
- }
- module.exports = {
- put,
- rmDir,
- mkDir,
- getList,
- emptyDir,
- deleteFile
- }
|