-
Notifications
You must be signed in to change notification settings - Fork 20
/
chapterCreator.lua
92 lines (89 loc) · 2.56 KB
/
chapterCreator.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
local iChapterNum = 33
local tChapterName =
{
"Getting Started",
"Interlude: The Eight-Queen Puzzle",
"Numbers",
"Strings",
"Tables",
"Functions",
"The External World",
"Filling Some Gaps",
"Closures",
"Pattern Matching",
"Interlude: Most Frequent Words",
"Date and Time",
"Bits and Bytes",
"Data Structures",
"Data Files and Serialization (FIXME)",
"Compilation, Execution, and Errors",
"Modules and Packages",
"Iterators and the Generic for",
"Interlude: Markov Chain Algorithm",
"Metatables and Metamethods",
"Object-Oriented Programming",
"The Environment",
"Garbage",
"Coroutines (TODO)",
"Reflection (TODO)",
"Interlude: Multithreading with Coroutines (TODO)",
"An Overview of the C API",
"Extending Your Application",
"Calling C from Lua",
"Techniques for Writing C Functions",
"User-Defined Types in C",
"Managing Resources",
"Threads and States",
}
local function file_exists(name)
local f = io.open(name, "r")
if f then
io.close(f)
return true
end
return false
end
local function createLua(filename)
os.execute("mkdir " .. filename)
local path = string.format("%s/%s.lua", filename, filename)
if file_exists(path) then
print("Existed file")
return
end
local file = io.output(path)
if file then
print("success")
file:write("--TODO")
file:close()
end
end
for i = 1, iChapterNum do
createLua(string.format("chapter%02d", i))
end
local function updateReadMe()
local f = io.open("README.md", 'w')
local fmtText = "+ [Chapter%02d : %s](https://github.com/0kk470/Lua-4th/blob/master/chapter%02d/chapter%02d.lua)"
local fmtText_capi = "+ [Chapter%02d : %s](https://github.com/0kk470/Lua-4th/blob/master/chapter%02d)"
if f then
print("update readme " .. tostring(f))
f:write("# Lua-4th\n\nLua程序设计第四版习题答案(Pil4 Exercise Solutions) ", "\n", "\n")
f:write("## Part I. Basics", "\n")
for i = 1, iChapterNum do
f:write(string.format(i >= 27 and fmtText_capi or fmtText, i,tChapterName[i], i, i), "\n", "\n")
if i == 8 then
f:write("## Part II. Real Programming", "\n")
elseif i == 17 then
f:write("## Part III. Lua-isms", "\n")
elseif i == 26 then
f:write("## Part IV. C API", "\n")
end
end
f:write("### Others","\n")
f:write("+ [compile lua via visual studio](https://github.com/0kk470/lua-on-visual-studio)")
f:flush()
return true
end
return false
end
updateReadMe()
os.exit()