Merge branch 'handle_missing_locations'
This commit is contained in:
		
						commit
						60d8d9abff
					
				@ -43,6 +43,30 @@ proc seqToString(strSeq: seq[string]):string =
 | 
			
		||||
 | 
			
		||||
  return newStr 
 | 
			
		||||
 | 
			
		||||
proc locationsExist*(routine: Routine): bool =
 | 
			
		||||
  var logMsg: string
 | 
			
		||||
  var exists: seq[int]
 | 
			
		||||
  for source in routine.sources:
 | 
			
		||||
    if dirExists(source) or fileExists(source):
 | 
			
		||||
      exists.add(1)
 | 
			
		||||
    else:
 | 
			
		||||
      logMsg = "(" & nowDT & ")" & " Source not found: " & source 
 | 
			
		||||
      writeErrorToLog(logMsg)
 | 
			
		||||
      exists.add(0)
 | 
			
		||||
 | 
			
		||||
  for dest in routine.destinations:
 | 
			
		||||
    if dirExists(dest) or fileExists(dest):
 | 
			
		||||
      exists.add(1)
 | 
			
		||||
    else:
 | 
			
		||||
      logMsg = "(" & nowDT & ")" & " Destination not found: " & dest 
 | 
			
		||||
      writeErrorToLog(logMsg)
 | 
			
		||||
      exists.add(0)
 | 
			
		||||
 | 
			
		||||
  if 0 in exists:
 | 
			
		||||
    return false
 | 
			
		||||
  else:
 | 
			
		||||
    return true
 | 
			
		||||
 | 
			
		||||
#[proc matches*(routine: Routine, filter: string): bool =
 | 
			
		||||
  ## Checks if the routine matches the given filter.
 | 
			
		||||
  ## This function is used to search the list of routines.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								shared.nim
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								shared.nim
									
									
									
									
									
								
							@ -3,8 +3,8 @@ This file is part of EZ-Bkup.
 | 
			
		||||
EZ-Bkup is released under the General Public License 3.0.
 | 
			
		||||
See COPYING or <https://www.gnu.org/licenses/> for details.]#
 | 
			
		||||
 | 
			
		||||
import logging, times, os, distros
 | 
			
		||||
import "models/routine"
 | 
			
		||||
import logging, times, os
 | 
			
		||||
#import "models/routine"
 | 
			
		||||
 | 
			
		||||
let appPath* = getHomeDir() & ".ez-bkup"
 | 
			
		||||
let databasePath* = appPath & "/ez-bkup.sqlite"
 | 
			
		||||
@ -14,8 +14,8 @@ if not dirExists(appPath):
 | 
			
		||||
 | 
			
		||||
var logger = newFileLogger(appPath & "/errors.log")
 | 
			
		||||
let dt = now()
 | 
			
		||||
let nowDT = dt.format("M-d-YYYY h:mm:ss tt")
 | 
			
		||||
var logMsg: string
 | 
			
		||||
let nowDT* = dt.format("M-d-YYYY h:mm:ss tt")
 | 
			
		||||
#var logMsg: string
 | 
			
		||||
 | 
			
		||||
proc writeErrorToLog*(logMsg: string) =
 | 
			
		||||
  logger.log(lvlError, logMsg)
 | 
			
		||||
@ -24,7 +24,7 @@ proc writeInfoToLog*(logMsg: string) =
 | 
			
		||||
  logger.log(lvlInfo, logMsg)
 | 
			
		||||
 | 
			
		||||
proc hasCommas*(filename: string):bool =
 | 
			
		||||
  ',' in filename
 | 
			
		||||
  ',' in filename    
 | 
			
		||||
 | 
			
		||||
proc getAskPassPath*(): string =
 | 
			
		||||
  var askPassPath: string
 | 
			
		||||
 | 
			
		||||
@ -212,7 +212,20 @@ method view(list: RoutineListState): Widget {.locks: "unknown".} =
 | 
			
		||||
                  xAlign = 0 
 | 
			
		||||
                  useMarkup = true         
 | 
			
		||||
              proc clicked() =
 | 
			
		||||
                createThread(thread, rsyncThread, list)                                
 | 
			
		||||
                #check that every source and destination exists for each routine or don't run bkup and show dialog.
 | 
			
		||||
                #locations not found will be logged. see shared.nim
 | 
			
		||||
                var allLocationsExist: seq[bool]
 | 
			
		||||
                for routine in list.routineModel.routineSeq():
 | 
			
		||||
                  if routine.id in list.selected:
 | 
			
		||||
                    if locationsExist(routine) == true:
 | 
			
		||||
                      allLocationsExist.add(true)
 | 
			
		||||
                    else:
 | 
			
		||||
                      allLocationsExist.add(false)
 | 
			
		||||
                if false in allLocationsExist:
 | 
			
		||||
                  #show error status.
 | 
			
		||||
                  list.runStatus = "<span color=\"#ff6b6b\" size=\"large\">Missing Source(s)/Destination(s) in selected Routine(s).</span>"
 | 
			
		||||
                else:
 | 
			
		||||
                  createThread(thread, rsyncThread, list)                                
 | 
			
		||||
        else:
 | 
			
		||||
          Box {.expand: false.}:
 | 
			
		||||
            orient = OrientY
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user