Atualização de sistema pelo GoogleDrive
Enviado: 19 Nov 2013 21:51
Pessoal,
Estou usando mais uma opção de atualização de sistemas além do tradicional ftp.
Comecei os testes com o GoogleDrive e tá funcionando belezinha.
A primeira coisa que eu fiz foi criar uma conta no google para utilizar o serviço do googledrive que disponibiliza 15GB de graça.
Acessando o googledrive deve ser baixado o sincronizador (Connect Drive to your desktop), após a instalação informar a pasta de sincronismo de arquivos.
A pasta no inicio tem que estar vazia.
Eu criei uma pasta DRIVE e fiz as funções abaixo para testar.
Na página do googledrive https://drive.google.com subi os arquivos meus de teste abaixo:
Estou usando mais uma opção de atualização de sistemas além do tradicional ftp.
Comecei os testes com o GoogleDrive e tá funcionando belezinha.
A primeira coisa que eu fiz foi criar uma conta no google para utilizar o serviço do googledrive que disponibiliza 15GB de graça.
Acessando o googledrive deve ser baixado o sincronizador (Connect Drive to your desktop), após a instalação informar a pasta de sincronismo de arquivos.
A pasta no inicio tem que estar vazia.
Eu criei uma pasta DRIVE e fiz as funções abaixo para testar.
Na página do googledrive https://drive.google.com subi os arquivos meus de teste abaixo:
Código: Selecionar todos
FUNCTION ChecaAtualizacaoGoogleDrive
PUBLIC nTmpLog:=60
IF nAtualizaLog != NIL
HB_IdleDel( nAtualizaLog )
ENDIF
nAtualizaLog:=HB_IdleAdd( {|| ExecutaAtualizacaoGoogleDrive() } )
RETURN .T.
FUNCTION ExecutaAtualizacaoGoogleDrive
LOCAL hEstacaoCobranca, cEstacaoCobranca
IF nTempoUltimaVerificacao = Nil
nTempoUltimaVerificacao:=Seconds()
ENDIF
IF Seconds() - nTempoUltimaVerificacao >= nTmpLog
hb_threadStart( { |oThr|AtualizaAsaPrevGoogleDrive() })
nTempoUltimaVerificacao:=Seconds()
ENDIF
hwg_doevents()
RETURN Nil
FUNCTION AtualizaAsaPrevGoogleDrive
LOCAL aDir, I
IF File(HB_DirBase()+"ESTACAO.INI")
hEstacaoCobranca:=HB_ReadIni(HB_DirBase()+"ESTACAO.INI" )
cEstacaoCobranca:=hEstacaoCobranca["CONFIGURACAO"]["EstacaoCobranca"]
IF AllTrim(GetEnv("COMPUTERNAME")) = AllTrim(cEstacaoCobranca) //Somente uma estção faz a atualização do sistema.
aDir:=Directory(HB_DirBase()+"DRIVE\ASAPREV*.*")
IF Len(Adir) > 0
TRY
FOR I:=1 TO Len(aDir)
IF Upper(aDir[I,1]) = "ASAPREV.EXE"
RenameFile(HB_DirBase()+aDir[I,1],HB_DirBase()+aDir[I,1]+"_"+DataHora()+".EXE" ) //Atualização "OnTheFly" renomeando.
ENDIF
__CopyFile(HB_DirBase()+"DRIVE"+HB_PS()+aDir[I,1],HB_DirBase()+aDir[I,1]) //Atualização "OnTheFly" copiando o novo executável.
FErase(HB_DirBase()+"DRIVE"+HB_PS()+aDir[I,1])
NEXT
IF File(HB_DirBase()+"ASAPREV.NEW") //Arquivo contendo as informações referentes a atualização.
hb_threadStart({|oThr|TocarSom("update.wav")}) //Alerta para chmamar a atenção do usuário, usuário está ciente.
MensagemTimeOut(FileStr(HB_DirBase()+"ASAPREV.NEW"),"Atenção",30000,1) //Mostra a mensagem referente a atualização (espera 30 seg).
Envia_Email({HB_DirBase()+"ASAPREV.NEW"},"Log de confirma‡Æo de atualiza‡Æo de sistema em: "+HB_DtoC(Date(),"DD/MM/YYYY")+HB_EOL()+", feito pelo GoogleDrive.",.F.) //Envia email para mim informando que foi feito a atualização.
RenameFile(HB_DirBase()+"ASAPREV.NEW",HB_DirBase()+"ASAPREV_"+DataHora()+".NEW" ) //Salva para histórico.
ENDIF
END
ENDIF
ENDIF
ENDIF
RETURN Nil