19.0 vanilla

This commit is contained in:
Ernad Husremovic 2025-10-03 18:07:25 +02:00
parent 0a7ae8db93
commit 991d2234ca
416 changed files with 646602 additions and 300844 deletions

View file

@ -1,47 +1,43 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import argparse
import os
import sys
import textwrap
from pathlib import Path
from odoo.tools import cloc, config
from . import Command
class Cloc(Command):
""" Count lines of code per modules """
description = """
Odoo cloc is a tool to count the number of relevant lines written
in Python, Javascript or XML. This can be used as rough metric for
pricing maintenance of customizations.
It has two modes of operation, either by providing a path:
odoo-bin cloc -p module_path
Or by providing the name of a database:
odoo-bin --addons-path=dirs cloc -d database
In the latter mode, only the custom code is accounted for.
"""
def run(self, args):
parser = argparse.ArgumentParser(
prog=f'{Path(sys.argv[0]).name} {self.name}',
description="""\
Odoo cloc is a tool to count the number of relevant lines written in
Python, Javascript or XML. This can be used as rough metric for pricing
maintenance of customizations.
It has two modes of operation, either by providing a path:
odoo-bin cloc -p module_path
Or by providing the name of a database:
odoo-bin cloc --addons-path=dirs -d database
In the latter mode, only the custom code is accounted for.
""",
formatter_class=argparse.RawDescriptionHelpFormatter
)
parser.add_argument('--database', '-d', dest="database", help="Database name")
parser.add_argument('--path', '-p', action='append', help="File or directory path")
parser.add_argument('--verbose', '-v', action='count', default=0)
opt, unknown = parser.parse_known_args(args)
self.parser.add_argument('--database', '-d', dest="database", help="Database name")
self.parser.add_argument('--path', '-p', action='append', help="File or directory path")
self.parser.add_argument('--verbose', '-v', action='count', default=0)
opt, unknown = self.parser.parse_known_args(args)
if not opt.database and not opt.path:
parser.print_help()
self.parser.print_help()
sys.exit()
c = cloc.Cloc()
if opt.database:
if ',' in opt.database:
sys.exit("-d/--database has multiple databases, please provide a single one")
config.parse_config(['-d', opt.database] + unknown)
c.count_database(opt.database)
c.count_database(config['db_name'][0])
if opt.path:
for i in opt.path:
c.count_path(i)