Property definitions

nitc $ CmdManFile :: defaultinit
# Cmd that finds the man file related to an `mentity`
class CmdManFile
	super CmdEntity

	# Man file
	var file: nullable String = null

	redef fun init_command do
		var res = super
		if not res isa CmdSuccess then return res
		var mentity = self.mentity.as(not null)

		var mpackage = null
		if mentity isa MPackage then
			mpackage = mentity
		else if mentity isa MGroup then
			mpackage = mentity.mpackage
		else if mentity isa MModule then
			mpackage = mentity.mpackage
		end

		if mpackage == null then return new WarningNoManFile(mentity)

		var source_file = mpackage.location.file
		if source_file == null then return new WarningNoManFile(mentity)

		var man_dir = source_file.filename / "man"
		if not man_dir.file_exists then return new WarningNoManFile(mentity)

		var man_file = null
		for file in man_dir.files do
			if not file.has_prefix(mentity.name) then continue
			man_file = man_dir / file
		end
		if man_file == null then return new WarningNoManFile(mentity)

		self.file = man_file

		return res
	end
end
src/doc/commands/commands_main.nit:197,1--237,3