mirror of
https://github.com/libretro/scummvm.git
synced 2024-11-30 12:50:51 +00:00
AMIGAOS4: Propagated changes from RM2AG.rexx to .in
This commit is contained in:
parent
0728d91c45
commit
64a71d4edf
@ -1,32 +1,81 @@
|
||||
/*
|
||||
README(.md) to .guide converter $VER: RM2AG.rexx 0.20 (18.05.2019)
|
||||
This script converts a given markdown README file of ScummVM to a basic
|
||||
hypertext Amiga guide file.
|
||||
$VER: RM2AG.rexx 0.23 (24.10.2019) README(.md) to .guide converter.
|
||||
This script converts a given markdown README file (right now, only
|
||||
ScummVM is supported) to a basic hypertext Amiga guide file and installs
|
||||
it to a given path, if available.
|
||||
*/
|
||||
|
||||
PARSE ARG readme_md
|
||||
PARSE ARG readme_md install_path
|
||||
|
||||
/*
|
||||
Check if the given file is really the readme.
|
||||
If a given filename has spaces, AmigaDOS/AmigaCLI will add extra
|
||||
quotation marks to secure a sane working path. We get rid of them to make
|
||||
AREXX find the file.
|
||||
Check if arguments are available, otherwise quit.
|
||||
*/
|
||||
readme_md=COMPRESS(readme_md,'"')
|
||||
OPEN(check_readme,readme_md,'R')
|
||||
IF READCH(check_readme,18) = '# [ScummVM README]' THEN
|
||||
CLOSE(check_readme)
|
||||
ELSE DO
|
||||
SAY "Not the ScummVM README.md file. Aborting!"
|
||||
CLOSE(check_readme)
|
||||
EXIT 0
|
||||
IF ~ARG() THEN DO
|
||||
SAY 'No Arguments given!'
|
||||
SAY 'Usage: RM2AG.rexx README_MD INSTALL_PATH'
|
||||
EXIT
|
||||
END
|
||||
|
||||
OPEN(readme_read,readme_md,'R')
|
||||
OPEN(guide_write,'README.guide','W')
|
||||
/*
|
||||
If the given filename/path has spaces in it, AmigaDOS/CLI
|
||||
will add extra quotation marks to secure a sane working path.
|
||||
Get rid of them to make AREXX find the file and remove leading
|
||||
and trailing spaces.
|
||||
*/
|
||||
IF ~EXISTS(readme_md) THEN DO
|
||||
SAY readme_md' not available!'
|
||||
EXIT
|
||||
END
|
||||
ELSE DO
|
||||
readme_md=STRIP(readme_md)
|
||||
readme_md=COMPRESS(readme_md,'"')
|
||||
END
|
||||
IF installpath='' THEN DO
|
||||
SAY 'No installation destination given!'
|
||||
EXIT
|
||||
END
|
||||
ELSE DO
|
||||
install_path=STRIP(install_path)
|
||||
install_path=STRIP(install_path,'T','/')
|
||||
install_path=COMPRESS(install_path,'"')
|
||||
/*
|
||||
Check for destination path and create it, if needed.
|
||||
*/
|
||||
IF ~EXISTS(install_path'/') THEN
|
||||
ADDRESS COMMAND 'makedir 'install_path
|
||||
END
|
||||
|
||||
IF ~OPEN(check_readme,readme_md,'R') THEN DO
|
||||
SAY readme_md' opening failed!'
|
||||
EXIT
|
||||
END
|
||||
|
||||
IF READCH(check_readme,18) = '# [ScummVM README]' THEN DO
|
||||
IF ~CLOSE(check_readme) THEN DO
|
||||
SAY readme_md' closing failed!'
|
||||
EXIT
|
||||
END
|
||||
END
|
||||
ELSE DO
|
||||
IF ~CLOSE(check_readme) THEN DO
|
||||
SAY readme_md' closing failed!'
|
||||
EXIT
|
||||
END
|
||||
SAY "Not the ScummVM README.md file. Aborting!"
|
||||
EXIT
|
||||
END
|
||||
|
||||
IF ~OPEN(readme_read,readme_md,'R') THEN DO
|
||||
SAY 'File 'readme_md' opening failed!'
|
||||
EXIT
|
||||
END
|
||||
IF ~OPEN(guide_write,'README.guide','W') THEN DO
|
||||
SAY README.guide' opening failed!'
|
||||
EXIT
|
||||
END
|
||||
|
||||
/*
|
||||
Prepare the Amiga guide file, add the intro and fixed text.
|
||||
Prepare the Amiga guide file, add intro and fixed text.
|
||||
*/
|
||||
WRITELN(guide_write,'@DATABASE ScummVM README.guide')
|
||||
WRITELN(guide_write,'@$VER: ScummVM Readme @VERSION@')
|
||||
@ -39,22 +88,21 @@ WRITELN(guide_write,SUBSTR(READLN(readme_read),4,14))
|
||||
WRITELN(guide_write,'@{ub}')
|
||||
|
||||
/*
|
||||
Creating the main (TOC) link nodes.
|
||||
Creating main (TOC) link nodes.
|
||||
*/
|
||||
|
||||
DO WHILE EOF(readme_read) = 0
|
||||
working_line=READLN(readme_read)
|
||||
|
||||
/*
|
||||
Check for the start of actual the content and, if found, leave the
|
||||
TOC link loop.
|
||||
Check for start of actual content and, if available, leave TOC link loop.
|
||||
*/
|
||||
IF POS('## <>1.0<>)',working_line) = 1 THEN
|
||||
LEAVE
|
||||
|
||||
/*
|
||||
Check for any "rolled over" lines, if found, read in the rest (on the
|
||||
following line) and rejoin them again, before processing any further.
|
||||
Check for any "rolled over" lines and, if available, read in the rest
|
||||
(on the following line) and rejoin them again before processing any further.
|
||||
e.g. - [<>3.6.3<>) Broken Sword games
|
||||
cutscenes](#363-broken-sword-games-cutscenes)
|
||||
*/
|
||||
@ -72,19 +120,19 @@ DO WHILE EOF(readme_read) = 0
|
||||
WRITELN(guide_write,working_line)
|
||||
ELSE DO
|
||||
/*
|
||||
Fix the empty chapters:
|
||||
Two chapters (1.0 and 7.8) are "empty", consisting of only it's
|
||||
chapter names. We link them to their respective sub chapters
|
||||
(1.1 and 7.8.1), so we don't end up displaying a blank page.
|
||||
|
||||
If chapter 1.0 is found, add a link node to chapter 1.1.
|
||||
Fix empty chapters:
|
||||
Two chapters (1.0 and 7.8) are "empty", consisting of only
|
||||
it`s chapter names. Link them to their respective sub chapters
|
||||
(1.1 and 7.8.1) to not display a blank page.
|
||||
|
||||
If chapter 1.0 is found, add a link node to chapter 1.1.
|
||||
*/
|
||||
IF POS(' - [<>1.0<>)',working_line) = 1 THEN DO
|
||||
/*
|
||||
Get rid of the markers, so the following loops won't process
|
||||
Get rid of the markers, so the following loops won`t process
|
||||
them again.
|
||||
*/
|
||||
working_line=COMPRESS(working_line,'-[<>')
|
||||
working_line=COMPRESS(working_line,'[<>')
|
||||
WRITELN(guide_write,' @{" 1.0 " Link "1.1"} 'SUBSTR(working_line,1,LASTPOS(']',working_line)-1))
|
||||
END
|
||||
|
||||
@ -93,38 +141,38 @@ DO WHILE EOF(readme_read) = 0
|
||||
*/
|
||||
IF POS(' - [<>7.8<>)',working_line) = 1 THEN DO
|
||||
/*
|
||||
Get rid of the markers, so the following loops won't process
|
||||
Get rid of the markers, so the following loops won`t process
|
||||
them again.
|
||||
*/
|
||||
working_line=COMPRESS(working_line,'-[<>')
|
||||
working_line=COMPRESS(working_line,'[<>')
|
||||
WRITELN(guide_write,' @{" 7.8 " Link "7.8.1"} 'SUBSTR(working_line,1,LASTPOS(']',working_line)-1))
|
||||
END
|
||||
|
||||
/*
|
||||
If a single number main chapter is found (1.0 upto 9.0), prepare
|
||||
and write the link node.
|
||||
If a single number main chapter is found (1.0 upto 9.0),
|
||||
prepare and write the link node.
|
||||
Just for the record:
|
||||
A "\" (backslash) is treated as escape character in AmigaGuides.
|
||||
Thus we remove it from the node links.
|
||||
Remove it from the node links.
|
||||
*/
|
||||
IF POS('- [<>',working_line) = 3 THEN DO
|
||||
WRITELN(guide_write,' ')
|
||||
WRITELN(guide_write,' @{" 'SUBSTR(working_line,POS('<>',working_line)+2,LASTPOS('<>',working_line)-POS('<>',working_line)-2) '" Link "'SUBSTR(working_line,POS('<>',working_line)+2,LASTPOS('<>',working_line)-POS('<>',working_line)-2)'"} 'COMPRESS(SUBSTR(working_line,1,LASTPOS(']',working_line)-1),'*<>[]\'))
|
||||
/*
|
||||
Get rid of the markers, so the following loops won't process
|
||||
Get rid of the markers, so the following loops won`t process
|
||||
them again.
|
||||
*/
|
||||
working_line=COMPRESS(working_line,'-[<>')
|
||||
END
|
||||
|
||||
/*
|
||||
If a single number level one sub chapter is found
|
||||
(i.e. 1.1, 1.2 etc.), prepare and write the link node.
|
||||
If a level one sub chapter is found (i.e. 1.1, 1.2 etc.),
|
||||
prepare and write the link node.
|
||||
*/
|
||||
IF POS('- [<>',working_line) = 7 THEN DO
|
||||
WRITELN(guide_write,' @{" 'SUBSTR(working_line,POS('<>',working_line)+2,LASTPOS('<>',working_line)-POS('<>',working_line)-2) '" Link "'SUBSTR(working_line,POS('<>',working_line)+2,LASTPOS('<>',working_line)-POS('<>',working_line)-2)'"} 'COMPRESS(SUBSTR(working_line,1,LASTPOS(']',working_line)-1),'*<>[]\'))
|
||||
/*
|
||||
Get rid of the markers, so the following loops won't process
|
||||
Get rid of the markers, so the following loops won`t process
|
||||
them again.
|
||||
*/
|
||||
working_line=COMPRESS(working_line,'.[<>')
|
||||
@ -137,7 +185,7 @@ DO WHILE EOF(readme_read) = 0
|
||||
IF POS('- [<>',working_line) = 11 THEN DO
|
||||
WRITELN(guide_write,' @{" 'SUBSTR(working_line,POS('<>',working_line)+2,LASTPOS('<>',working_line)-POS('<>',working_line)-2) '" Link "'SUBSTR(working_line,POS('<>',working_line)+2,LASTPOS('<>',working_line)-POS('<>',working_line)-2)'"} 'COMPRESS(SUBSTR(working_line,1,LASTPOS(']',working_line)-1),'*<>[]\'))
|
||||
/*
|
||||
Get rid of the markers, so the following loops won't process
|
||||
Get rid of the markers, so the following loops won`t process
|
||||
them again.
|
||||
*/
|
||||
working_line=COMPRESS(working_line,'.[<>')
|
||||
@ -146,8 +194,8 @@ DO WHILE EOF(readme_read) = 0
|
||||
END
|
||||
|
||||
/*
|
||||
Finish the TOC (Hardcoded due the outro text would be read in last, but
|
||||
needs to be written after the TOC creation).
|
||||
Finish TOC (hardcoded as the outro text would be read in last,
|
||||
but needs to be written after TOC creation finished).
|
||||
*/
|
||||
WRITELN(guide_write,'-----')
|
||||
WRITELN(guide_write,' ')
|
||||
@ -156,11 +204,11 @@ WRITELN(guide_write,'The ScummVM team.')
|
||||
WRITELN(guide_write,'@{"https://www.scummvm.org/" System "URLOpen https://www.scummvm.org/"}')
|
||||
|
||||
/*
|
||||
Creating the sub link nodes.
|
||||
Creating sub link nodes.
|
||||
*/
|
||||
DO WHILE EOF(readme_read) = 0
|
||||
/*
|
||||
Change the html/markdown links to AmigaGuide ones
|
||||
Change html/markdown links to AmigaGuide ones.
|
||||
*/
|
||||
IF POS('[here](',working_line) > 0 THEN DO
|
||||
working_line=INSERT('@{"',working_line,POS('[',working_line)-1)
|
||||
@ -177,26 +225,26 @@ DO WHILE EOF(readme_read) = 0
|
||||
ELSE DO
|
||||
/*
|
||||
Fix empty chapters:
|
||||
Two chapters (1.0 and 7.8) are "empty", consisting of only it's
|
||||
chapter names. We link them to their respective sub chapters
|
||||
(1.1 and 7.8.1), so we don't end up displaying a blank page.
|
||||
If chapter 1.1 is found don't close the NODE, just write the line.
|
||||
Two chapters (1.0 and 7.8) are "empty", consisting of only
|
||||
it`s chapter names. Link them to their respective sub chapters
|
||||
(1.1 and 7.8.1) to not display a blank page.
|
||||
|
||||
If chapter 1.1 is found, don`t close the NODE, just write the line.
|
||||
*/
|
||||
IF POS('<>1.1<>',working_line) = 1 THEN DO
|
||||
/*
|
||||
Get rid of the markers, so the following loops won't process
|
||||
Get rid of the markers, so the following loops won`t process
|
||||
them again.
|
||||
*/
|
||||
WRITELN(guide_write,COMPRESS(working_line,'<>'))
|
||||
END
|
||||
|
||||
/*
|
||||
If chapter 7.8.1 is found don't close the NODE, just write the
|
||||
line.
|
||||
If chapter 7.8.1 is found don`t close the NODE, just write the line.
|
||||
*/
|
||||
IF POS('<>7.8.1<>',working_line) = 1 THEN DO
|
||||
/*
|
||||
Get rid of the markers, so the following loops won't process
|
||||
Get rid of the markers, so the following loops won`t process
|
||||
them again.
|
||||
*/
|
||||
WRITELN(guide_write,COMPRESS(working_line,'<>'))
|
||||
@ -210,20 +258,20 @@ DO WHILE EOF(readme_read) = 0
|
||||
IF POS('section <>',working_line) > 0 THEN DO
|
||||
working_line=SUBSTR(working_line,1,POS('<>',working_line)-1)'@{"'SUBSTR(working_line,POS('<>',working_line)+2,LASTPOS('<>',working_line)-POS('<>',working_line)-2)'" Link "'SUBSTR(working_line,POS('<>',working_line)+2,LASTPOS('<>',working_line)-POS('<>',working_line)-2)'"}'SUBSTR(working_line,LASTPOS('<>',working_line)+2)
|
||||
/*
|
||||
Get rid of the markers, so the following loops won't
|
||||
Get rid of the markers, so the following loops won`t
|
||||
process them again.
|
||||
*/
|
||||
WRITELN(guide_write,COMPRESS(working_line,'<>'))
|
||||
END
|
||||
ELSE DO
|
||||
/*
|
||||
If a chapter has been found, prepare and write the link.
|
||||
If a chapter has been found, prepare and write the link node.
|
||||
*/
|
||||
WRITELN(guide_write,'@ENDNODE')
|
||||
WRITELN(guide_write,'@NODE "'SUBSTR(working_line,POS('<>',working_line)+2,LASTPOS('<>',working_line)-POS('<>',working_line)-2)'" "'COMPRESS(working_line,'<>#')'"')
|
||||
WRITELN(guide_write,' ')
|
||||
/*
|
||||
Get rid of the markers, so the following loops won't process
|
||||
Get rid of the markers, so the following loops won`t process
|
||||
them again.
|
||||
*/
|
||||
WRITELN(guide_write,COMPRESS(working_line,'<>'))
|
||||
@ -237,7 +285,7 @@ DO WHILE EOF(readme_read) = 0
|
||||
working_line=READLN(readme_read)
|
||||
|
||||
/*
|
||||
If the outtro text is found, leave the loop and prepare for closing.
|
||||
If the outtro text has been found, leave loop and prepare for closing.
|
||||
*/
|
||||
IF POS('-----',working_line,1) =1 THEN
|
||||
LEAVE
|
||||
@ -246,11 +294,24 @@ END
|
||||
WRITELN(guide_write,'@ENDNODE')
|
||||
|
||||
/*
|
||||
Close the guide and clean up.
|
||||
Close guide and clean up.
|
||||
*/
|
||||
WRITELN(guide_write,'@ENDNODE')
|
||||
|
||||
CLOSE(readme_read)
|
||||
CLOSE(guide_write)
|
||||
IF ~CLOSE(readme_read) THEN DO
|
||||
SAY readme_md' closing failed!'
|
||||
EXIT
|
||||
END
|
||||
IF ~CLOSE(guide_write) THEN DO
|
||||
SAY 'README.guide closing failed!'
|
||||
EXIT
|
||||
END
|
||||
|
||||
EXIT 0
|
||||
/*
|
||||
Install finished README.guide to installation path
|
||||
and delete README.guide.
|
||||
*/
|
||||
ADDRESS COMMAND 'copy README.guide 'install_path
|
||||
ADDRESS COMMAND 'delete README.guide'
|
||||
|
||||
EXIT
|
||||
|
Loading…
Reference in New Issue
Block a user