Skip to content

Commit 1e09b3e

Browse files
committed
Simplified version checking
Simplified dummy-db handling
1 parent ec37ba8 commit 1e09b3e

File tree

5 files changed

+72
-69
lines changed

5 files changed

+72
-69
lines changed

DataDigger2.p

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -231,20 +231,17 @@ END.
231231
PROCEDURE createDummyDb :
232232
/* Create an empty dummy db
233233
*/
234-
DEFINE OUTPUT PARAMETER pcDummyDir AS CHARACTER NO-UNDO.
235-
234+
DEFINE OUTPUT PARAMETER pcDummyDb AS CHARACTER NO-UNDO.
236235
DEFINE VARIABLE cDatabase AS CHARACTER NO-UNDO.
237236

238237
REPEAT:
239-
pcDummyDir = SESSION:TEMP-DIR + 'DataDigger_' + STRING(ETIME).
240-
FILE-INFORMATION:FILE-NAME = pcDummyDir.
238+
pcDummyDb = "DD_" + STRING(ETIME).
239+
cDatabase = SESSION:TEMP-DIR + pcDummyDb + ".db".
240+
FILE-INFORMATION:FILE-NAME = cDatabase.
241241
IF FILE-INFORMATION:FULL-PATHNAME = ? THEN LEAVE.
242242
END.
243243

244-
OS-CREATE-DIR VALUE(pcDummyDir).
245-
cDatabase = pcDummyDir + '\Empty.db'.
246244
CREATE DATABASE cDatabase FROM "EMPTY" REPLACE NO-ERROR.
247-
248245
IF NOT ERROR-STATUS:ERROR THEN CONNECT VALUE(cDatabase) -1.
249246

250247
END PROCEDURE. /* createDummyDb */
@@ -272,6 +269,29 @@ END PROCEDURE. /* DataDigger */
272269

273270
&ENDIF
274271

272+
&IF DEFINED(EXCLUDE-deleteDummyDb) = 0 &THEN
273+
274+
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteDummyDb Procedure
275+
PROCEDURE deleteDummyDb :
276+
/* Create the empty dummy db
277+
*/
278+
DEFINE INPUT PARAMETER pcDummyDb AS CHARACTER NO-UNDO.
279+
280+
DISCONNECT VALUE(pcDummyDb) NO-ERROR.
281+
282+
OS-DELETE VALUE(SESSION:TEMP-DIR + pcDummyDb + ".lg").
283+
OS-DELETE VALUE(SESSION:TEMP-DIR + pcDummyDb + ".b1").
284+
OS-DELETE VALUE(SESSION:TEMP-DIR + pcDummyDb + ".d1").
285+
OS-DELETE VALUE(SESSION:TEMP-DIR + pcDummyDb + ".db").
286+
OS-DELETE VALUE(SESSION:TEMP-DIR + pcDummyDb + ".st").
287+
288+
END PROCEDURE. /* deleteDummyDb */
289+
290+
/* _UIB-CODE-BLOCK-END */
291+
&ANALYZE-RESUME
292+
293+
&ENDIF
294+
275295
&IF DEFINED(EXCLUDE-getSourceFiles) = 0 &THEN
276296

277297
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE getSourceFiles Procedure
@@ -400,7 +420,7 @@ PROCEDURE recompileDataDigger :
400420
*/
401421
DEFINE VARIABLE cSetting AS CHARACTER NO-UNDO.
402422
DEFINE VARIABLE lRecompile AS LOGICAL NO-UNDO.
403-
DEFINE VARIABLE cDummyDir AS CHARACTER NO-UNDO.
423+
DEFINE VARIABLE cDummyDb AS CHARACTER NO-UNDO.
404424

405425
/* You can specify in the settings that you do not want to compile
406426
* This can be useful when you use DD in multiple environments
@@ -427,11 +447,11 @@ PROCEDURE recompileDataDigger :
427447
* so getVersion.p can be compiled */
428448
IF NUM-DBS = 0 THEN
429449
DO:
430-
RUN createDummyDb(OUTPUT cDummyDir).
450+
RUN createDummyDb(OUTPUT cDummyDb).
431451

