Files
odoo_source/addons/web/tooling/refresh.sh
T
Simon Genin (ges) 729647493f [IMP] dx: tooling js: improvements and preparation for runbot lint
- Use of jsconfig instead of tsconfig
- jsconfig deployed with tooling, no need for CLI
- ecmascript bumped to version es2022 (static properties)
- prettierrc merged inside the eslintrc
- add a few globals
- cleanup package.json scripts
- add script to lint/format only the diff (opposed to staged files)
- bump up node packages versions
- use eslint as cli instead of prettier-eslint, as eslint does provide
parsable output for runbot.
- add the typescrit types of libs as dependencies + main.d.ts to
improve autompletion.

This upgrade makes it easier to deploy and use the js tooling, as it is
expected more and more people will use it if a lint check is added to
the runbot.

About the runbot:
The commit gets the code ready to enable the lint on the runbot.
It will lint the code with the same rules and same ignore file.
The only difference is the runbot will check only the diff and not the
entire commited file.
The goal will be to progressively (and aggressively) whitelist modules
to converge to a nice formatted codebase.

closes odoo/odoo#105165

Related: odoo/enterprise#34048
Signed-off-by: Michaël Mattiello <mcm@odoo.com>
2022-11-17 13:57:19 +01:00

39 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
community=$(cd -- "$(dirname "$0")" &> /dev/null && cd ../../.. && pwd)
tooling="$community/addons/web/tooling"
testRealPath="$(realpath --relative-to=. "$tooling/hooks")"
if [[ $testRealPath == "" ]]; then
echo "Please install realpath"
exit 1
fi
refreshInDir () {
cd $1
cp "$tooling/_eslintignore" .eslintignore
cp "$tooling/_eslintrc.json" .eslintrc.json
cp "$tooling/_jsconfig.json" jsconfig.json
cp "$tooling/_package.json" package.json
cd - &> /dev/null
}
read -p "Refresh tooling in enterprise ? [y, n]" doEnterprise
if [[ $doEnterprise != "n" ]]; then
read -p "What is the relative path from community to enterprise ? (../enterprise)" pathToEnterprise
pathToEnterprise=${pathToEnterprise:-../enterprise}
pathToEnterprise=$(realpath $community/$pathToEnterprise)
fi
refreshInDir "$community"
if [[ $doEnterprise != "n" ]]
then
refreshInDir "$pathToEnterprise" copy
fi
echo ""
echo "The JS tooling config files have been refreshed"
echo "Make sure to refresh the eslint and typescript service and configure your IDE so it uses the config files"
echo 'For VSCode, look inside your .vscode/settings.json file ("editor.defaultFormatter": "dbaeumer.vscode-eslint")'
echo "If you still have issues, try doing a full reload instead which will reinstall the node modules"
echo ""