@startuml start :Start; partition "checkPathAgainstClientSideFiltering" { :Get localFilePath; if (Does path exist?) then (no) :Return false; stop endif if (Check .nosync?) then (yes) :Check for .nosync file; if (.nosync found) then (yes) :Log and return true; stop endif endif if (Skip dotfiles?) then (yes) :Check if dotfile; if (Is dotfile) then (yes) :Log and return true; stop endif endif if (Skip symlinks?) then (yes) :Check if symlink; if (Is symlink) then (yes) if (Config says skip?) then (yes) :Log and return true; stop elseif (Unexisting symlink?) then (yes) :Check if relative link works; if (Relative link ok) then (no) :Log and return true; stop endif endif endif endif if (Skip dir or file?) then (yes) :Check dir or file exclusion; if (Excluded by config?) then (yes) :Log and return true; stop endif endif if (Use sync_list?) then (yes) :Check sync_list exclusions; if (Excluded by sync_list?) then (yes) :Log and return true; stop endif endif if (Check file size?) then (yes) :Check for file size limit; if (File size exceeds limit?) then (yes) :Log and return true; stop endif endif :Return false; } stop @enduml