432452
IF NUM-DBS = 0 THEN
433453
DO:
434-
MESSAGE "Cannot create dummy database in folder" cDummyDir SKIP
454+
MESSAGE "Cannot create dummy database in folder" cDummyDb SKIP
435455
"DataDigger needs at least 1 connected db to compile." VIEW-AS ALERT-BOX INFO BUTTONS OK.
436456
OS-COMMAND NO-WAIT START 'https://github.com/patrickTingen/DataDigger/wiki/Problem-CannotCreateDummyDB'.
437457
STOP.
@@ -440,11 +460,8 @@ PROCEDURE recompileDataDigger :
440460

441461
RUN recompileSelf.
442462

443-
IF cDummyDir <> '' THEN
444-
DO:
445-
DISCONNECT "Empty" NO-ERROR.
446-
OS-DELETE VALUE(cDummyDir) RECURSIVE.
447-
END.
463+
IF cDummyDb <> '' THEN
464+
RUN deleteDummyDb(cDummyDb).
448465

449466
/* Force a restart of the library */
450467
RUN startDiggerLib(INPUT lRecompile).

build.i

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20180926
1+
20180928

checkVersion.p

Lines changed: 30 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -17,73 +17,62 @@ DEFINE INPUT PARAMETER plManualCheck AS LOGICAL NO-UNDO.
1717

1818
{ DataDigger.i }
1919

20-
DEFINE VARIABLE cLocalVersion AS CHARACTER NO-UNDO.
21-
DEFINE VARIABLE cLocalBuildNr AS CHARACTER NO-UNDO.
22-
DEFINE VARIABLE cRemoteVersion AS CHARACTER NO-UNDO.
23-
DEFINE VARIABLE cRemoteBuildNr AS CHARACTER NO-UNDO.
20+
DEFINE VARIABLE cLocalBuild AS CHARACTER NO-UNDO.
21+
DEFINE VARIABLE cRemoteBuild AS CHARACTER NO-UNDO.
2422
DEFINE VARIABLE cNewVersionUrl AS CHARACTER NO-UNDO.
2523
DEFINE VARIABLE lVisit AS LOGICAL NO-UNDO INITIAL TRUE.
24+
DEFINE VARIABLE cStableBuild AS CHARACTER NO-UNDO.
2625

2726
/* Might be spaces in the include file */
28-
cLocalVersion = TRIM('{version.i}').
29-
cLocalBuildNr = TRIM('{build.i}').
27+
cLocalBuild = TRIM('{build.i}').
3028

3129
/* If channel is set to manual, but this is not a manual check then return. */
3230
IF piChannel = {&CHECK-MANUAL} AND NOT plManualCheck THEN RETURN.
3331

32+
/* Get current stable build */
33+
RUN getVersionInfo.p(INPUT 'master', OUTPUT cStableBuild).
34+
3435
/* Get proper version info, depending on channel */
35-
CASE piChannel:
36-
WHEN {&CHECK-MANUAL} THEN RUN getVersionInfo.p(INPUT 'master' , OUTPUT cRemoteVersion, OUTPUT cRemoteBuildNr).
37-
WHEN {&CHECK-STABLE} THEN RUN getVersionInfo.p(INPUT 'master' , OUTPUT cRemoteVersion, OUTPUT cRemoteBuildNr).
38-
WHEN {&CHECK-BETA} THEN RUN getVersionInfo.p(INPUT 'develop', OUTPUT cRemoteVersion, OUTPUT cRemoteBuildNr).
39-
END CASE.
36+
IF piChannel = {&CHECK-MANUAL} OR piChannel = {&CHECK-STABLE} THEN
37+
DO:
38+
/* If local build is newer than stable, set update channel to BETA */
39+
IF cLocalBuild > cStableBuild THEN
40+
DO:
41+
setRegistry("DataDigger:Update","UpdateChannel", "{&CHECK-BETA}").
42+
piChannel = {&CHECK-BETA}.
43+
END.
44+
ELSE
45+
cRemoteBuild = cStableBuild.
46+
END.
47+
48+
IF piChannel = {&CHECK-BETA} THEN
49+
RUN getVersionInfo.p(INPUT 'develop', OUTPUT cRemoteBuild).
4050

