Prog de mise a jour

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
jblaise.cs
Messages : 30
Inscription : lun. 26/avr./2004 11:30
Localisation : V'dauban
Contact :

Prog de mise a jour

Message par jblaise.cs »

Slt all,
Sa y est jl ai fini mon piti prog de misa a jour :D

Code : Tout sélectionner

Enumeration
  #Window
  #Window2
  #Option
  #List
  #Quit
  #Start
  #Advance
  #Text_0
  #AMXX_Dir
  #CFG_URL
  #Text_1
  #Sauver
  #Annuler
EndEnumeration

Structure Group
  Group_Name.s
  Group_Dir.s
  Group_Number.l
  Group_File01.s
  Group_File02.s
  Group_File03.s
  Group_File04.s
  Group_File05.s
  Group_File06.s
  Group_File07.s
  Group_File08.s
  Group_File09.s
  Group_File10.s
  Group_File11.s
  Group_File12.s
  Group_File13.s
  Group_File14.s
  Group_File15.s
  Group_File16.s
  Group_File17.s
  Group_File18.s
  Group_File19.s
  Group_File20.s
EndStructure

Dim Group.Group(20)

Procedure DownloadFile(File$, OutPutFile$, AMXX_DIR$, CVS_URL$)
  Debug "Start download : " + CVS_URL$ + File$ + " to : " + AMXX_DIR$ + OutPutFile$
  If URLDownloadToFile_(0, CVS_URL$ + File$, AMXX_DIR$ + OutPutFile$, 0, 0) = #S_OK
    Debug "  Download succesfully"
  Else
    Debug "  Download canceled"
  EndIf
EndProcedure

