# Script Lua pour synchroniser Silverbullet et Nextcloud via un fichier SH

Button : ${widgets.button("Sync Silverbullet <-> Nextcloud", shizendo.sync_sb_nc)}


```space-lua

shizendo = shizendo or {}

function shizendo.sync_sb_nc()
  message = message or "test"
  print "Sync..."
  -- shell.run("unison", {"silverbullet"})
  -- result = shell.run("rsync",  {"-avz", "--delete", "/home/yunohost.app/silverbullet/notes", "/home/yunohost.app/nextcloud/data/guillaume_ryckelynck/files/silverbullet"})
  result = shell.run("groups")
  -- shell.run("git", {"commit", "-a", "-m", message})
  if result then
    message = "[TEST]\n" ..
      "stdout: " .. (result.stdout or "(none)") .. "\n" ..
      "stderr: " .. (result.stderr or "(none)") .. "\n" ..
      "exit code: " .. tostring(result.code or "nil")
  else
    message = "Failed to execute Silverbullet-Nextcloud update script"
  end
  editor.alert(message)
end
```



```space-lu

shizendo = shizendo or {}

function shizendo.syncSilverbulletNextcloud()
  local result = shell.run("/home/yunohost.app/silverbullet/unison-nextcloud/unison-silverbullet-nextcloud.sh")
  local message
  if result then
    message = "[Silverbullet-Nextcloud update OK]\n" ..
      "stdout: " .. (result.stdout or "(none)") .. "\n" ..
      "stderr: " .. (result.stderr or "(none)") .. "\n" ..
      "exit code: " .. tostring(result.code or "nil")
  else
    message = "Failed to execute Silverbullet-Nextcloud update script"
  end
  editor.flashNotification(message)
end

-- Command to run manually
command.define {
  name = "Sync Silverbullet <-> Nextcloud",
  run = shizendo.syncSilverbulletNextcloud
}

-- Scheduled event to run every hour
-- local updateInterval = 60
-- local lastUpdate = 0
-- event.listen {
  -- name = "cron:secondPassed",
  -- run = function()
    -- local now = os.time()
    -- if (now - lastUpdate)/60 >= updateInterval then
      -- lastUpdate = now
      -- shizendo.syncSilverbulletNextcloud()
    -- end
  -- end
-- }
```

