def run(self):
        backup_per_day = settings.get('backup_per_day')

        window = self.window
        view = window.active_view()

        open_in_same_line = settings.get('open_in_same_line', True)
        if (open_in_same_line):
            (row, col) = view.rowcol(view.sel()[0].begin())
            self.curline = row + 1

        if (not backup_per_day):
            filepath = view.file_name()
            newname = PathsHelper.get_backup_filepath(filepath)
            if os.path.isfile(newname):
                window.open_file(newname)
            else:
                sublime.error_message(
                    'Backup for ' + filepath + ' not exists!')
        else:
            f_files = self.getData(False)

            if not f_files:
                sublime.error_message('Backups for this file not exists!')
                return

            backup_per_time = settings.get('backup_per_time')
            if (backup_per_time):
                window.show_quick_panel(f_files, self.timeFolders)
            else:
                window.show_quick_panel(f_files, self.openFile)
            return
Example #2
0
    def run(self, edit):
        backup_per_day = settings.get('backup_per_day')

        window = self.view.window()
        view = self.view

        open_in_same_line = settings.get('open_in_same_line', True)
        if (open_in_same_line):
            (row, col) = view.rowcol(view.sel()[0].begin())
            self.curline = row + 1

        if (not backup_per_day):
            filepath = view.file_name()
            newname = PathsHelper.get_backup_filepath(filepath)
            if os.path.isfile(newname):
                window.open_file(newname)
            else:
                sublime.error_message('Backup for ' + filepath +
                                      ' does not exist!')
        else:
            f_files = self.getData(False)

            if not f_files:
                sublime.error_message('Backups for this file do not exist!')
                return

            backup_per_time = settings.get('backup_per_time')
            if (backup_per_time):
                window.show_quick_panel(f_files, self.timeFolders)
            else:
                window.show_quick_panel(f_files, self.openFile)
            return
	def run(self, edit):
		backup_per_day = settings.get('backup_per_day')

		if (not backup_per_day):
			window = sublime.active_window()
			view = sublime.Window.active_view(window)
			filepath = view.file_name()
			newname = PathsHelper.get_backup_filepath(filepath)
			if os.path.isfile(newname):
				window.open_file(newname)
			else:
				sublime.error_message('Backup for ' + filepath + ' not exists!')
		else:
			f_files = self.getData(False)

			if not f_files:
				sublime.error_message('Backups for this file not exists!')
				return

			backup_per_time = settings.get('backup_per_time')
			if (backup_per_time):
				self.view.window().show_quick_panel(f_files, self.timeFolders)
			else:
				self.view.window().show_quick_panel(f_files, self.openFile)
			return
	def save_backup(self, view, on_load_event):
		view_size = view.size()
		max_backup_file_size = settings.get('max_backup_file_size_bytes')
		if (view_size is None):
			self.console('Size of view not available')
			return

		if (max_backup_file_size is None):
			self.console('Max allowed size from config not available')
			return



		# don't save files above configured size
		if view_size > max_backup_file_size:
			self.console('Backup not saved, file too large (%d bytes)' % view.size())
			return

		filename = view.file_name()
		newname = PathsHelper.get_backup_filepath(filename)
		if newname == None:
			return

		buffer_id = view.buffer_id()
		content = filename+view.substr(sublime.Region(0, view_size))
		content = self.encode(content)
		current_hash = hashlib.md5(content).hexdigest()

		last_hash = ''
		try:
			last_hash = hashes[buffer_id]
		except Exception as e:
			last_hash = ''


		# not create file backup if no changes from last backup
		if (last_hash == current_hash):
			return

		# not create file backup if current file is backup
		if on_load_event & self.is_backup_file(filename):
			return

		# not create file if exists
		if on_load_event & os.path.isfile(newname):
			return

		(backup_dir, file_to_write) = os.path.split(newname)

		if os.access(backup_dir, os.F_OK) == False:
			os.makedirs(backup_dir)

		shutil.copy(filename, newname)

		hashes[buffer_id] = current_hash
		self.console('Backup saved to: '+newname.replace('\\', '/'))
    def save_backup(self, view, on_load_event):
        if not view or view.is_read_only():
            return

        view_size = view.size()
        max_backup_file_size = settings.get('max_backup_file_size_bytes')
        if (view_size is None):
            self.console('Size of view not available')
            return

        if (max_backup_file_size is None):
            self.console('Max allowed size from config not available')
            return

        # don't save files above configured size
        if view_size > max_backup_file_size:
            self.console(
                'Backup not saved, file too large (%d bytes)' % view.size())
            return

        filename = view.file_name()
        if filename is None:
            return

        # not create file backup if current file is backup
        if on_load_event & self.is_backup_file(filename):
            return

        newname = PathsHelper.get_backup_filepath(filename, on_load_event)
        if newname is None:
            return

        last_backupname = lastbackups.get(filename)

        # not create file backup if no changes from last backup
        if filename and last_backupname:
            if filecmp.cmp(filename, last_backupname):
                return

        # not create file if exists
        if on_load_event & os.path.isfile(newname):
            return

        (backup_dir, file_to_write) = os.path.split(newname)

        if not os.access(backup_dir, os.F_OK):
            os.makedirs(backup_dir)

        shutil.copy(filename, newname)

        lastbackups[filename] = newname
        self.console('Backup saved to: ' + newname.replace('\\', '/'))