Procedure Open_Window()
  If OpenWindow(#Window, 355, 220, 389, 358, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar, "AMXX - Programme de mise a jour (Via CVS)")
    If CreateGadgetList(WindowID())
      ListIconGadget(#List, 5, 5, 380, 185, "Que voulez vous metre a jour?", 376, #PB_ListIcon_CheckBoxes)
      ButtonGadget(#Quit, 5, 330, 190, 25, "Quitter")
      ButtonGadget(#Start, 5, 305, 380, 25, "Commencer")
      ListViewGadget(#Advance, 5, 190, 380, 110)
      ButtonGadget(#Option, 195, 330, 190, 25, "Option")
    EndIf
  EndIf
EndProcedure
Open_Window()

If OpenPreferences("cvs.cfg") = 0 : MessageRequester("Erreur", "Impossible de trouver le fichier cvs.cfg") : EndIf
PreferenceGroup("Option")
CFG_URL$ = ReadPreferenceString("CFG_URL", "http://home.tele2.fr/JapanClub/amxx/cvs.cfg") : Debug "CVS.CFG URL : " + CFG_URL$
AMXX_DIR$ = ReadPreferenceString("AMXX_DIR", "C:\Program Files\Steam\SteamApps\my-account\dedicated server\cstrike\addons\amxx") : Debug "AMXX Directory : " + AMXX_DIR$
CVS_URL$ = ReadPreferenceString("CVS_URL", "http://www.amxmodx.org/cgi-bin/viewcvs.cgi/*checkout*/amxmodx/") : Debug "CVS URL : " + CVS_URL$
For X = 0 To 20
  PreferenceGroup(Str(X))
  Group(X)\Group_Number = X
  Group(X)\Group_Name = ReadPreferenceString("Nom", "Erreur/")
  Group(X)\Group_Dir = ReadPreferenceString("Dir", "Erreur/")
  If Group(X)\Group_Name <> "Erreur/" : AddGadgetItem(#List, Group(X)\Group_Number, Group(X)\Group_Name) : Debug "Found a group : " + Group(X)\Group_Name + " with id : " + Str(Group(X)\Group_Number) + " and dir : " + Group(X)\Group_Dir : EndIf
  Group(X)\Group_File01 = ReadPreferenceString("Fichier01", "Erreur/") : If Group(X)\Group_File01 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File01 + " for : " + Group(X)\Group_Name + " id : 1" : EndIf
  Group(X)\Group_File02 = ReadPreferenceString("Fichier02", "Erreur/") : If Group(X)\Group_File02 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File02 + " for : " + Group(X)\Group_Name + " id : 2" : EndIf
  Group(X)\Group_File03 = ReadPreferenceString("Fichier03", "Erreur/") : If Group(X)\Group_File03 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File03 + " for : " + Group(X)\Group_Name + " id : 3" : EndIf
  Group(X)\Group_File04 = ReadPreferenceString("Fichier04", "Erreur/") : If Group(X)\Group_File04 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File04 + " for : " + Group(X)\Group_Name + " id : 4" : EndIf
  Group(X)\Group_File05 = ReadPreferenceString("Fichier05", "Erreur/") : If Group(X)\Group_File05 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File05 + " for : " + Group(X)\Group_Name + " id : 5" : EndIf
  Group(X)\Group_File06 = ReadPreferenceString("Fichier06", "Erreur/") : If Group(X)\Group_File06 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File06 + " for : " + Group(X)\Group_Name + " id : 6" : EndIf
  Group(X)\Group_File07 = ReadPreferenceString("Fichier07", "Erreur/") : If Group(X)\Group_File07 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File07 + " for : " + Group(X)\Group_Name + " id : 7" : EndIf
  Group(X)\Group_File08 = ReadPreferenceString("Fichier08", "Erreur/") : If Group(X)\Group_File08 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File08 + " for : " + Group(X)\Group_Name + " id : 8" : EndIf
  Group(X)\Group_File09 = ReadPreferenceString("Fichier09", "Erreur/") : If Group(X)\Group_File09 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File09 + " for : " + Group(X)\Group_Name + " id : 9" : EndIf
  Group(X)\Group_File10 = ReadPreferenceString("Fichier10", "Erreur/") : If Group(X)\Group_File10 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File10 + " for : " + Group(X)\Group_Name + " id : 10" : EndIf
  Group(X)\Group_File11 = ReadPreferenceString("Fichier11", "Erreur/") : If Group(X)\Group_File11 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File11 + " for : " + Group(X)\Group_Name + " id : 11" : EndIf
  Group(X)\Group_File12 = ReadPreferenceString("Fichier12", "Erreur/") : If Group(X)\Group_File12 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File12 + " for : " + Group(X)\Group_Name + " id : 12" : EndIf
  Group(X)\Group_File13 = ReadPreferenceString("Fichier13", "Erreur/") : If Group(X)\Group_File13 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File13 + " for : " + Group(X)\Group_Name + " id : 13" : EndIf
  Group(X)\Group_File14 = ReadPreferenceString("Fichier14", "Erreur/") : If Group(X)\Group_File14 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File14 + " for : " + Group(X)\Group_Name + " id : 14" : EndIf
  Group(X)\Group_File15 = ReadPreferenceString("Fichier15", "Erreur/") : If Group(X)\Group_File15 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File15 + " for : " + Group(X)\Group_Name + " id : 15" : EndIf
  Group(X)\Group_File16 = ReadPreferenceString("Fichier16", "Erreur/") : If Group(X)\Group_File16 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File16 + " for : " + Group(X)\Group_Name + " id : 16" : EndIf
  Group(X)\Group_File17 = ReadPreferenceString("Fichier17", "Erreur/") : If Group(X)\Group_File17 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File17 + " for : " + Group(X)\Group_Name + " id : 17" : EndIf
  Group(X)\Group_File18 = ReadPreferenceString("Fichier18", "Erreur/") : If Group(X)\Group_File18 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File18 + " for : " + Group(X)\Group_Name + " id : 18" : EndIf
  Group(X)\Group_File19 = ReadPreferenceString("Fichier19", "Erreur/") : If Group(X)\Group_File19 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File19 + " for : " + Group(X)\Group_Name + " id : 19" : EndIf
  Group(X)\Group_File20 = ReadPreferenceString("Fichier20", "Erreur/") : If Group(X)\Group_File20 <> "Erreur/" : Debug "Found a download : " + CVS_URL$ + Group(X)\Group_File20 + " for : " + Group(X)\Group_Name + " id : 20" : EndIf
Next
ClosePreferences()

Procedure Open_Option()
  If OpenWindow(#Window2, 348, 211, 493, 78, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar, "Option")
    If CreateGadgetList(WindowID())
      If OpenPreferences("cvs.cfg") = 0 : MessageRequester("Erreur", "Impossible de trouver le fichier cvs.cfg") : EndIf
      PreferenceGroup("Option")
      Version = ReadPreferenceLong("Version", 0.0) : Debug "Version : " + Str(Version)
      CFG_URL$ = ReadPreferenceString("CFG_URL", "http://home.tele2.fr/JapanClub/amxx/cvs.cfg") : Debug "CVS.CFG URL : " + CFG_URL$
      AMXX_DIR$ = ReadPreferenceString("AMXX_DIR", "C:\Program Files\Steam\SteamApps\my-account\dedicated server\cstrike\addons\amxx") : Debug "AMXX Directory : " + AMXX_DIR$
      ClosePreferences()
      TextGadget(#Text_0, 5, 10, 105, 15, "Repertoire de AMXX : ")
      StringGadget(#AMXX_Dir, 150, 5, 335, 20, AMXX_DIR$)
      ButtonGadget(#Sauver, 5, 50, 240, 25, "Sauver")
      ButtonGadget(#Annuler, 245, 50, 240, 25, "Annuler")
      StringGadget(#CFG_URL, 150, 25, 335, 20, CFG_URL$)
      TextGadget(#Text_1, 5, 25, 135, 20, "Url de mise a jour de cvs.cfg")
    EndIf
  EndIf
EndProcedure

Procedure WriteCFGFile()
  If CreatePreferences("cvs.cfg") = 0 : MessageRequester("Erreur", "Impossible de creer le fichier cvs.cfg") : EndIf
  PreferenceGroup("Option")
  WritePreferenceString("CFG_URL", GetGadgetText(#CFG_URL))
  WritePreferenceString("AMXX_DIR", GetGadgetText(#AMXX_Dir))
  For X = 0 To 20
    If Group(X)\Group_Name <> "Erreur/" : PreferenceGroup(Str(X)) : WritePreferenceString("Nom", Group(X)\Group_Name) : WritePreferenceString("Dir", Group(X)\Group_Dir) : EndIf
    If Group(X)\Group_File01 <> "Erreur/" : WritePreferenceString("Fichier01", Group(X)\Group_File01) : EndIf
    If Group(X)\Group_File02 <> "Erreur/" : WritePreferenceString("Fichier02", Group(X)\Group_File02) : EndIf
    If Group(X)\Group_File03 <> "Erreur/" : WritePreferenceString("Fichier03", Group(X)\Group_File03) : EndIf
    If Group(X)\Group_File04 <> "Erreur/" : WritePreferenceString("Fichier04", Group(X)\Group_File04) : EndIf
    If Group(X)\Group_File05 <> "Erreur/" : WritePreferenceString("Fichier05", Group(X)\Group_File05) : EndIf
    If Group(X)\Group_File06 <> "Erreur/" : WritePreferenceString("Fichier06", Group(X)\Group_File06) : EndIf
    If Group(X)\Group_File07 <> "Erreur/" : WritePreferenceString("Fichier07", Group(X)\Group_File07) : EndIf
    If Group(X)\Group_File08 <> "Erreur/" : WritePreferenceString("Fichier08", Group(X)\Group_File08) : EndIf
    If Group(X)\Group_File09 <> "Erreur/" : WritePreferenceString("Fichier09", Group(X)\Group_File09) : EndIf
    If Group(X)\Group_File10 <> "Erreur/" : WritePreferenceString("Fichier10", Group(X)\Group_File10) : EndIf
    If Group(X)\Group_File11 <> "Erreur/" : WritePreferenceString("Fichier11", Group(X)\Group_File11) : EndIf
    If Group(X)\Group_File12 <> "Erreur/" : WritePreferenceString("Fichier12", Group(X)\Group_File12) : EndIf
    If Group(X)\Group_File13 <> "Erreur/" : WritePreferenceString("Fichier13", Group(X)\Group_File13) : EndIf
    If Group(X)\Group_File14 <> "Erreur/" : WritePreferenceString("Fichier14", Group(X)\Group_File14) : EndIf ; OK
    If Group(X)\Group_File15 <> "Erreur/" : WritePreferenceString("Fichier15", Group(X)\Group_File15) : EndIf
    If Group(X)\Group_File16 <> "Erreur/" : WritePreferenceString("Fichier16", Group(X)\Group_File16) : EndIf
    If Group(X)\Group_File17 <> "Erreur/" : WritePreferenceString("Fichier17", Group(X)\Group_File17) : EndIf
    If Group(X)\Group_File18 <> "Erreur/" : WritePreferenceString("Fichier18", Group(X)\Group_File18) : EndIf
    If Group(X)\Group_File19 <> "Erreur/" : WritePreferenceString("Fichier19", Group(X)\Group_File19) : EndIf
    If Group(X)\Group_File20 <> "Erreur/" : WritePreferenceString("Fichier20", Group(X)\Group_File20) : EndIf
  Next
  ClosePreferences()
EndProcedure

Procedure.s GetTheFileName(String$)
  String$ = ReplaceString(String$, "/", "\")
  Repeat
    Y = Y + 1
    Resultat = FindString(Right(String$, Y), "\", 1) ; OK
  Until Resultat <> 0
  S$ = Right(String$, Y - 1)
  ProcedureReturn S$
EndProcedure

Procedure StartMAJ()
  If OpenPreferences("cvs.cfg") = 0 : MessageRequester("Erreur", "Impossible de trouver le fichier cvs.cfg") : EndIf
  PreferenceGroup("Option")
  AMXX_DIR$ = ReadPreferenceString("AMXX_DIR", "C:\Program Files\Steam\SteamApps\my-account\dedicated server\cstrike\addons\amxx")
  CVS_URL$ = ReadPreferenceString("CVS_URL", "http://www.amxmodx.org/cgi-bin/viewcvs.cgi/*checkout*/amxmodx/")
  For X = 0 To 20
    If Group(X)\Group_Name <> "Erreur"
      If GetGadgetItemState(#List, Group(X)\Group_Number) = #PB_ListIcon_Checked
        If Group(X)\Group_File01 <> "Erreur/" : DownloadFile(Group(X)\Group_File01, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File01), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File02 <> "Erreur/" : DownloadFile(Group(X)\Group_File02, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File02), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File03 <> "Erreur/" : DownloadFile(Group(X)\Group_File03, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File03), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File04 <> "Erreur/" : DownloadFile(Group(X)\Group_File04, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File04), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File05 <> "Erreur/" : DownloadFile(Group(X)\Group_File05, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File05), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File06 <> "Erreur/" : DownloadFile(Group(X)\Group_File06, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File06), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File07 <> "Erreur/" : DownloadFile(Group(X)\Group_File07, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File07), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File08 <> "Erreur/" : DownloadFile(Group(X)\Group_File08, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File08), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File09 <> "Erreur/" : DownloadFile(Group(X)\Group_File09, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File09), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File10 <> "Erreur/" : DownloadFile(Group(X)\Group_File10, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File10), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File11 <> "Erreur/" : DownloadFile(Group(X)\Group_File11, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File11), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File12 <> "Erreur/" : DownloadFile(Group(X)\Group_File12, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File12), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File13 <> "Erreur/" : DownloadFile(Group(X)\Group_File13, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File13), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File14 <> "Erreur/" : DownloadFile(Group(X)\Group_File14, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File14), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File15 <> "Erreur/" : DownloadFile(Group(X)\Group_File15, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File15), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File16 <> "Erreur/" : DownloadFile(Group(X)\Group_File16, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File16), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File17 <> "Erreur/" : DownloadFile(Group(X)\Group_File17, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File17), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File18 <> "Erreur/" : DownloadFile(Group(X)\Group_File18, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File18), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File19 <> "Erreur/" : DownloadFile(Group(X)\Group_File19, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File19), AMXX_DIR$, CVS_URL$) : EndIf
        If Group(X)\Group_File20 <> "Erreur/" : DownloadFile(Group(X)\Group_File20, Group(X)\Group_Dir + GetTheFileName(Group(X)\Group_File20), AMXX_DIR$, CVS_URL$) : EndIf
      EndIf
    EndIf
  Next
EndProcedure

Repeat
  EventID = WaitWindowEvent()
  If EventID = #PB_EventGadget
    Select EventGadgetID()
      Case #Start
        StartMAJ()
      Case #Quit
        End
      Case #Option
        Open_Option()
      Case #Annuler
        CloseWindow(#Window2)
      Case #Sauver
        WriteCFGFile()
        CloseWindow(#Window2)
    EndSelect
  EndIf
Until EventID = #PB_EventCloseWindow
Il a bisoin d une sorte de base de donnees genre :

Code : Tout sélectionner

[Option]
CFG_URL = http://home.tele2.fr/JapanClub/amxx/cvs.cfg
AMXX_DIR = C:\Documents and Settings\JBlaise\Bureau\amxx2\
[0]
Nom = Plugin (1/2)
Dir = scripting\
Fichier01 = plugins/admin.sma
Fichier02 = plugins/adminchat.sma
Fichier03 = plugins/admincmd.sma
Fichier04 = plugins/adminhelp.sma
Fichier05 = plugins/adminslots.sma
Fichier06 = plugins/adminvote.sma
Fichier07 = plugins/antiflood.sma
Fichier08 = plugins/cmdmenu.sma
Fichier09 = plugins/csstats.sma
Fichier10 = plugins/imessage.sma
Fichier11 = plugins/mapchooser.sma
Fichier12 = plugins/mapsmenu.sma
Fichier13 = plugins/menufront.sma
Fichier14 = plugins/miscstats.sma
Fichier15 = plugins/multilingual.sma
Fichier16 = plugins/nextmap.sma
Fichier17 = plugins/pausecfg.sma
Fichier18 = plugins/plmenu.sma
Fichier19 = plugins/restmenu.sma
Fichier20 = plugins/scrollmsg.sma
[1]
Nom = Plugin (2/2)
Dir = scripting\
Fichier01 = plugins/statscfg.sma
Fichier02 = plugins/statsx.sma
Fichier03 = plugins/telemenu.sma
Fichier04 = plugins/timeleft.sma
Fichier05 = plugins/welcomemsg.sma
[2]
Nom = Compiler (Linux&Windows)
Dir = scripting\
Fichier01 = plugins/sc
Fichier02 = plugins/sc.exe
Fichier03 = plugins/compile.sh
Je sais je suis jeune et con... mais j ai toute la vie pour etre comme toi ;)