4151
/* If version cannot be determined then don't bother. Unless this is a manual check */
42-
IF cRemoteBuildNr = '' THEN
52+
IF cRemoteBuild = '' OR cRemoteBuild = ? THEN
4353
DO:
44-
IF plManualCheck THEN MESSAGE 'Cannot reach version the DataDigger website' VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
54+
IF plManualCheck THEN MESSAGE 'Cannot reach the DataDigger website' VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
4555
RETURN.
4656
END.
4757

4858
/* Save remote version / build */
49-
setRegistry('DataDigger:Update', 'RemoteBuildNr', cRemoteBuildNr).
50-
setRegistry('DataDigger:Update', 'RemoteVersion', cRemoteVersion).
59+
setRegistry('DataDigger:Update', 'RemoteBuildNr', cRemoteBuild).
5160

52-
/* If you are using a build that is newer than the production version, it means you are running a beta version.
53-
* Then force the update channel to 'beta'
54-
*/
55-
IF (piChannel = {&CHECK-MANUAL} OR piChannel = {&CHECK-STABLE})
56-
AND '{build.i}' > cRemoteBuildNr THEN setRegistry("DataDigger:Update","UpdateChannel", "{&CHECK-BETA}").
57-
58-
/* New version? */
59-
IF cRemoteVersion > cLocalVersion THEN
61+
/* Check build to detect new versions */
62+
IF cRemoteBuild > cLocalBuild THEN
6063
DO:
61-
cNewVersionUrl = 'https://github.com/patrickTingen/DataDigger/releases/latest'.
62-
63-
IF plManualCheck THEN
64-
DO:
65-
MESSAGE 'A new version is available on the DataDigger website~n~nDo you want to check it?' VIEW-AS ALERT-BOX INFORMATION BUTTONS YES-NO-CANCEL UPDATE lVisit.
66-
IF lVisit = TRUE THEN OS-COMMAND NO-WAIT START VALUE(cNewVersionUrl).
67-
END.
64+
IF piChannel = {&CHECK-MANUAL} OR piChannel = {&CHECK-STABLE} THEN
65+
cNewVersionUrl = 'https://github.com/patrickTingen/DataDigger/releases/latest'.
6866
ELSE
69-
setRegistry('DataDigger:Update', 'NewVersionURL', cNewVersionUrl).
70-
71-
END.
72-
73-
ELSE
74-
/* New BETA? */
75-
IF cRemoteBuildNr > cLocalBuildNr THEN
76-
DO:
77-
cNewVersionUrl = 'https://github.com/patrickTingen/DataDigger/releases/'.
67+
cNewVersionUrl = 'https://github.com/patrickTingen/DataDigger/releases/'.
7868

7969
IF plManualCheck THEN
8070
DO:
81-
MESSAGE 'A new BETA version is available on the DataDigger website~n~nDo you want to check it?' VIEW-AS ALERT-BOX INFORMATION BUTTONS YES-NO-CANCEL UPDATE lVisit.
71+
MESSAGE 'A new version is available on the DataDigger website~n~nDo you want to check it?' VIEW-AS ALERT-BOX INFORMATION BUTTONS YES-NO-CANCEL UPDATE lVisit.
8272
IF lVisit = TRUE THEN OS-COMMAND NO-WAIT START VALUE(cNewVersionUrl).
8373
END.
8474
ELSE
8575
setRegistry('DataDigger:Update', 'NewVersionURL', cNewVersionUrl).
86-
8776
END.
8877

8978
ELSE

