code: def make_link(self, filepath):
          
          # Check file exists. It may have been deleted but still in manifest
          if not os.path.exists(self.fullpath(filepath)):
              print('File not found: {filepath}'.format(
                    filepath=self.fullpath(filepath)))
              if self.contains(filepath):
                  print('removing from manifest')
                  self.delete(filepath)
                  self.needsync = True
          else:
              try:
                  destdir = os.path.dirname(filepath)
                  # Make destination directory if not already exists
                  # Necessary because sometimes this is called before
                  # individual model setup
                  if not os.path.exists(destdir):
                      os.makedirs(destdir)
                  if self.copy_file(filepath):
                      shutil.copy(self.fullpath(filepath), filepath)
                      perm = (stat.S_IRUSR | stat.S_IRGRP
                              | stat.S_IROTH | stat.S_IWUSR)
                      os.chmod(filepath, perm)
                  else:
                      make_symlink(self.fullpath(filepath), filepath)
              except Exception:
                  action = 'copying' if self.copy_file else 'linking'
                  print('payu: error: {action} orig: {orig} '
                        'local: {local}'.format(action=action,
                                                orig=self.fullpath(filepath),
                                                local=filepath))
                  raise
docs: Payu integration function for creating symlinks in work directories
          which point back to the original file.