Guess everyone thinks it's my code, well...
Compile it in a dos console, with /CONSOLE
Run it in a dos console with arguments.
C:\>bumprev.exe -i _bumpversion.pb -b 000001
Code: Select all
;-----------------------------------------------------------------------------
; Title : Bump Revsion
; Code : T.J.Roughton
; Version : 0.1
; Comment : Compiling World.c fatal expection
;-----------------------------------------------------------------------------
IncludeFile "_bumpversion.pb"
Structure PARAM
cmd.s
action.s
EndStructure
NewList cmdline.PARAM()
Dim cvtable.s(64)
Global numlabellines
Global majver
Global minver
Global revver
Global betaver
Global alphaver
Global build
Global bumpvers.s
Declare ParameterPhase()
Declare Info()
Declare WriteVersion(filename.s)
Declare ReadVersion(filename.s)
Declare BumpVersion()
readcvtable.s=""
Restore codevertable_bb
While readcvtable<>"-1"
Read readcvtable
cvtable(i)=readcvtable : i=i+1
Wend
numlabellines=i-2
OpenConsole()
Info()
ParameterPhase()
CloseConsole()
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
Procedure ParameterPhase()
param.s=" "
While param<>""
AddElement(cmdline())
param=ProgramParameter()
cmdline()\cmd=param
cmdline()\action=ProgramParameter()
Wend
ResetList(cmdline())
bump=#FALSE : mode=#FALSE : load=#FALSE
While NextElement(cmdline())
;PrintN("CMD: "+cmdline()\cmd)
;PrintN("ACT: "+cmdline()\action)
If(cmdline()\cmd="-i")
infile.s=cmdline()\action
load=#TRUE
EndIf
If(cmdline()\cmd="-b")
bumpvers=cmdline()\action
bump=#TRUE
EndIf
If(cmdline()\cmd="-m")
If(cmdline()\action="c")
Restore codevertable_c
PrintN("Output C Source")
mode=#TRUE
EndIf
If(cmdline()\action="bb")
Restore codevertable_bb
PrintN("Output Blitz Basic Source")
mode=#TRUE
EndIf
If(cmdline()\action="pb")
Restore codevertable_pb
PrintN("Output Pure Basic Source")
mode=#TRUE
EndIf
EndIf
Wend
If mode=#TRUE
readcvtable.s=""
While readcvtable<>"-1"
Read readcvtable
cvtable(i)=readcvtable : i=i+1
Wend
numlabellines=i-2
Else
PrintN("Output Blitz Basic Source")
EndIf
If load=#TRUE
ReadVersion(infile)
EndIf
If bump=#TRUE
BumpVersion()
WriteVersion(infile)
EndIf
EndProcedure
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
Procedure Info()
PrintN("-----------------------------------------------------------------------------")
PrintN(" Bump Revision v"+_FullVer+" "+_CompileTime+" "+_CompileDate)
PrintN("-----------------------------------------------------------------------------")
PrintN(" Written By T.J.Roughton (A.K.A) Inner (FREEWARE)")
PrintN(" -i [file] : Input Version File ")
PrintN(" -r mnrbai : Reset Version Value")
PrintN(" -b mnrbai : Bump Version +1")
PrintN(" -m mode : Output Code Style [default bb]")
PrintN(" bb = Blitz Basic Source")
PrintN(" pb = Pure Basic Source")
PrintN(" c = C Source")
PrintN("")
EndProcedure
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
Procedure BumpVersion()
If(Mid(bumpvers,1,1)="1")
majver=majver+1
EndIf
If(Mid(bumpvers,2,1)="1")
minver=minver+1
EndIf
If(Mid(bumpvers,3,1)="1")
revver=revver+1
EndIf
If(Mid(bumpvers,4,1)="1")
betaver=betaver+1
EndIf
If(Mid(bumpvers,5,1)="1")
alphaver=alphaver+1
EndIf
If(Mid(bumpvers,6,1)="1")
build=build+1
EndIf
EndProcedure
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
Procedure ReadVersion(filename.s)
If(ReadFile(0,filename)<>0)
While Eof(0)=0
ln.s=ReadString()
If(Mid(ln,0,1)<>";")
For i=0 To numlabellines
If(FindString(ln,cvtable(i),0)>0)
foundtablab=i
EndIf
ln=RemoveString(ln,cvtable(i),1)
Next
Select foundtablab
Case 0
majver=Val(ln)
Case 1
minver=Val(ln)
Case 2
revver=Val(ln)
Case 3
betaver=Val(ln)
Case 4
alphaver=Val(ln)
Case 5
build=Val(ln)
EndSelect
EndIf
Wend
CloseFile(0)
Else
WriteVersion(filename)
EndIf
EndProcedure
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
Procedure WriteVersion(filename.s)
If(CreateFile(0,filename)<>0)
WriteStringN(";-----------------------------------------------------------------------------")
WriteStringN("; Bump Revision ")
WriteStringN(";-----------------------------------------------------------------------------")
WriteStringN(cvtable(0)+Str(majver))
WriteStringN(cvtable(1)+Str(minver))
WriteStringN(cvtable(2)+Str(revver))
WriteStringN(cvtable(3)+Str(betaver))
WriteStringN(cvtable(4)+Str(alphaver))
WriteStringN(cvtable(5)+Str(build))
_fullver.s=Str(majver)+"."+Str(minver)+"."+Str(revver)+"."+Str(betaver)+"."+Str(alphaver)+" Build "+Str(build)
WriteStringN(cvtable(6)+Chr(34)+_fullver+Chr(34))
_midver.s=Str(majver)+"."+Str(minver)+"."+Str(revver)+"."+Str(betaver)+" Build "+Str(build)
WriteStringN(cvtable(7)+Chr(34)+_midver+Chr(34))
_smlver.s=Str(majver)+"."+Str(minver)+" Build "+Str(build)
WriteStringN(cvtable(8)+Chr(34)+_smlver+Chr(34))
WriteStringN(cvtable(9)+Chr(34)+FormatDate("%dd/%mm/%yy",Date())+Chr(34))
WriteStringN(cvtable(10)+Chr(34)+FormatDate("%hh:%ii:%ss",Date())+Chr(34))
CloseFile(0)
EndIf
EndProcedure
;-----------------------------------------------------------------------------
;
;-----------------------------------------------------------------------------
DataSection
codevertable_c:
Data.s "#Define _MAJORVERSION "
Data.s "#Define _MINORVERSION "
Data.s "#Define _REVISION "
Data.s "#Define _BETA "
Data.s "#Define _ALPHA "
Data.s "#Define _BUILD "
Data.s "#Define _FULLVER "
Data.s "#Define _MIDVER "
Data.s "#Define _SMLVER "
Data.s "#Define _COMPILEDATE "
Data.s "#Define _COMPILETIME "
Data.s "-1"
codevertable_bb:
Data.s "Global _MajorVersion :_MajorVersion="
Data.s "Global _MinorVersion :_MinorVersion="
Data.s "Global _Revision :_Revision="
Data.s "Global _Beta :_Beta="
Data.s "Global _Alpha :_Alpha="
Data.s "Global _Build :_Build="
Data.s "Global _FullVer$ :_FullVer$="
Data.s "Global _MidVer$ :_MidVer$="
Data.s "Global _SmlVer$ :_SmlVer$="
Data.s "Global _CompileDate$ :_CompileDate$="
Data.s "Global _CompileTime$ :_CompileTime$="
Data.s "-1"
codevertable_pb:
Data.s "Global _MajorVersion :_MajorVersion="
Data.s "Global _MinorVersion :_MinorVersion="
Data.s "Global _Revision :_Revision="
Data.s "Global _Beta :_Beta="
Data.s "Global _Alpha :_Alpha="
Data.s "Global _Build :_Build="
Data.s "Global _FullVer.s :_FullVer.s="
Data.s "Global _MidVer.s :_MidVer.s="
Data.s "Global _SmlVer.s :_SmlVer.s="
Data.s "Global _CompileDate.s :_CompileDate.s="
Data.s "Global _CompileTime.s :_CompileTime.s="
Data.s "-1"
EndDataSection