getVersionInfo.p

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
/*------------------------------------------------------------------------
22
33
Name: getVersionInfo.p
4-
Desc: Give back latest versions from DataDigger on GitHub
4+
Desc: Give back latest buildnr from DataDigger on GitHub
55
6-
Notes:
7-
The version nr is increased when it is ready for production, the
8-
build nr is increaded when something is ready for beta testing.
96
------------------------------------------------------------------------*/
107

118
DEFINE INPUT PARAMETER pcBranch AS CHARACTER NO-UNDO.
12-
DEFINE OUTPUT PARAMETER pcVersion AS CHARACTER NO-UNDO.
139
DEFINE OUTPUT PARAMETER pcBuildNr AS CHARACTER NO-UNDO.
1410

1511
IF LOOKUP(pcBranch,'master,develop') = 0 THEN RETURN.
1612

17-
RUN getRemoteFile.p(SUBSTITUTE('https://raw.githubusercontent.com/patrickTingen/DataDigger/&1/version.i', pcBranch), OUTPUT pcVersion).
18-
RUN getRemoteFile.p(SUBSTITUTE('https://raw.githubusercontent.com/patrickTingen/DataDigger/&1/build.i' , pcBranch), OUTPUT pcBuildNr).
13+
RUN getRemoteFile.p
14+
( INPUT SUBSTITUTE('https://raw.githubusercontent.com/patrickTingen/DataDigger/&1/build.i', pcBranch)
15+
, OUTPUT pcBuildNr
16+
).
17+

wDataDigger.w

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12419,7 +12419,6 @@ PROCEDURE startSession :
1241912419
DEFINE VARIABLE lUpgraded AS LOGICAL NO-UNDO.
1242012420
DEFINE VARIABLE lOpenBlog AS LOGICAL NO-UNDO.
1242112421
DEFINE VARIABLE iChannel AS INTEGER NO-UNDO.
12422-
DEFINE VARIABLE cRemoteVersion AS CHARACTER NO-UNDO.
1242312422
DEFINE VARIABLE cRemoteBuildNr AS CHARACTER NO-UNDO.
1242412423

1242512424
/* Set debug flag */
@@ -12502,7 +12501,7 @@ PROCEDURE startSession :
1250212501
/* If you are using a build that is newer than the production version,
1250312502
* you are in the beta program. Then automatically check for beta changes
1250412503
*/
12505-
RUN getVersionInfo.p(INPUT 'master', OUTPUT cRemoteVersion, OUTPUT cRemoteBuildNr).
12504+
RUN getVersionInfo.p(INPUT 'master', OUTPUT cRemoteBuildNr).
1250612505
IF '{build.i}' > cRemoteBuildNr THEN setRegistry("DataDigger:Update","UpdateChannel", "{&CHECK-BETA}").
1250712506

1250812507
/* Check for new versions on GitHub */
@@ -12511,8 +12510,7 @@ PROCEDURE startSession :
1251112510
setRegistry('DataDigger:Update','LastUpdateCheck',ISO-DATE(TODAY)).
1251212511
END.
1251312512

12514-
IF getRegistry('DataDigger:Update','RemoteBuildNr') > '{build.i}'
12515-
OR getRegistry('DataDigger:Update','RemoteVersion') > '{version.i}' THEN
12513+
IF getRegistry('DataDigger:Update','RemoteBuildNr') > '{build.i}' THEN
1251612514
DO WITH FRAME frMain:
1251712515
fiFeedback:SCREEN-VALUE = ' New version available, click for info'.
1251812516
fiFeedback:TOOLTIP = 'click to open GitHub page'.
@@ -13346,4 +13344,4 @@ FUNCTION trimList RETURNS CHARACTER
1334613344
END FUNCTION. /* trimList */
1334713345

1334813346
/* _UIB-CODE-BLOCK-END */
13349-
&ANALYZE-RESUME
13347+
&ANALYZE-RESUME

0 commit comments

Comments
 (0)