braid-text 0.2.113 → 0.2.114
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.
- package/index.js +1 -87
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -9,10 +9,7 @@ function create_braid_text() {
|
|
|
9
9
|
db_folder: './braid-text-db',
|
|
10
10
|
length_cache_size: 10,
|
|
11
11
|
meta_file_save_period_ms: 1000,
|
|
12
|
-
cache: {}
|
|
13
|
-
backups: false,
|
|
14
|
-
backups_folder: './braid-text-backups',
|
|
15
|
-
backups_interval: 60 * 1000
|
|
12
|
+
cache: {}
|
|
16
13
|
}
|
|
17
14
|
|
|
18
15
|
let waiting_puts = 0
|
|
@@ -1302,92 +1299,10 @@ function create_braid_text() {
|
|
|
1302
1299
|
var files = (await fs.promises.readdir(braid_text.db_folder))
|
|
1303
1300
|
.filter(x => /\.\d+$/.test(x))
|
|
1304
1301
|
init_filename_mapping(files)
|
|
1305
|
-
|
|
1306
|
-
// Start backups if enabled
|
|
1307
|
-
if (braid_text.backups) backup_init()
|
|
1308
1302
|
})()
|
|
1309
1303
|
await db_folder_init.p
|
|
1310
1304
|
}
|
|
1311
1305
|
|
|
1312
|
-
function backup_init() {
|
|
1313
|
-
if (backup_init.started) return
|
|
1314
|
-
backup_init.started = true
|
|
1315
|
-
|
|
1316
|
-
async function backup_braid_text_db() {
|
|
1317
|
-
var path = require('path')
|
|
1318
|
-
var src_dir = braid_text.db_folder
|
|
1319
|
-
var backup_dir = braid_text.backups_folder
|
|
1320
|
-
|
|
1321
|
-
// Create backup dir if it doesn't exist
|
|
1322
|
-
await fs.promises.mkdir(backup_dir, { recursive: true })
|
|
1323
|
-
|
|
1324
|
-
// Get current date string
|
|
1325
|
-
var d = new Date()
|
|
1326
|
-
var y = d.getYear() + 1900
|
|
1327
|
-
var m = d.getMonth() + 1
|
|
1328
|
-
if (m < 10) m = '0' + m
|
|
1329
|
-
var day = d.getDate()
|
|
1330
|
-
if (day < 10) day = '0' + day
|
|
1331
|
-
var date = y + '-' + m + '-' + day
|
|
1332
|
-
|
|
1333
|
-
// Read files in src_dir (non-recursive)
|
|
1334
|
-
var files
|
|
1335
|
-
try {
|
|
1336
|
-
files = await fs.promises.readdir(src_dir)
|
|
1337
|
-
} catch (e) { return }
|
|
1338
|
-
|
|
1339
|
-
for (var file of files) {
|
|
1340
|
-
// Only process files ending with .N where N is an integer
|
|
1341
|
-
var match = file.match(/^(.+)\.(\d+)$/)
|
|
1342
|
-
if (!match) continue
|
|
1343
|
-
|
|
1344
|
-
var base_name = match[1]
|
|
1345
|
-
var src_path = path.join(src_dir, file)
|
|
1346
|
-
|
|
1347
|
-
// Get source file stats
|
|
1348
|
-
var src_stat
|
|
1349
|
-
try {
|
|
1350
|
-
src_stat = await fs.promises.stat(src_path)
|
|
1351
|
-
} catch (e) { continue }
|
|
1352
|
-
|
|
1353
|
-
// Skip directories
|
|
1354
|
-
if (!src_stat.isFile()) continue
|
|
1355
|
-
|
|
1356
|
-
// Create backup subdir for this base_name if needed
|
|
1357
|
-
var file_backup_dir = path.join(backup_dir, base_name)
|
|
1358
|
-
await fs.promises.mkdir(file_backup_dir, { recursive: true })
|
|
1359
|
-
|
|
1360
|
-
// Check if we need to backup (compare mtime with most recent backup)
|
|
1361
|
-
var backup_path = path.join(file_backup_dir, date)
|
|
1362
|
-
var needs_backup = true
|
|
1363
|
-
|
|
1364
|
-
try {
|
|
1365
|
-
// Find the latest backup file (sorted by date name)
|
|
1366
|
-
var backups = await fs.promises.readdir(file_backup_dir)
|
|
1367
|
-
if (backups.length > 0) {
|
|
1368
|
-
backups.sort()
|
|
1369
|
-
var latest_backup = backups[backups.length - 1]
|
|
1370
|
-
var latest_backup_path = path.join(file_backup_dir, latest_backup)
|
|
1371
|
-
var backup_stat = await fs.promises.stat(latest_backup_path)
|
|
1372
|
-
// Only backup if source is newer than latest backup
|
|
1373
|
-
if (src_stat.mtimeMs <= backup_stat.mtimeMs)
|
|
1374
|
-
needs_backup = false
|
|
1375
|
-
}
|
|
1376
|
-
} catch (e) {
|
|
1377
|
-
// Backup dir empty or doesn't exist, so we need to create backup
|
|
1378
|
-
}
|
|
1379
|
-
|
|
1380
|
-
if (needs_backup) {
|
|
1381
|
-
require('child_process').execFile(
|
|
1382
|
-
'/bin/cp', [src_path, backup_path])
|
|
1383
|
-
}
|
|
1384
|
-
}
|
|
1385
|
-
}
|
|
1386
|
-
|
|
1387
|
-
backup_braid_text_db()
|
|
1388
|
-
setInterval(backup_braid_text_db, braid_text.backups_interval)
|
|
1389
|
-
}
|
|
1390
|
-
|
|
1391
1306
|
async function get_files_for_key(key) {
|
|
1392
1307
|
await db_folder_init()
|
|
1393
1308
|
try {
|
|
@@ -2937,7 +2852,6 @@ function create_braid_text() {
|
|
|
2937
2852
|
braid_text.get_resource = get_resource
|
|
2938
2853
|
|
|
2939
2854
|
braid_text.db_folder_init = db_folder_init
|
|
2940
|
-
braid_text.backup_init = backup_init
|
|
2941
2855
|
braid_text.encode_filename = encode_filename
|
|
2942
2856
|
braid_text.decode_filename = decode_filename
|
|
2943
2857
|
|