backup-cli-aa007 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +37 -0
  2. package/bin/backup.js +35 -0
  3. package/package.json +31 -0
package/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # Backup CLI 💾🛡️
2
+
3
+ ☕️☕️☕️ Поддержка разработчика: https://donatello.to/dev_aa007
4
+
5
+ ---
6
+
7
+ [![backup-cli](https://img.shields.io/badge/node_-%3E%3D18-brightgreen)](https://www.npmjs.com/package/backup-cli)
8
+ [![npm downloads](https://img.shields.io/npm/dw/backup-cli)](https://www.npmjs.com/package/backup-cli)
9
+ [![Open Source Love](https://badges.frapsoft.com/os/mit/mit.svg?v=102)](https://opensource.org/licenses/MIT)
10
+
11
+ `backup-cli` — это простой CLI-инструмент для создания резервных копий файлов с датой.
12
+ Позволяет автоматически создавать бэкапы любого файла в папку `~/backup` с текущей временной меткой. 🗂️
13
+
14
+ ---
15
+
16
+ ## Installation
17
+
18
+ 🚀 Установка:
19
+
20
+ ```bash
21
+ npm install -g backup-cli
22
+ ⚡ Запуск:
23
+
24
+ bash
25
+ Копировать код
26
+ backup <путь_к_файлу>
27
+ Пример:
28
+
29
+ bash
30
+ Копировать код
31
+ backup ~/Documents/test.txt
32
+ После этого файл будет скопирован в ~/backup с именем вида:
33
+
34
+ Копировать код
35
+ test_2026-01-18_19-04-06.txt
36
+
37
+ ```
package/bin/backup.js ADDED
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require("fs");
4
+ const path = require("path");
5
+
6
+ const args = process.argv.slice(2);
7
+
8
+ if (args.length === 0) {
9
+ console.log("Использование: backup <путь к файлу>");
10
+ process.exit(1);
11
+ }
12
+
13
+ const filePath = args[0];
14
+
15
+ if (!fs.existsSync(filePath)) {
16
+ console.log(`Файл ${filePath} не существует.`);
17
+ process.exit(1);
18
+ }
19
+
20
+ const currentDate = new Date().toISOString().replace(/:/g, "-");
21
+ const homeDir = process.env.HOME || process.env.USERPROFILE;
22
+ const backupDir = path.join(homeDir, "backup");
23
+
24
+ if (!fs.existsSync(backupDir)) {
25
+ fs.mkdirSync(backupDir, { recursive: true });
26
+ }
27
+
28
+ const ext = path.extname(filePath);
29
+ const baseName = path.basename(filePath, ext);
30
+ const backupPath = path.join(backupDir, `${baseName}_${currentDate}${ext}`);
31
+
32
+ fs.copyFileSync(filePath, backupPath);
33
+
34
+ console.log(`Файл ${filePath} скопирован в ${backupPath}`);
35
+
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "backup-cli-aa007",
3
+ "version": "1.0.0",
4
+ "description": "Простой CLI для создания бэкапов файлов с датой",
5
+ "main": "bin/backup.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "start": "node ./bin/backup.js"
9
+ },
10
+ "bin": {
11
+ "backup": "./bin/backup.js"
12
+ },
13
+ "engines": {
14
+ "node": ">=18"
15
+ },
16
+ "author": "aa.arsenenko",
17
+ "license": "MIT",
18
+ "keywords": [
19
+ "backup",
20
+ "cli",
21
+ "node-cli",
22
+ "file",
23
+ "copy",
24
+ "filesystem",
25
+ "utility",
26
+ "automation",
27
+ "developer-tools",
28
+ "script"
29
+ ]
30
+ }
31
+