219 lines
4.0 KiB
Plaintext
Executable File
219 lines
4.0 KiB
Plaintext
Executable File
#!/usr/bin/env lua
|
|
|
|
dir = os.getenv("PWD") or io.popen("cd"):read()
|
|
|
|
if not arg[1] then print("no argument, try again") return end
|
|
|
|
require "R2H2"
|
|
require "color"
|
|
|
|
|
|
require "output_sizes"
|
|
require "output_word"
|
|
|
|
require "show_list"
|
|
require "search_list"
|
|
require "remove_word"
|
|
require "add_word"
|
|
require "edit_word"
|
|
require "lessons"
|
|
|
|
data_get = "content/words.lua"
|
|
data_output = "content/words.lua"
|
|
|
|
words = dofile(data_get)
|
|
|
|
for _, v in pairs(arg) do
|
|
if v == "-h"
|
|
or v == "--help"
|
|
or v == "--usage"
|
|
or v == "--how"
|
|
then
|
|
please_help = true
|
|
end
|
|
end
|
|
|
|
if arg[1] == "h"
|
|
or arg[1] == "help"
|
|
or arg[1] == "how"
|
|
or arg[1] == "howdo" then
|
|
print([[
|
|
|
|
[a]ll
|
|
- shows all words in heonian.
|
|
|
|
[e]dit <word_id>
|
|
- removes the word from the lexicon
|
|
|
|
[h]elp
|
|
- shows this message
|
|
|
|
[l]esson
|
|
- shows heonian lessons.
|
|
|
|
[n]ew
|
|
- add new word to the data
|
|
|
|
[r]emove <word_id>
|
|
- removes the word from the lexicon
|
|
|
|
[s]earch <query>
|
|
- searches all words and shows only those that return to string.find()
|
|
|
|
[tr]anscript <word>
|
|
- transcripts the word to heonian script
|
|
|
|
General parameters:
|
|
-h / --help (shows what does the command do)
|
|
]])
|
|
return
|
|
end
|
|
|
|
if arg[1] == "a"
|
|
or arg[1] == "all" then
|
|
if please_help then
|
|
print([[
|
|
|
|
[a]ll
|
|
- shows all words in heonian.
|
|
|
|
Parameters:
|
|
-h / --help (shows what does the command do)
|
|
-a / --all (shows more info on the word, if any)
|
|
]])
|
|
else
|
|
showList()
|
|
end
|
|
return
|
|
end
|
|
|
|
if arg[1] == "s"
|
|
or arg[1] == "search" then
|
|
if please_help then
|
|
print([[
|
|
|
|
[s]earch <query>
|
|
- searches all words and shows only those that return to string.find()
|
|
|
|
Parameters:
|
|
-h / --help (shows what does the command do)
|
|
-a / --all (shows more info on the word, if any)
|
|
-e / --english (limits the search to the translated words)
|
|
-r / --raw (limits the search to the heonian words)
|
|
-i / --id (searches using word id)
|
|
]])
|
|
else
|
|
if arg[2] then searchList(arg[2])
|
|
else print("no query to search") end
|
|
end
|
|
return
|
|
end
|
|
|
|
if arg[1] == "l"
|
|
or arg[1] == "lesson" then
|
|
if please_help then
|
|
print([[
|
|
|
|
[l]esson <lesson>
|
|
- shows heonian lessons. if no lesson is specified, lists all the lessons.
|
|
|
|
Parameters:
|
|
-h / --help (shows what does the command do)
|
|
]])
|
|
else
|
|
if arg[2] then lesson(arg[2])
|
|
else
|
|
print("specify a lesson",table.unpack(getFormattedLessonNames(dir.."/content/lessons/")))
|
|
end
|
|
end
|
|
return
|
|
end
|
|
|
|
if arg[1] == "tr"
|
|
or arg[1] == "transcript" then
|
|
if please_help then
|
|
print([[
|
|
|
|
[tr]anscript <word>
|
|
- transcripts the word to heonian script
|
|
|
|
Parameters:
|
|
-h / --help (shows what does the command do)
|
|
-v / --verbose (shows the transcription process)
|
|
-c / --copy (copies transcription to keyboard)
|
|
]])
|
|
else
|
|
if arg[2] then print(convertToHeonian(arg[2]))
|
|
else print("no string to transcript") end
|
|
return
|
|
end
|
|
end
|
|
|
|
if arg[1] == "r"
|
|
or arg[1] == "remove" then
|
|
if please_help then
|
|
print([[
|
|
|
|
[r]emove <word_id>
|
|
- removes the word from the lexicon
|
|
|
|
Parameters:
|
|
-h / --help (shows what does the command do)
|
|
]])
|
|
else
|
|
if arg[2]
|
|
and tonumber(arg[2]) <= #words
|
|
and tonumber(arg[2]) > 0 then
|
|
removeWord(arg[2])
|
|
else print("no word to remove") end
|
|
return
|
|
end
|
|
end
|
|
|
|
if arg[1] == "n"
|
|
or arg[1] == "new" then
|
|
if please_help then
|
|
print([[
|
|
|
|
[n]ew
|
|
- add new word to the data
|
|
|
|
Parameters:
|
|
-h / --help (shows what does the command do)
|
|
]])
|
|
else
|
|
addWord()
|
|
end
|
|
end
|
|
|
|
if arg[1] == "e"
|
|
or arg[1] == "edit" then
|
|
if please_help then
|
|
print([[
|
|
|
|
[e]dit <word_id>
|
|
- removes the word from the lexicon
|
|
|
|
Parameters:
|
|
-h / --help / (shows what does the command do)
|
|
-mph / --modify-phonetics / edit the phonetics field
|
|
-mm / --modify-meaning / edit the meaning field
|
|
-mt / --modify-type / edit the type field
|
|
-mco / --modify-canon-origin / edit the canon origin field
|
|
-mmo / --modify-meta-origin / edit the meta origin field
|
|
-mn / --modify-notes / edit the notes field
|
|
-ma / --modify-all / edit all the fields
|
|
|
|
(-ma is enabled by default, disabled if other flags)
|
|
]])
|
|
else
|
|
if arg[2]
|
|
and tonumber(arg[2]) <= #words
|
|
and tonumber(arg[2]) > 0 then
|
|
editWord(arg[2])
|
|
else print("no word to edit") end
|
|
return
|
|
end
|
|
end
|
|
|