Example #6
0
    def save_backup(self, view, on_load_event):

        if (view.is_read_only()):
            return

        view_size = view.size()
        max_backup_file_size = settings.get('max_backup_file_size_bytes')
        if (view_size is None):
            self.console('View size not available.')
            return

        if (max_backup_file_size is None):
            self.console('Max size allowed by config not available.')
            return

        # don't save files above configured size
        if view_size > max_backup_file_size:
            self.console('Backup not saved, file too large (%d bytes).' %
                         view.size())
            return

        filename = view.file_name()
        if filename == None:
            return

        # Check file path in excluded regexes
        if self.is_excluded(filename):
            #cprint("AutoBackups: " + filename + " is excluded");
            return

        # not create file backup if current file is backup
        if on_load_event & self.is_backup_file(filename):
            return

        newname = PathsHelper.get_backup_filepath(filename)
        #cprint("--->  newname: " + newname);
        if newname == None:
            return

        self.console('Autobackup to: ' + newname)

        buffer_id = view.buffer_id()
        content = filename + view.substr(sublime.Region(0, view_size))
        content = self.encode(content)
        current_hash = hashlib.md5(content).hexdigest()

        last_hash = ''
        try:
            last_hash = hashes[buffer_id]
        except Exception as e:
            last_hash = ''

        # not create file backup if no changes from last backup
        if (last_hash == current_hash):
            return

        # not create file if exists
        if on_load_event & os.path.isfile(newname):
            return

        (backup_dir, file_to_write) = os.path.split(newname)

        if os.access(backup_dir, os.F_OK) == False:
            os.makedirs(backup_dir)

        try:
            shutil.copy(filename, newname)
        except FileNotFoundError:
            self.console('Backup not saved. File ' + filename +
                         ' does not exist!')
            return False

        hashes[buffer_id] = current_hash
Example #7
0
    def save_backup(self, view, on_load_event):

        if (view.is_read_only()):
            return

        view_size = view.size()
        max_backup_file_size = settings.get('max_backup_file_size_bytes')
        if (view_size is None):
            self.console('View size not available.')
            return

        if (max_backup_file_size is None):
            self.console('Max size allowed by config not available.')
            return


        # don't save files above configured size
        if view_size > max_backup_file_size:
            self.console('Backup not saved, file too large (%d bytes).' % view.size())
            return


        filename = view.file_name()
        if filename == None:
            return

        # Check file path in excluded regexes
        if self.is_excluded(filename):
            #cprint("AutoBackups: " + filename + " is excluded");
            return



        # not create file backup if current file is backup
        if on_load_event & self.is_backup_file(filename):
            return


        newname = PathsHelper.get_backup_filepath(filename)
        if newname == None:
            return

        buffer_id = view.buffer_id()
        content = filename+view.substr(sublime.Region(0, view_size))
        content = self.encode(content)
        current_hash = hashlib.md5(content).hexdigest()

        last_hash = ''
        try:
            last_hash = hashes[buffer_id]
        except Exception as e:
            last_hash = ''


        # not create file backup if no changes from last backup
        if (last_hash == current_hash):
            return

        # not create file if exists
        if on_load_event & os.path.isfile(newname):
            return

        (backup_dir, file_to_write) = os.path.split(newname)

        if os.access(backup_dir, os.F_OK) == False:
            os.makedirs(backup_dir)

        try:
            shutil.copy(filename, newname)
        except FileNotFoundError:
            self.console('Backup not saved. File '+filename+' does not exist!')
            return False;

        hashes[buffer_id] = current_hash
        self.console('Backup saved to: '+newname.replace('\\', '/'))