mirror of
https://github.com/TangentFoxy/.lua-files.git
synced 2024-11-20 21:34:23 +00:00
close #26 --continue flag
This commit is contained in:
parent
15013d02fe
commit
148afecb27
@ -37,6 +37,9 @@ will be used to make multiple ebooks back-to-back.
|
|||||||
directories.
|
directories.
|
||||||
cleanall: Deletes everything except the config file and ePub.
|
cleanall: Deletes everything except the config file and ePub.
|
||||||
|
|
||||||
|
[flag]: If "--continue" is passed, script will continue with the default order
|
||||||
|
of actions from the action specified.
|
||||||
|
|
||||||
Requirements:
|
Requirements:
|
||||||
- Binaries: pandoc, curl
|
- Binaries: pandoc, curl
|
||||||
```
|
```
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
local help = [[Usage:
|
local help = [[Usage:
|
||||||
|
|
||||||
make-epub.lua <config (JSON file)> [action]
|
make-epub.lua <config (JSON file)> [action] [flag]
|
||||||
|
|
||||||
If "." is used instead of a JSON file, every JSON file in the current directory
|
If "." is used instead of a JSON file, every JSON file in the current directory
|
||||||
will be used to make multiple ebooks back-to-back.
|
will be used to make multiple ebooks back-to-back.
|
||||||
@ -18,6 +18,9 @@ will be used to make multiple ebooks back-to-back.
|
|||||||
directories.
|
directories.
|
||||||
cleanall: Deletes everything except the config file and ePub.
|
cleanall: Deletes everything except the config file and ePub.
|
||||||
|
|
||||||
|
[flag]: If "--continue" is passed, script will continue with the default order
|
||||||
|
of actions from the action specified.
|
||||||
|
|
||||||
Requirements:
|
Requirements:
|
||||||
- Binaries: pandoc, curl
|
- Binaries: pandoc, curl
|
||||||
|
|
||||||
@ -118,6 +121,7 @@ local function format_metadata(config)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function download_pages(config)
|
local function download_pages(config)
|
||||||
|
print("\nDownloading pages...\n")
|
||||||
local htmlparser = utility.require("htmlparser")
|
local htmlparser = utility.require("htmlparser")
|
||||||
utility.required_program("curl")
|
utility.required_program("curl")
|
||||||
local working_dir = config.base_file_name
|
local working_dir = config.base_file_name
|
||||||
@ -172,6 +176,7 @@ local function download_pages(config)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function convert_pages(config)
|
local function convert_pages(config)
|
||||||
|
print("\nConverting pages...\n")
|
||||||
utility.required_program("pandoc")
|
utility.required_program("pandoc")
|
||||||
local working_dir = config.base_file_name
|
local working_dir = config.base_file_name
|
||||||
|
|
||||||
@ -186,6 +191,7 @@ local function convert_pages(config)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function concatenate_pages(config)
|
local function concatenate_pages(config)
|
||||||
|
print("\nConcatenating pages...\n")
|
||||||
local working_dir = config.base_file_name
|
local working_dir = config.base_file_name
|
||||||
|
|
||||||
for section = config.sections.start, config.sections.finish do
|
for section = config.sections.start, config.sections.finish do
|
||||||
@ -220,6 +226,7 @@ local function concatenate_pages(config)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function write_markdown_file(config)
|
local function write_markdown_file(config)
|
||||||
|
print("\nWriting Markdown file...\n")
|
||||||
local working_dir = config.base_file_name
|
local working_dir = config.base_file_name
|
||||||
|
|
||||||
utility.open(config.base_file_name .. ".md", "w")(function(markdown_file)
|
utility.open(config.base_file_name .. ".md", "w")(function(markdown_file)
|
||||||
@ -271,6 +278,7 @@ local function write_markdown_file(config)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function make_epub(config)
|
local function make_epub(config)
|
||||||
|
print("\nMaking ePub...\n")
|
||||||
utility.required_program("pandoc")
|
utility.required_program("pandoc")
|
||||||
local output_dir = "All ePubs"
|
local output_dir = "All ePubs"
|
||||||
os.execute("mkdir " .. output_dir:enquote())
|
os.execute("mkdir " .. output_dir:enquote())
|
||||||
@ -281,6 +289,7 @@ local function make_epub(config)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function rm_page_files(config)
|
local function rm_page_files(config)
|
||||||
|
print("\nRemoving page files...\n")
|
||||||
local working_dir = config.base_file_name
|
local working_dir = config.base_file_name
|
||||||
|
|
||||||
for section = config.sections.start, config.sections.finish do
|
for section = config.sections.start, config.sections.finish do
|
||||||
@ -290,6 +299,7 @@ local function rm_page_files(config)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function rm_all(config)
|
local function rm_all(config)
|
||||||
|
print("\nRemoving all extra files...\n")
|
||||||
local working_dir = config.base_file_name
|
local working_dir = config.base_file_name
|
||||||
|
|
||||||
os.execute(utility.recursive_remove_command .. working_dir:enquote())
|
os.execute(utility.recursive_remove_command .. working_dir:enquote())
|
||||||
@ -326,32 +336,41 @@ local function main(arguments)
|
|||||||
cleanpage = rm_page_files,
|
cleanpage = rm_page_files,
|
||||||
cleanall = rm_all,
|
cleanall = rm_all,
|
||||||
}
|
}
|
||||||
|
local default_action_order = {
|
||||||
|
"download",
|
||||||
|
"convert",
|
||||||
|
"concat",
|
||||||
|
"cleanpage",
|
||||||
|
"markdown",
|
||||||
|
"epub",
|
||||||
|
}
|
||||||
|
|
||||||
if arguments.action then
|
if arguments.action then
|
||||||
if actions[arguments.action] then
|
if actions[arguments.action] then
|
||||||
actions[arguments.action](config)
|
actions[arguments.action](config)
|
||||||
|
if arguments.flag == "--continue" then
|
||||||
|
local starting_point_reached = false
|
||||||
|
for _, action in ipairs(default_action_order) do
|
||||||
|
if starting_point_reached then
|
||||||
|
action(config)
|
||||||
|
elseif action == arguments.action then
|
||||||
|
starting_point_reached = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
else
|
else
|
||||||
print(help)
|
print(help)
|
||||||
error("\nInvalid action specified.")
|
error("\nInvalid action specified.")
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
print("\nDownloading pages...\n")
|
for _, action in ipairs(default_action_order) do
|
||||||
download_pages(config)
|
action(config)
|
||||||
print("\nConverting pages...\n")
|
end
|
||||||
convert_pages(config)
|
|
||||||
print("\nConcatenating pages...\n")
|
|
||||||
concatenate_pages(config)
|
|
||||||
print("\nRemoving page files...\n")
|
|
||||||
rm_page_files(config)
|
|
||||||
print("\nWriting Markdown file...\n")
|
|
||||||
write_markdown_file(config)
|
|
||||||
print("\nMaking ePub...\n")
|
|
||||||
make_epub(config)
|
|
||||||
print("\nDone!\n")
|
|
||||||
end
|
end
|
||||||
|
print("\nDone!\n")
|
||||||
end
|
end
|
||||||
|
|
||||||
local positional_arguments = {"json_file_name", "action"}
|
local positional_arguments = {"json_file_name", "action", "flag"}
|
||||||
local arguments = argparse(arg, positional_arguments)
|
local arguments = argparse(arg, positional_arguments)
|
||||||
if not arguments.json_file_name then
|
if not arguments.json_file_name then
|
||||||
print(help)
|
print(help)
|
||||||
|
Loading…
Reference in New Issue
Block a user