forked from louvorja/louvorja
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ftp-deploy.js
90 lines (72 loc) · 2.42 KB
/
ftp-deploy.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
const fs = require('fs');
// Caminho para o arquivo .ftp
const ftpConfigPath = '.ftp';
// Verifica se o arquivo .ftp existe
if (!fs.existsSync(ftpConfigPath)) {
console.error(`O arquivo ${ftpConfigPath} não foi encontrado. Certifique-se de que ele existe na raiz do seu projeto.`);
process.exit(1);
}
// Lê o arquivo .ftp de configuração
const ftpConfig = fs.readFileSync(ftpConfigPath, 'utf-8');
// Parse das informações do arquivo .ftp
const ftpInfo = ftpConfig.split('\n').reduce((info, line) => {
const [key, value] = line.split('=');
info[key.trim()] = value.trim();
return info;
}, {});
// Verifica se todas as informações necessárias estão presentes
if (!ftpInfo.HOST) {
console.error('HOST não encontrado no arquivo ftp.');
process.exit(1);
}
if (!ftpInfo.USER) {
console.error('USER não encontrado no arquivo ftp.');
process.exit(1);
}
if (!ftpInfo.PASSWORD) {
console.error('PASSWORD não encontrado no arquivo ftp.');
process.exit(1);
}
if (!ftpInfo.PORT) {
console.error('PORT não encontrado no arquivo ftp.');
process.exit(1);
}
if (!ftpInfo.LOCAL_ROOT) {
console.error('LOCAL_ROOT não encontrado no arquivo ftp.');
process.exit(1);
}
if (!ftpInfo.REMOTE_ROOT) {
console.error('REMOTE_ROOT não encontrado no arquivo ftp.');
process.exit(1);
}
// *********************************************************************************** //
const FtpDeploy = require("ftp-deploy");
const config = {
host: ftpInfo.HOST,
user: ftpInfo.USER,
password: ftpInfo.PASSWORD,
port: +ftpInfo.PORT,
localRoot: ftpInfo.LOCAL_ROOT,
remoteRoot: ftpInfo.REMOTE_ROOT,
include: ['*', '**/*'],
};
const config_show = { ...config };
delete config_show.password;
console.log("Dados FTP", config_show);
console.log("Iniciando transferência de arquivos...");
const ftpDeploy = new FtpDeploy();
let totalFiles = 0;
let completedFiles = 0;
ftpDeploy.on("uploading", function (data) {
totalFiles = data.totalFilesCount;
completedFiles += 1;
const percentComplete = ((completedFiles / totalFiles) * 100).toFixed(2);
console.log(`Enviando arquivo ${completedFiles} de ${totalFiles} [${percentComplete}%]: ${data.filename}`);
});
ftpDeploy.deploy(config)
.then(() => {
console.log("Transferência de arquivos FTP concluída com sucesso!");
})
.catch((err) => {
console.error("Erro ao transferir arquivos FTP:", err);
});