tests: Add test_astbuilder to the skip list of nitcg niti nitvm
[nit.git] / src / nitpackage.nit
index bb6fb42..a81ded9 100644 (file)
@@ -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
@@ -317,9 +328,8 @@ redef class MPackage
        private fun check_makefile(toolcontext: ToolContext, mainmodule: MModule) do
                var model = toolcontext.modelbuilder.model
                var filter = new ModelFilter(accept_example = false, accept_test = false)
-               var view = new ModelView(model, mainmodule, filter)
 
-               var cmd_bin = new CmdMains(view, mentity = self)
+               var cmd_bin = new CmdMains(model, filter, mentity = self)
                var res_bin = cmd_bin.init_command
                if not res_bin isa CmdSuccess then return
 
@@ -335,13 +345,12 @@ redef class MPackage
 
        private fun gen_makefile(model: Model, mainmodule: MModule): nullable String do
                var filter = new ModelFilter(accept_example = false, accept_test = false)
-               var view = new ModelView(model, mainmodule, filter)
 
                var pkg_path = package_path.as(not null)
                var makefile_path = makefile_path.as(not null)
 
                var bins = new Array[String]
-               var cmd_bin = new CmdMains(view, mentity = self)
+               var cmd_bin = new CmdMains(model, filter, mentity = self)
                var res_bin = cmd_bin.init_command
                if res_bin isa CmdSuccess then
                        for mmodule in cmd_bin.results.as(not null) do
@@ -389,9 +398,7 @@ redef class MPackage
        private fun check_man(toolcontext: ToolContext, mainmodule: MModule) do
                var model = toolcontext.modelbuilder.model
                var filter = new ModelFilter(accept_example = false, accept_test = false)
-               var view = new ModelView(model, mainmodule, filter)
-
-               var cmd = new CmdMains(view, mentity = self)
+               var cmd = new CmdMains(model, filter, mentity = self)
                var res = cmd.init_command
                if not res isa CmdSuccess then return
 
@@ -404,9 +411,7 @@ redef class MPackage
        private fun gen_man(toolcontext: ToolContext, mainmodule: MModule) do
                var model = toolcontext.modelbuilder.model
                var filter = new ModelFilter(accept_example = false, accept_test = false)
-               var view = new ModelView(model, mainmodule, filter)
-
-               var cmd = new CmdMains(view, mentity = self)
+               var cmd = new CmdMains(model, filter, mentity = self)
                var res = cmd.init_command
                if not res isa CmdSuccess then return
 
@@ -417,6 +422,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