From 88ea7ec6decd774c2c2b8445d927beadef8b7a66 Mon Sep 17 00:00:00 2001 From: Alexandre Terrasa Date: Thu, 10 May 2018 15:13:35 -0400 Subject: [PATCH] nitpackage: check existence of README.md files Signed-off-by: Alexandre Terrasa --- share/man/nitpackage.md | 3 +++ src/model/mpackage.nit | 15 +++++++++++++++ src/nitpackage.nit | 26 +++++++++++++++++++++++--- 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/share/man/nitpackage.md b/share/man/nitpackage.md index 122ce85..4a4da91 100644 --- a/share/man/nitpackage.md +++ b/share/man/nitpackage.md @@ -66,6 +66,9 @@ Check manpages files. ### `--gen-man` Generate manpages files. +### `--check-readme` +Check README.md files. + ### `-f`, `--force` Force update of existing files. diff --git a/src/model/mpackage.nit b/src/model/mpackage.nit index 3157233..1cdde49 100644 --- a/src/model/mpackage.nit +++ b/src/model/mpackage.nit @@ -92,6 +92,21 @@ class MPackage if ini_path == null then return false return ini_path.file_exists end + + # The path to `self` README.md + fun readme_path: nullable String do + var path = package_path + if path == null then return null + if not is_expanded then return null + return path / "README.md" + end + + # Does `self` have a README.md file? + fun has_readme: Bool do + var readme_path = self.readme_path + if readme_path == null then return false + return readme_path.file_exists + end end # A group of modules in a package diff --git a/src/nitpackage.nit b/src/nitpackage.nit index bb6fb42..d9f4831 100644 --- a/src/nitpackage.nit +++ b/src/nitpackage.nit @@ -19,6 +19,10 @@ import frontend import doc::commands::commands_main redef class ToolContext + + # nitpackage phase + var nitpackage_phase: Phase = new NitPackagePhase(self, null) + # --expand var opt_expand = new OptionBool("Move singleton packages to their own directory", "--expand") @@ -37,21 +41,22 @@ redef class ToolContext # --gen-makefile var opt_gen_makefile = new OptionBool("Generate Makefile files", "--gen-makefile") - # nitpackage phase - var nitpackage_phase: Phase = new NitPackagePhase(self, null) - # --check-man var opt_check_man = new OptionBool("Check manpages files", "--check-man") # --gen-man var opt_gen_man = new OptionBool("Generate manpages files", "--gen-man") + # --check-readme + var opt_check_readme = new OptionBool("Check README.md files", "--check-readme") + redef init do super option_context.add_option(opt_expand, opt_force) option_context.add_option(opt_check_ini, opt_gen_ini) option_context.add_option(opt_check_makefile, opt_gen_makefile) option_context.add_option(opt_check_man, opt_gen_man) + option_context.add_option(opt_check_readme) end end @@ -87,6 +92,12 @@ private class NitPackagePhase continue end + # Check README.md + if toolcontext.opt_check_readme.value then + mpackage.check_readme(toolcontext) + continue + end + # Expand packages if toolcontext.opt_expand.value and not mpackage.is_expanded then var path = mpackage.expand @@ -417,6 +428,15 @@ redef class MPackage mmodule.gen_man(toolcontext) end end + + # README + + private fun check_readme(toolcontext: ToolContext) do + if not has_readme then + toolcontext.error(location, "No `README.md` file for `{name}`") + return + end + end end redef class MModule -- 1.7.9.5