status.js 796 B

12345678910111213141516171819202122232425262728293031
  1. const fs = require('fs')
  2. const path = require('path')
  3. const log = require('../../util/log')
  4. const bplist = require('bplist-parser')
  5. module.exports = {
  6. version: 4,
  7. name: 'backup.status',
  8. description: `Gets a backup's status`,
  9. requiresBackup: true,
  10. // Run on a v3 lib / backup object.
  11. async run (lib, { backup }) {
  12. // Load and parse status for the backup.
  13. log.verbose('parsing status', backup.path)
  14. let data = bplist.parseBuffer(fs.readFileSync(path.join(backup.path, 'Status.plist')))[0]
  15. return data
  16. },
  17. // Status fields.
  18. output: {
  19. uuid: el => el.UUID,
  20. isFullBackup: el => el.IsFullBackup,
  21. version: el => el.Version, // backup version
  22. backupState: el => el.BackupState,
  23. date: el => el.Date,
  24. snapshotState: el => el.SnapshotState
  25. }
  26. }