From 8198597d16b974581e2f7d6bad9d08fa392d2551 Mon Sep 17 00:00:00 2001 From: Aki Date: Sat, 10 Feb 2024 23:06:16 +0100 Subject: Generation will no longer break with invalid directories Still, a non-zero exit status will be returned from the process. --- activity/formats/svg.lua | 2 +- activity/git.lua | 10 ++++++---- generate.lua | 6 +++++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/activity/formats/svg.lua b/activity/formats/svg.lua index f7e2700..cbbb35d 100644 --- a/activity/formats/svg.lua +++ b/activity/formats/svg.lua @@ -35,7 +35,7 @@ local row_offset = 0 -- Format(s) should be stateful and instantiable. function svg.start_table () row_offset = 0 - return [[]] .. "\n" + return "" end diff --git a/activity/git.lua b/activity/git.lua index 160d227..b24fc09 100644 --- a/activity/git.lua +++ b/activity/git.lua @@ -18,17 +18,19 @@ function git.log (dirname, entries, filter) end local ok, _ = handle:close() if not ok then - error "git log closed unexpectedly" + io.stderr:write("could not read repo: ", dirname, "\n") end - return entries + return not ok, entries end function git.lookup (repositories, filter) local lookup = {} + local errors = nil local entries = {} for _, dirname in pairs(repositories) do - git.log(dirname, entries, filter) + local err, _ = git.log(dirname, entries, filter) + errors = errors or err end for _, entry in pairs(entries) do local day = dates.day_of_year(entry.date) @@ -36,7 +38,7 @@ function git.lookup (repositories, filter) lookup[year] = lookup[year] or {} lookup[year][day] = (lookup[year][day] or 0) + 1 end - return function (year, day) + return errors, function (year, day) return (lookup[year] or {})[day] or 0 end end diff --git a/generate.lua b/generate.lua index bc46585..4b0728f 100755 --- a/generate.lua +++ b/generate.lua @@ -33,4 +33,8 @@ if by_committer and by_author then end end filter = filter or by_author or by_committer -io.write(generators.generate_table(maybe_year, git.lookup(args.repos, filter), maybe_format)) +local errors, lookup = git.lookup(args.repos, filter) +io.write(generators.generate_table(maybe_year, lookup, maybe_format)) +if errors then + os.exit(1) +end -- cgit v1.1