Scite Backup File

lua-users home
wiki

This simple script hooks onto OnBeforeSave and creates backups of the old version of the file that is being saved. Instead of calling an external command to copy the original file perfectly, the script uses a simple loop to copy the file's content, but losing custom attributes and other metadata. If you require exact backup, consider executing an external command to make the exact copy.

This script uses SciteExtMan.

-- NOTE: uses extman.lua

-- Limitations: silently fails, does not copy metadata

local function backupDeFile(fname)

  local BLK = 1024 * 64

  bkname = fname.."~"

  local inf = io.open(fname, "rb")

  local outf = io.open(bkname, "wb")

  if not inf or not outf then return end

  while true do

    local dat = inf:read(BLK)

    if not dat then break end

    outf:write(dat)

  end

  inf:close()

  outf:close()

end

scite_OnBeforeSave(backupDeFile)

-- KeinHongMan

You can also add the following to your SciTEGlobal.properties if all you want is a simple way to create backups of the current file.

command.name.1.*=Backup this file

command.1.*=dostring os.execute("cmd /C copy $(FileNameExt?) $(FileName?)_"..os.date("%y%m%d%H%M")..".$(FileExt?)")

command.mode.1.*=subsystem:lua,savebefore:no

-- Alan MN


RecentChanges · preferences
edit · history
Last edited June 1, 2010 7:56 am GMT (diff)