Ozymandias   29-01-2021, 07:03
#1
Buenas!, este es mi primer posteo en este foro. Hace algún tiempito vengo utilizando Gambas para diferentes cuestiones.
Entre ellas, hice un *GUI* para *ClamAV*.
[Imagen: clamav.png]
A quien le interese les dejo el link de la publicación donde puede descargarse todo el material y ver información extra. https://thenerdyapprentice.blogspot.com/...lamav.html

Mi consulta es la siguiente, hubieron (y siguen habiendo) muchas correcciones y mejoras de código en los últimos tiempos (estoy colaborando co un programador que se contactó conmigo vía el blog). Quisiera agregar alguna manera (dentro del menu *?*, por ejemplo) de que el programa pueda chequear cuál es la última versión disponible. Para así poder dirigir al usuario a la página de descarga, pero no tengo ni idea de como hacerlo.

El proyecto está publicado en GitHub: https://github.com/mcattani/clamscangui

Alguien tiene alguna pista de por donde puedo arrancar?, les agradecería mucho la información!.

Saludos.
Última modificación: 29-01-2021, 13:06 por Ozymandias.
tincho   29-01-2021, 11:35
#2
Hola Ozymandias, bienvenido al foro.
Como sabes el archivo .project contiene la informacion relativa a la versión del programa con lo cual, al descargar dicho archivo desde el repositorio, podes hacer la comparación. Acá te dejo una forma de contrastar las versiones de tu programa y las del repositorio github.
Código:
Public Sub Form_Open()

  Dim vChk As String

  vChk = GitVersion("https://raw.githubusercontent.com/mcattani/clamscangui/master/.project")

  If Application.Version <> vChk Then
    Message.Info(("New version found") & ": " & vChk)
  Endif

End

Public Function GitVersion(raw As String) As String

  Dim s As String
  Dim stx As String[]
  Dim r As String
  Dim v As String

  v = ""
  If Exist("/tmp/project.txt") Then
    Shell "rm /tmp/project.txt" Wait
  Endif

  Shell "wget -O '/tmp/project.txt' '" & raw & "'" Wait
  If Exist("/tmp/project.txt") Then
    s = File.Load("/tmp/project.txt")
    stx = Split(s, "\n")
    For Each r In stx
      If InStr(r, "Version=") Then
        If Split(r, "=")[0] = "Version" Then
          v = Split(r, "=")[1]
          Break
        Endif
      Endif
    Next
  Endif
  Return v
End

Nota: este método sirve siempre y cuando en el repo vayas aumentando la versión cuando haces un cambio relevante que merezca que los usuarios actualicen su instalación local.

Saludos.

1 Saludo.
Ozymandias   29-01-2021, 13:06
#3
Muchísimas gracias Tincho!
Desconocía la dirección https://raw.githubusercontent.com, recientemente aprendía usar GitHub!
tincho   29-01-2021, 13:08
#4
(29-01-2021, 13:06)Ozymandias escribió: Desconocía la dirección https://raw.githubusercontent.com

Si, es muy útil para hacer cosas como esta.
Saludos.

1 Saludo.
tercoide   29-01-2021, 14:03
#5
Bienvenido al foro. Acá somos varios los programadores que también nos gusta la electrónica así que te vas sentir a gusto.

Dentro de la misma idea que propone Tincho, tu app puede buscar en cualquier sitio algun rastro de la existencia de una nueva version. Dependiendo de donde la tengas alojada. GitHub, Sourceforge, tu blog, etc.

Saludos.

"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
jsbsan   29-01-2021, 18:47
#6
tincho:

Muy bueno tu código. Me lo apunto .

Saludos

Julio
tincho   29-01-2021, 19:41
#7
(29-01-2021, 18:47)jsbsan escribió: Muy bueno tu código. Me lo apunto .

Gracias, me alegro de que te sea útil.
Un saludo.

1 Saludo.
  
Usuarios navegando en este tema: 4 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.