mirror of
https://github.com/TangentFoxy/.lua-files.git
synced 2024-11-20 21:34:23 +00:00
close #22 run all configs in a directory
This commit is contained in:
parent
3c648fbc85
commit
063437b596
@ -31,14 +31,7 @@ if not success then
|
|||||||
error("\n\nThis script may be installed improperly. Follow instructions at:\n\thttps://github.com/TangentFoxy/.lua-files#installation\n")
|
error("\n\nThis script may be installed improperly. Follow instructions at:\n\thttps://github.com/TangentFoxy/.lua-files#installation\n")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- TODO utility.path_separator should be a thing
|
local path_separator = utility.path_separator
|
||||||
local path_separator
|
|
||||||
if utility.OS == "Windows" then
|
|
||||||
path_separator = "\\"
|
|
||||||
else
|
|
||||||
path_separator = "/"
|
|
||||||
end
|
|
||||||
|
|
||||||
local copyright_warning = "This ebook was created by an automated tool for personal use. It cannot be distributed or sold without permission of copyright holder(s). (If you did not make this ebook, you may be infringing.)\n\n"
|
local copyright_warning = "This ebook was created by an automated tool for personal use. It cannot be distributed or sold without permission of copyright holder(s). (If you did not make this ebook, you may be infringing.)\n\n"
|
||||||
|
|
||||||
-- also checks for errors TODO make it check for ALL required elements and error if any are missing!
|
-- also checks for errors TODO make it check for ALL required elements and error if any are missing!
|
||||||
@ -322,19 +315,13 @@ local function argparse(arguments, positional_arguments)
|
|||||||
return recognized_arguments
|
return recognized_arguments
|
||||||
end
|
end
|
||||||
|
|
||||||
local positional_arguments = {"json_file_name", "action"}
|
local function main(arguments)
|
||||||
local arguments = argparse(arg, positional_arguments)
|
local config_file, err = io.open(arguments.json_file_name, "r")
|
||||||
if not arguments.json_file_name then
|
if not config_file then error(err) end
|
||||||
print(help)
|
local config = load_config(config_file:read("*all"))
|
||||||
error("\nA config file name/path must be specified.")
|
config_file:close()
|
||||||
end
|
|
||||||
|
|
||||||
local config_file, err = io.open(arguments.json_file_name, "r")
|
local actions = {
|
||||||
if not config_file then error(err) end
|
|
||||||
local config = load_config(config_file:read("*all"))
|
|
||||||
config_file:close()
|
|
||||||
|
|
||||||
local actions = {
|
|
||||||
download = download_pages,
|
download = download_pages,
|
||||||
convert = convert_pages,
|
convert = convert_pages,
|
||||||
concat = concatenate_pages,
|
concat = concatenate_pages,
|
||||||
@ -342,16 +329,16 @@ local actions = {
|
|||||||
epub = make_epub,
|
epub = make_epub,
|
||||||
cleanhtml = rm_html_files,
|
cleanhtml = rm_html_files,
|
||||||
cleanall = rm_all,
|
cleanall = rm_all,
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
else
|
else
|
||||||
print(help)
|
print(help)
|
||||||
error("\nInvalid action specified.")
|
error("\nInvalid action specified.")
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
print("\nDownloading pages...\n")
|
print("\nDownloading pages...\n")
|
||||||
download_pages(config)
|
download_pages(config)
|
||||||
print("\nConverting pages...\n")
|
print("\nConverting pages...\n")
|
||||||
@ -365,4 +352,23 @@ else
|
|||||||
-- print("\nRemoving HTML files...\n")
|
-- print("\nRemoving HTML files...\n")
|
||||||
-- rm_html_files(config)
|
-- rm_html_files(config)
|
||||||
print("\nDone!\n")
|
print("\nDone!\n")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local positional_arguments = {"json_file_name", "action"}
|
||||||
|
local arguments = argparse(arg, positional_arguments)
|
||||||
|
if not arguments.json_file_name then
|
||||||
|
print(help)
|
||||||
|
error("\nA config file name/path must be specified.")
|
||||||
|
end
|
||||||
|
|
||||||
|
if arguments.json_file_name == "." then
|
||||||
|
utility.ls(".")(function(file_name)
|
||||||
|
if file_name:find(".json$") then
|
||||||
|
arguments.json_file_name = file_name
|
||||||
|
main(arguments)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
else
|
||||||
|
main(arguments)
|
||||||
end
|
end
|
||||||
|
@ -16,8 +16,10 @@ local utility = {}
|
|||||||
|
|
||||||
if package.config:sub(1, 1) == "\\" then
|
if package.config:sub(1, 1) == "\\" then
|
||||||
utility.OS = "Windows"
|
utility.OS = "Windows"
|
||||||
|
utility.path_separator = "\\"
|
||||||
else
|
else
|
||||||
utility.OS = "UNIX-like"
|
utility.OS = "UNIX-like"
|
||||||
|
utility.path_separator = "/"
|
||||||
end
|
end
|
||||||
|
|
||||||
utility.path = arg[0]:match("@?(.*/)") or arg[0]:match("@?(.*\\)") -- inspired by discussion in https://stackoverflow.com/q/6380820
|
utility.path = arg[0]:match("@?(.*/)") or arg[0]:match("@?(.*\\)") -- inspired by discussion in https://stackoverflow.com/q/6380820
|
||||||
|
Loading…
Reference in New Issue
Block a user