ToDo. Сделать "консольную" запускалку "моих скриптов".
Побрюзжу... Про github, sourceforge и bitbucket
Типа:
msscript filename.script [param1 .. paramN]
filename.scrpt:
Вот и "неожиданное" применение скриптов наклёвывается.
По аналогии с:
search.script
Побрюзжу... Про github, sourceforge и bitbucket
Типа:
msscript filename.script [param1 .. paramN]
filename.scrpt:
for ( FoldersByMask ParamStr 1 ) ( STRING IN aFolderName FILE aFile aFolderName ExtractFilePath (+) '.gitignore' file:openRead >>> aFile '/CVS/' aFile write nil >>> aFile )
Вот и "неожиданное" применение скриптов наклёвывается.
По аналогии с:
search.script
CONST gPath 'W:\common\components\SearchTest\TestSet' // путь к директории TestSet, где лежит SearchProfiler.cmd CONST cTimeLimit 0 //5000 // пороговое значение в милисекундах, для которого графики не строятся, чем больше значение, тем меньше графиков CONST cEtalonLimit 20 STRING VAR l_MarkFile gPath '\doneMark.tmp' Cat =: l_MarkFile l_MarkFile DeleteFile DROP [ gPath '\SearchProfiler.cmd ' gPath ] strings:Cat WinExec WHILE ( l_MarkFile sysutils:FileExists ! ) ( 100 SLEEP ) l_MarkFile DeleteFile DROP CONST "Пустая строка" '' BOOLEAN VAR l_WasException false =: l_WasException ARRAY VAR l_Files : "Сравнить с эталонами" STRING IN aMask VAR l_EtalonCount l_EtalonCount := 0 : "Сравнить с эталонами 1" STRING IN aPath @ ( STRING IN aFile if ( l_EtalonCount МЕНЬШЕ cEtalonLimit ) then TRY aFile '.etalon' Cat aFile "Пустая строка" tests:CheckOutputWithInput EXCEPT true =: l_WasException ++! l_EtalonCount STRING VAR l_File aFile sysutils:ExtractFileName =: l_File [ #13#10 '# ' '[[^' l_File '.diff.log.uni' ']]' ' / ' '[[^' l_File '.sdiff.log.uni' ']]' ] strings:Cat >>>[] l_Files ' ' >>>[] l_Files END ) aMask aPath ProcessFilesWithMask ; gPath '\Result\Contexts\' Cat "Сравнить с эталонами 1" gPath '\Result\Other\' Cat "Сравнить с эталонами 1" ; : "Записать время" STRING IN aMask : "Записать время 1" STRING IN aPath @ ( STRING IN aFile FILE VAR l_In aFile file:OpenRead =: l_In TRY : DoLine W-STRING IN aStr STRING VAR l_Str STRING VAR l_Str1 aStr WString:ToString =: l_Str ';' string:RSplitTo! l_Str l_Str =: l_Str1 =: l_Str //[ l_Str1 ' ' l_Str ] strings:Cat . INTEGER VAR vTime l_Str StrToInt =: vTime ( vTime cTimeLimit > ) ? ( l_Str1 '' vTime TimeToLog ) ; l_In file:ReadLines DoLine FINALLY nil =: l_In END ) aMask aPath ProcessFilesWithMask ; gPath '\Result\Contexts\' Cat "Записать время 1" gPath '\Result\Other\' Cat "Записать время 1" ; '*.ctx' "Сравнить с эталонами" '*.oth' "Сравнить с эталонами" '*.rt' "Записать время" l_WasException ! [ 'Были несовпадения с эталонами: ' l_Files strings:Cat ] strings:Cat ASSERTS
https://bitbucket.org/lulinalex/mindstream/src/aa1acc372208f088d5d87917874b5a313b31e26d/Examples/Scripts/?at=EmbtTasks
ОтветитьУдалить