Compare commits
2 Commits
14a5abd439
...
8a026cf541
Author | SHA1 | Date | |
---|---|---|---|
8a026cf541 | |||
f2c33feb73 |
@ -1 +0,0 @@
|
|||||||
2.5.0
|
|
@ -1,3 +1,26 @@
|
|||||||
|
## 2.6.0
|
||||||
|
|
||||||
|
- **ADDED** annotate_redeclares (https://dart.dev/tools/linter-rules/annotate_redeclares)
|
||||||
|
- **ADDED** deprecated_member_use_from_same_package (https://dart.dev/tools/linter-rules/deprecated_member_use_from_same_package)
|
||||||
|
- **ADDED** diagnostic_describe_all_properties (https://dart.dev/tools/linter-rules/diagnostic_describe_all_properties)
|
||||||
|
- **ADDED** implicit_reopen (https://dart.dev/tools/linter-rules/implicit_reopen)
|
||||||
|
- **ADDED** invalid_case_patterns (https://dart.dev/tools/linter-rules/invalid_case_patterns)
|
||||||
|
- **ADDED** matching_super_parameters (https://dart.dev/tools/linter-rules/matching_super_parameters)
|
||||||
|
- **ADDED** no_literal_bool_comparisons (https://dart.dev/tools/linter-rules/no_literal_bool_comparisons)
|
||||||
|
- **ADDED** no_self_assignments (https://dart.dev/tools/linter-rules/no_self_assignments)
|
||||||
|
- **ADDED** no_wildcard_variable_uses (https://dart.dev/tools/linter-rules/no_wildcard_variable_uses)
|
||||||
|
- **ADDED** prefer_final_parameters (https://dart.dev/tools/linter-rules/prefer_final_parameters)
|
||||||
|
- **ADDED** prefer_foreach (https://dart.dev/tools/linter-rules/prefer_foreach)
|
||||||
|
- **ADDED** type_literal_in_constant_pattern (https://dart.dev/tools/linter-rules/type_literal_in_constant_pattern)
|
||||||
|
- **ADDED** unnecessary_breaks (https://dart.dev/tools/linter-rules/unnecessary_breaks)
|
||||||
|
- **ADDED** unnecessary_library_directive (https://dart.dev/tools/linter-rules/unnecessary_library_directive)
|
||||||
|
- **ADDED** unnecessary_null_aware_operator_on_extension_on_nullable (https://dart.dev/tools/linter-rules/unnecessary_null_aware_operator_on_extension_on_nullable)
|
||||||
|
- **REMOVED** always_require_non_null_named_parameters (https://dart.dev/tools/linter-rules/always_require_non_null_named_parameters)
|
||||||
|
- **REMOVED** avoid_returning_null_for_future (https://dart.dev/tools/linter-rules/avoid_returning_null_for_future)
|
||||||
|
- **REMOVED** iterable_contains_unrelated_type (https://dart.dev/tools/linter-rules/iterable_contains_unrelated_type)
|
||||||
|
- **REMOVED** list_remove_unrelated_type (https://dart.dev/tools/linter-rules/list_remove_unrelated_type)
|
||||||
|
- **REMOVED** prefer_equal_for_default_values (https://dart.dev/tools/linter-rules/prefer_equal_for_default_values)
|
||||||
|
|
||||||
## 2.5.0
|
## 2.5.0
|
||||||
|
|
||||||
- **FIX**(analysis): remove depencies sort. (4e3b288e)
|
- **FIX**(analysis): remove depencies sort. (4e3b288e)
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
This package provides lint rules for Dart and Flutter which are used at [Wyatt Studio](https://wyatt-studio.fr). For more information, see the complete list of options in **lib/analysis_options.2.5.0.yaml**.
|
This package provides lint rules for Dart and Flutter which are used at [Wyatt Studio](https://wyatt-studio.fr). For more information, see the complete list of options in **lib/analysis_options.2.6.0.yaml**.
|
||||||
|
|
||||||
**Note**: This package was heavily inspired by [pedantic](https://github.com/dart-lang/pedantic), [Very Good Analysis](https://github.com/VeryGoodOpenSource/very_good_analysis) and the official [flutter_lints](https://pub.dev/packages/flutter_lints).
|
**Note**: This package was heavily inspired by [pedantic](https://github.com/dart-lang/pedantic), [Very Good Analysis](https://github.com/VeryGoodOpenSource/very_good_analysis) and the official [flutter_lints](https://pub.dev/packages/flutter_lints).
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ This package provides lint rules for Dart and Flutter which are used at [Wyatt
|
|||||||
Using CLI:
|
Using CLI:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
dart pub add wyatt_analysis:2.5.0 --dev --hosted-url=https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub/
|
dart pub add wyatt_analysis:2.6.0 --dev --hosted-url=https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub/
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
@ -39,7 +39,7 @@ To use the lints, add a dependency in your `pubspec.yaml` :
|
|||||||
```yaml
|
```yaml
|
||||||
wyatt_analysis:
|
wyatt_analysis:
|
||||||
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub/
|
hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub/
|
||||||
version: 2.5.0
|
version: 2.6.0
|
||||||
```
|
```
|
||||||
|
|
||||||
Then, add an include in `analysis_options.yaml` :
|
Then, add an include in `analysis_options.yaml` :
|
||||||
@ -57,13 +57,13 @@ include: package:wyatt_analysis/analysis_options.flutter.yaml
|
|||||||
If you wish to restrict the lint version, specify a version of `analysis_options.yaml` instead:
|
If you wish to restrict the lint version, specify a version of `analysis_options.yaml` instead:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
include: package:wyatt_analysis/analysis_options.flutter.2.5.0.yaml
|
include: package:wyatt_analysis/analysis_options.flutter.2.6.0.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
If you just want **Dart** version:
|
If you just want **Dart** version:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
include: package:wyatt_analysis/analysis_options.2.5.0.yaml
|
include: package:wyatt_analysis/analysis_options.2.6.0.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
## Suppressing Lints
|
## Suppressing Lints
|
||||||
@ -117,12 +117,44 @@ To indicate your project is using `wyatt_analysis` → [![style: wyatt analysis]
|
|||||||
When you want to create a new version of the plugin. Before any modification, execute the following command to create new files:
|
When you want to create a new version of the plugin. Before any modification, execute the following command to create new files:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
./new_version.sh <new_version>
|
./tools/new_version.sh <version>
|
||||||
```
|
```
|
||||||
|
|
||||||
The previous version is automatically detected thanks to the `.latest_version` file.
|
The previous version is automatically retrieved from the `pubspec.yaml` file.
|
||||||
So `.latest_version` needs to be versioned!
|
|
||||||
|
This script will create the following files:
|
||||||
|
* `lib/analysis_options.<version>.yaml`
|
||||||
|
* `lib/analysis_options.flutter.<version>.yaml`
|
||||||
|
|
||||||
|
And update the following files:
|
||||||
|
* `README.md`
|
||||||
|
* `pubspec.yaml`
|
||||||
|
* `lib/analysis_options.yaml`
|
||||||
|
* `lib/analysis_options.flutter.yaml`
|
||||||
|
* `lib/wyatt_analysis.dart`
|
||||||
|
|
||||||
|
Then, you can use the following command to retrieve latest available lints from the official linter.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./tools/check_rules.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
After that, you can modify the files `lib/analysis_options.<version>.yaml` and `lib/analysis_options.flutter.<version>.yaml` to add new lints or remove some.
|
||||||
|
|
||||||
|
Then you can sort the lints with the following command:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./tools/sort_rules.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Finally, you can generate the changelog with the following command:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./tools/generate_changelog.sh <old_version>
|
||||||
|
```
|
||||||
|
|
||||||
|
The new version is automatically retrieved from the `pubspec.yaml` file. But **you have to specify** the previous version.
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
You can explore every lint rules [here](https://dart-lang.github.io/linter/lints/).
|
You can explore every lint rules [here](https://dart.dev/tools/linter-rules).
|
||||||
|
232
packages/wyatt_analysis/lib/analysis_options.2.6.0.yaml
Normal file
232
packages/wyatt_analysis/lib/analysis_options.2.6.0.yaml
Normal file
@ -0,0 +1,232 @@
|
|||||||
|
# Copyright (C) 2023 WYATT GROUP
|
||||||
|
# Please see the AUTHORS file for details.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
analyzer:
|
||||||
|
language:
|
||||||
|
strict-casts: true
|
||||||
|
strict-inference: true
|
||||||
|
strict-raw-types: true
|
||||||
|
errors:
|
||||||
|
todo: ignore
|
||||||
|
close_sinks: ignore
|
||||||
|
missing_required_param: error
|
||||||
|
missing_return: error
|
||||||
|
record_literal_one_positional_no_trailing_comma: error
|
||||||
|
collection_methods_unrelated_type: warning
|
||||||
|
unrelated_type_equality_checks: warning
|
||||||
|
exclude:
|
||||||
|
- lib/l10n/**
|
||||||
|
- lib/generated/**
|
||||||
|
- lib/gen/**
|
||||||
|
- lib/generated_plugin_registrant.dart
|
||||||
|
- test/.test_coverage.dart
|
||||||
|
- "**/*.g.dart"
|
||||||
|
- "**/*.freezed.dart"
|
||||||
|
linter:
|
||||||
|
rules:
|
||||||
|
- always_declare_return_types
|
||||||
|
- always_put_control_body_on_new_line
|
||||||
|
- always_put_required_named_parameters_first
|
||||||
|
- always_use_package_imports
|
||||||
|
- annotate_overrides
|
||||||
|
- annotate_redeclares
|
||||||
|
- avoid_bool_literals_in_conditional_expressions
|
||||||
|
- avoid_catching_errors
|
||||||
|
- avoid_double_and_int_checks
|
||||||
|
- avoid_dynamic_calls
|
||||||
|
- avoid_empty_else
|
||||||
|
- avoid_equals_and_hash_code_on_mutable_classes
|
||||||
|
- avoid_escaping_inner_quotes
|
||||||
|
- avoid_field_initializers_in_const_classes
|
||||||
|
- avoid_final_parameters
|
||||||
|
- avoid_function_literals_in_foreach_calls
|
||||||
|
- avoid_init_to_null
|
||||||
|
- avoid_js_rounded_ints
|
||||||
|
- avoid_multiple_declarations_per_line
|
||||||
|
- avoid_null_checks_in_equality_operators
|
||||||
|
- avoid_positional_boolean_parameters
|
||||||
|
- avoid_private_typedef_functions
|
||||||
|
- avoid_redundant_argument_values
|
||||||
|
- avoid_relative_lib_imports
|
||||||
|
- avoid_renaming_method_parameters
|
||||||
|
- avoid_return_types_on_setters
|
||||||
|
- avoid_returning_null
|
||||||
|
- avoid_returning_null_for_void
|
||||||
|
- avoid_returning_this
|
||||||
|
- avoid_setters_without_getters
|
||||||
|
- avoid_shadowing_type_parameters
|
||||||
|
- avoid_single_cascade_in_expression_statements
|
||||||
|
- avoid_slow_async_io
|
||||||
|
- avoid_type_to_string
|
||||||
|
- avoid_types_as_parameter_names
|
||||||
|
- avoid_types_on_closure_parameters
|
||||||
|
- avoid_unused_constructor_parameters
|
||||||
|
- avoid_void_async
|
||||||
|
- await_only_futures
|
||||||
|
- camel_case_extensions
|
||||||
|
- camel_case_types
|
||||||
|
- cancel_subscriptions
|
||||||
|
- cascade_invocations
|
||||||
|
- cast_nullable_to_non_nullable
|
||||||
|
- collection_methods_unrelated_type
|
||||||
|
- combinators_ordering
|
||||||
|
- comment_references
|
||||||
|
- conditional_uri_does_not_exist
|
||||||
|
- constant_identifier_names
|
||||||
|
- control_flow_in_finally
|
||||||
|
- curly_braces_in_flow_control_structures
|
||||||
|
- dangling_library_doc_comments
|
||||||
|
- depend_on_referenced_packages
|
||||||
|
- deprecated_consistency
|
||||||
|
- deprecated_member_use_from_same_package
|
||||||
|
- directives_ordering
|
||||||
|
- empty_catches
|
||||||
|
- empty_constructor_bodies
|
||||||
|
- empty_statements
|
||||||
|
- eol_at_end_of_file
|
||||||
|
- exhaustive_cases
|
||||||
|
- file_names
|
||||||
|
- flutter_style_todos
|
||||||
|
- hash_and_equals
|
||||||
|
- implementation_imports
|
||||||
|
- implicit_call_tearoffs
|
||||||
|
- implicit_reopen
|
||||||
|
- invalid_case_patterns
|
||||||
|
- join_return_with_assignment
|
||||||
|
- leading_newlines_in_multiline_strings
|
||||||
|
- library_names
|
||||||
|
- library_prefixes
|
||||||
|
- library_private_types_in_public_api
|
||||||
|
- lines_longer_than_80_chars
|
||||||
|
- literal_only_boolean_expressions
|
||||||
|
- matching_super_parameters
|
||||||
|
- missing_whitespace_between_adjacent_strings
|
||||||
|
- no_adjacent_strings_in_list
|
||||||
|
- no_default_cases
|
||||||
|
- no_duplicate_case_values
|
||||||
|
- no_leading_underscores_for_library_prefixes
|
||||||
|
- no_leading_underscores_for_local_identifiers
|
||||||
|
- no_literal_bool_comparisons
|
||||||
|
- no_runtimeType_toString
|
||||||
|
- no_self_assignments
|
||||||
|
- no_wildcard_variable_uses
|
||||||
|
- non_constant_identifier_names
|
||||||
|
- noop_primitive_operations
|
||||||
|
- null_check_on_nullable_type_parameter
|
||||||
|
- null_closures
|
||||||
|
- one_member_abstracts
|
||||||
|
- only_throw_errors
|
||||||
|
- overridden_fields
|
||||||
|
- package_api_docs
|
||||||
|
- package_names
|
||||||
|
- package_prefixed_library_names
|
||||||
|
- parameter_assignments
|
||||||
|
- prefer_adjacent_string_concatenation
|
||||||
|
- prefer_asserts_in_initializer_lists
|
||||||
|
- prefer_asserts_with_message
|
||||||
|
- prefer_collection_literals
|
||||||
|
- prefer_conditional_assignment
|
||||||
|
- prefer_const_constructors
|
||||||
|
- prefer_const_constructors_in_immutables
|
||||||
|
- prefer_const_declarations
|
||||||
|
- prefer_const_literals_to_create_immutables
|
||||||
|
- prefer_constructors_over_static_methods
|
||||||
|
- prefer_contains
|
||||||
|
- prefer_expression_function_bodies
|
||||||
|
- prefer_final_fields
|
||||||
|
- prefer_final_in_for_each
|
||||||
|
- prefer_final_locals
|
||||||
|
- prefer_final_parameters
|
||||||
|
- prefer_for_elements_to_map_fromIterable
|
||||||
|
- prefer_foreach
|
||||||
|
- prefer_function_declarations_over_variables
|
||||||
|
- prefer_generic_function_type_aliases
|
||||||
|
- prefer_if_elements_to_conditional_expressions
|
||||||
|
- prefer_if_null_operators
|
||||||
|
- prefer_initializing_formals
|
||||||
|
- prefer_inlined_adds
|
||||||
|
- prefer_int_literals
|
||||||
|
- prefer_interpolation_to_compose_strings
|
||||||
|
- prefer_is_empty
|
||||||
|
- prefer_is_not_empty
|
||||||
|
- prefer_is_not_operator
|
||||||
|
- prefer_iterable_whereType
|
||||||
|
- prefer_mixin
|
||||||
|
- prefer_null_aware_method_calls
|
||||||
|
- prefer_null_aware_operators
|
||||||
|
- prefer_single_quotes
|
||||||
|
- prefer_spread_collections
|
||||||
|
- prefer_typing_uninitialized_variables
|
||||||
|
- prefer_void_to_null
|
||||||
|
- provide_deprecation_message
|
||||||
|
- recursive_getters
|
||||||
|
- require_trailing_commas
|
||||||
|
- slash_for_doc_comments
|
||||||
|
- sort_constructors_first
|
||||||
|
- sort_unnamed_constructors_first
|
||||||
|
- test_types_in_equals
|
||||||
|
- throw_in_finally
|
||||||
|
- tighten_type_of_initializing_formals
|
||||||
|
- type_annotate_public_apis
|
||||||
|
- type_init_formals
|
||||||
|
- type_literal_in_constant_pattern
|
||||||
|
- unawaited_futures
|
||||||
|
- unnecessary_await_in_return
|
||||||
|
- unnecessary_brace_in_string_interps
|
||||||
|
- unnecessary_breaks
|
||||||
|
- unnecessary_const
|
||||||
|
- unnecessary_constructor_name
|
||||||
|
- unnecessary_getters_setters
|
||||||
|
- unnecessary_lambdas
|
||||||
|
- unnecessary_late
|
||||||
|
- unnecessary_library_directive
|
||||||
|
- unnecessary_new
|
||||||
|
- unnecessary_null_aware_assignments
|
||||||
|
- unnecessary_null_aware_operator_on_extension_on_nullable
|
||||||
|
- unnecessary_null_checks
|
||||||
|
- unnecessary_null_in_if_null_operators
|
||||||
|
- unnecessary_nullable_for_final_variable_declarations
|
||||||
|
- unnecessary_overrides
|
||||||
|
- unnecessary_parenthesis
|
||||||
|
- unnecessary_raw_strings
|
||||||
|
- unnecessary_statements
|
||||||
|
- unnecessary_string_escapes
|
||||||
|
- unnecessary_string_interpolations
|
||||||
|
- unnecessary_this
|
||||||
|
- unnecessary_to_list_in_spreads
|
||||||
|
- unrelated_type_equality_checks
|
||||||
|
- unsafe_html
|
||||||
|
- use_enums
|
||||||
|
- use_function_type_syntax_for_parameters
|
||||||
|
- use_if_null_to_convert_nulls_to_bools
|
||||||
|
- use_is_even_rather_than_modulo
|
||||||
|
- use_late_for_private_fields_and_variables
|
||||||
|
- use_named_constants
|
||||||
|
- use_raw_strings
|
||||||
|
- use_rethrow_when_possible
|
||||||
|
- use_setters_to_change_properties
|
||||||
|
- use_string_buffers
|
||||||
|
- use_string_in_part_of_directives
|
||||||
|
- use_super_parameters
|
||||||
|
- use_test_throws_matchers
|
||||||
|
- use_to_and_as_if_applicable
|
||||||
|
- valid_regexps
|
||||||
|
- void_checks
|
||||||
|
# Ignored rules (incompatible with some of our rules)
|
||||||
|
# - always_specify_types
|
||||||
|
# - prefer_double_quotes
|
||||||
|
# - prefer_relative_imports
|
||||||
|
# - unnecessary_final
|
@ -0,0 +1,32 @@
|
|||||||
|
# Copyright (C) 2023 WYATT GROUP
|
||||||
|
# Please see the AUTHORS file for details.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
include: package:wyatt_analysis/analysis_options.2.6.0.yaml
|
||||||
|
linter:
|
||||||
|
rules:
|
||||||
|
- avoid_print
|
||||||
|
- avoid_unnecessary_containers
|
||||||
|
- avoid_web_libraries_in_flutter
|
||||||
|
- diagnostic_describe_all_properties
|
||||||
|
- no_logic_in_create_state
|
||||||
|
- sized_box_for_whitespace
|
||||||
|
- sized_box_shrink_expand
|
||||||
|
- sort_child_properties_last
|
||||||
|
- use_build_context_synchronously
|
||||||
|
- use_colored_box
|
||||||
|
- use_decorated_box
|
||||||
|
- use_full_hex_values_for_flutter_colors
|
||||||
|
- use_key_in_widget_constructors
|
@ -15,5 +15,5 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
include: package:wyatt_analysis/analysis_options.flutter.2.5.0.yaml
|
include: package:wyatt_analysis/analysis_options.flutter.2.6.0.yaml
|
||||||
|
|
||||||
|
@ -15,5 +15,5 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
include: package:wyatt_analysis/analysis_options.2.5.0.yaml
|
include: package:wyatt_analysis/analysis_options.2.6.0.yaml
|
||||||
|
|
||||||
|
@ -18,4 +18,4 @@
|
|||||||
/// used internally at [Wyatt Studio](https://wyatt-studio.fr).
|
/// used internally at [Wyatt Studio](https://wyatt-studio.fr).
|
||||||
library wyatt_analysis;
|
library wyatt_analysis;
|
||||||
|
|
||||||
const String wyattAnalysisVersion = '2.5.0';
|
const String wyattAnalysisVersion = '2.6.0';
|
||||||
|
@ -1,142 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
# Copyright (C) 2022 WYATT GROUP
|
|
||||||
# Please see the AUTHORS file for details.
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
usage="
|
|
||||||
usage:
|
|
||||||
$(basename "$0") <new_version> -- create new analyzer files.
|
|
||||||
|
|
||||||
where:
|
|
||||||
new_version: new version, for example \`2.4.0\`"
|
|
||||||
|
|
||||||
new=$1
|
|
||||||
|
|
||||||
if [ -z "$new" ]; then
|
|
||||||
echo "new_version cannot be null"
|
|
||||||
echo "${usage}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
SCRIPT_PATH="${BASH_SOURCE:-$0}"
|
|
||||||
ABS_SCRIPT_PATH="$(realpath "${SCRIPT_PATH}")"
|
|
||||||
ABS_DIRECTORY="$(dirname "${ABS_SCRIPT_PATH}")"
|
|
||||||
|
|
||||||
LATEST_VERSION="${ABS_DIRECTORY}/.latest_version"
|
|
||||||
|
|
||||||
# Read latest version
|
|
||||||
if [ -e "$LATEST_VERSION" ]; then
|
|
||||||
old=$(cat "$LATEST_VERSION")
|
|
||||||
echo "> latest package version is: $old"
|
|
||||||
echo "> new package version is: $new"
|
|
||||||
else
|
|
||||||
echo "latest version is not set"
|
|
||||||
echo "create a file named \`.latest_version\` in the root of the project"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
LIB="${ABS_DIRECTORY}/lib/wyatt_analysis.dart"
|
|
||||||
OPTIONS="${ABS_DIRECTORY}/lib/analysis_options.yaml"
|
|
||||||
OLD_OPTIONS="${ABS_DIRECTORY}/lib/analysis_options.${old}.yaml"
|
|
||||||
NEW_OPTIONS="${ABS_DIRECTORY}/lib/analysis_options.${new}.yaml"
|
|
||||||
|
|
||||||
OPTIONS_FLUTTER="${ABS_DIRECTORY}/lib/analysis_options.flutter.yaml"
|
|
||||||
OLD_OPTIONS_FLUTTER="${ABS_DIRECTORY}/lib/analysis_options.flutter.${old}.yaml"
|
|
||||||
NEW_OPTIONS_FLUTTER="${ABS_DIRECTORY}/lib/analysis_options.flutter.${new}.yaml"
|
|
||||||
|
|
||||||
|
|
||||||
if [ ! -e "$OLD_OPTIONS" ]; then
|
|
||||||
echo "analysis_options.${old}.yaml doesn't exists"
|
|
||||||
echo "${usage}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -e "$OLD_OPTIONS_FLUTTER" ]; then
|
|
||||||
echo "analysis_options.flutter.${old}.yaml doesn't exists"
|
|
||||||
echo "${usage}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "$NEW_OPTIONS" ]; then
|
|
||||||
echo "analysis_options.${new}.yaml already exists"
|
|
||||||
echo "${usage}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "$NEW_OPTIONS_FLUTTER" ]; then
|
|
||||||
echo "analysis_options.flutter.${old}.yaml already exists"
|
|
||||||
echo "${usage}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Copy previous version files
|
|
||||||
cp "${OLD_OPTIONS}" "${NEW_OPTIONS}"
|
|
||||||
cp "${OLD_OPTIONS_FLUTTER}" "${NEW_OPTIONS_FLUTTER}"
|
|
||||||
|
|
||||||
# Search and replace old version string occurences in new files
|
|
||||||
sed -e "s/${old}/${new}/g" "${NEW_OPTIONS_FLUTTER}" > tempfile.tmp
|
|
||||||
mv -f tempfile.tmp "${NEW_OPTIONS_FLUTTER}"
|
|
||||||
|
|
||||||
sed -e "s/${old}/${new}/g" "${LIB}" > tempfile.tmp
|
|
||||||
mv -f tempfile.tmp "${LIB}"
|
|
||||||
|
|
||||||
sed -e "s/${old}/${new}/g" "README.md" > tempfile.tmp
|
|
||||||
mv -f tempfile.tmp "README.md"
|
|
||||||
|
|
||||||
echo "
|
|
||||||
# Copyright (C) 2023 WYATT GROUP
|
|
||||||
# Please see the AUTHORS file for details.
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
include: package:wyatt_analysis/analysis_options.${new}.yaml
|
|
||||||
" > "${OPTIONS}"
|
|
||||||
|
|
||||||
echo "
|
|
||||||
# Copyright (C) 2023 WYATT GROUP
|
|
||||||
# Please see the AUTHORS file for details.
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
include: package:wyatt_analysis/analysis_options.flutter.${new}.yaml
|
|
||||||
" > "${OPTIONS_FLUTTER}"
|
|
||||||
|
|
||||||
# Update latest version
|
|
||||||
echo "${new}" > "$LATEST_VERSION"
|
|
||||||
|
|
||||||
exit 0
|
|
@ -17,7 +17,7 @@
|
|||||||
name: wyatt_analysis
|
name: wyatt_analysis
|
||||||
description: Lint rules for Dart and Flutter used internally at Wyatt Studio.
|
description: Lint rules for Dart and Flutter used internally at Wyatt Studio.
|
||||||
repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_analysis
|
repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_analysis
|
||||||
version: 2.5.0
|
version: 2.6.0
|
||||||
|
|
||||||
publish_to: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
|
publish_to: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
|
||||||
|
|
||||||
|
105
packages/wyatt_analysis/tools/check_rules.sh
Executable file
105
packages/wyatt_analysis/tools/check_rules.sh
Executable file
@ -0,0 +1,105 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (C) 2023 WYATT GROUP
|
||||||
|
# Please see the AUTHORS file for details.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# This script scrapes the latest version of the ruleset from the
|
||||||
|
# official Dart repository and tests it against the latest version of
|
||||||
|
# the Wyatt Analysis ruleset.
|
||||||
|
|
||||||
|
basename=$(basename "$0")
|
||||||
|
basepath=$(dirname "$0")
|
||||||
|
official_ruleset_url="https://raw.githubusercontent.com/dart-lang/sdk/main/pkg/linter/example/all.yaml"
|
||||||
|
|
||||||
|
red=$(tput setaf 1)
|
||||||
|
blue=$(tput setaf 4)
|
||||||
|
yellow=$(tput setaf 3)
|
||||||
|
reset=$(tput sgr0)
|
||||||
|
|
||||||
|
# Check for dependencies.
|
||||||
|
if ! command -v yq &>/dev/null; then
|
||||||
|
echo "yq could not be found. Please install it and try again."
|
||||||
|
echo "https://github.com/mikefarah/yq"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for arguments, if no arguments read latest version from pubspec.yaml.
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
wyatt_analysis_version=$(yq eval '.version' "${basepath}/../pubspec.yaml")
|
||||||
|
else
|
||||||
|
wyatt_analysis_version=$1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Read latest version
|
||||||
|
wyatt_analysis_version=$(yq eval '.version' "${basepath}/../pubspec.yaml")
|
||||||
|
|
||||||
|
# Check if the version of the Wyatt Analysis ruleset is valid by checking if the file exists.
|
||||||
|
if [ ! -f "$basepath/../lib/analysis_options.$wyatt_analysis_version.yaml" ]; then
|
||||||
|
echo "Wyatt Analysis version $wyatt_analysis_version could not be found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Found Wyatt Analysis version $wyatt_analysis_version"
|
||||||
|
|
||||||
|
# Generate temporary directory.
|
||||||
|
tmp_dir=$(mktemp -d)
|
||||||
|
|
||||||
|
# Download the official ruleset.
|
||||||
|
curl -s "$official_ruleset_url" >"$tmp_dir/official.yaml"
|
||||||
|
|
||||||
|
# List yaml elements in the official ruleset, "linter.rules" and save it in an array.
|
||||||
|
official_rules=($(yq eval '.linter.rules | .[]' "$tmp_dir/official.yaml"))
|
||||||
|
echo "Finding differences between the official ruleset and the Wyatt Analysis ruleset..."
|
||||||
|
echo "This may take a while..."
|
||||||
|
|
||||||
|
# Merges the wyatt dart analysis ruleset with the wyatt flutter analysis ruleset.
|
||||||
|
yq ea '. as $item ireduce ({}; . *+ $item)' "$basepath/../lib/analysis_options.$wyatt_analysis_version.yaml" "$basepath/../lib/analysis_options.flutter.$wyatt_analysis_version.yaml" >"$tmp_dir/wyatt.yaml"
|
||||||
|
|
||||||
|
# List yaml elements in the Wyatt Analysis ruleset, "linter.rules" and save it in an array.
|
||||||
|
wyatt_rules=($(yq eval '.linter.rules | .[]' "$tmp_dir/wyatt.yaml"))
|
||||||
|
|
||||||
|
# Read merged files, and list all ignored rules (starting with a # -).
|
||||||
|
ignored_rules=($(grep -oP '(?<=# - ).*' "$tmp_dir/wyatt.yaml"))
|
||||||
|
|
||||||
|
echo "Found $(echo "${official_rules[@]}" | wc -w) rules in the official ruleset."
|
||||||
|
echo "Found $(echo "${wyatt_rules[@]}" | wc -w) rules in the Wyatt Analysis ruleset."
|
||||||
|
echo "Found $(echo "${ignored_rules[@]}" | wc -w) ignored rules in the Wyatt Analysis ruleset."
|
||||||
|
|
||||||
|
# Iterate over the official ruleset.
|
||||||
|
for rule in "${official_rules[@]}"; do
|
||||||
|
# Check if the rule is in the Wyatt Analysis ruleset.
|
||||||
|
if ! grep -q "$rule" "$tmp_dir/wyatt.yaml"; then
|
||||||
|
echo "${red}+ $rule${reset} (https://dart.dev/tools/linter-rules/$rule)"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Iterate over the Wyatt Analysis ruleset and print the rules that are not in the official ruleset.
|
||||||
|
for rule in "${wyatt_rules[@]}"; do
|
||||||
|
# Check if the rule is in the official ruleset.
|
||||||
|
if ! grep -q "$rule" "$tmp_dir/official.yaml"; then
|
||||||
|
echo "${blue}- $rule${reset} (https://dart.dev/tools/linter-rules/$rule)"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Iterate over the ignored rules and print them.
|
||||||
|
for rule in "${ignored_rules[@]}"; do
|
||||||
|
echo "${yellow}~ $rule${reset} (https://dart.dev/tools/linter-rules/$rule)"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Remove temporary directory.
|
||||||
|
rm -rf "$tmp_dir"
|
||||||
|
|
||||||
|
exit 0
|
109
packages/wyatt_analysis/tools/generate_changelog.sh
Executable file
109
packages/wyatt_analysis/tools/generate_changelog.sh
Executable file
@ -0,0 +1,109 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (C) 2023 WYATT GROUP
|
||||||
|
# Please see the AUTHORS file for details.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
basename=$(basename "$0")
|
||||||
|
basepath=$(dirname "$0")
|
||||||
|
|
||||||
|
# Check for dependencies.
|
||||||
|
if ! command -v yq &>/dev/null; then
|
||||||
|
echo "yq could not be found. Please install it and try again."
|
||||||
|
echo "https://github.com/mikefarah/yq"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for arguments,
|
||||||
|
# it should be the version of the old ruleset that you want to compare with the new ruleset.
|
||||||
|
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
echo "Please provide the version of the old ruleset that you want to compare with the new ruleset."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Read the version of the old ruleset from the arguments.
|
||||||
|
old_wyatt_analysis_version=$1
|
||||||
|
|
||||||
|
# Read the version of the new ruleset from pubspec.yaml.
|
||||||
|
new_wyatt_analysis_version=$(yq eval '.version' "${basepath}/../pubspec.yaml")
|
||||||
|
|
||||||
|
# Check if the version of the Wyatt Analysis ruleset is valid by checking if the file exists.
|
||||||
|
if [ ! -f "$basepath/../lib/analysis_options.$old_wyatt_analysis_version.yaml" ]; then
|
||||||
|
echo "Wyatt Analysis version $old_wyatt_analysis_version could not be found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$basepath/../lib/analysis_options.$new_wyatt_analysis_version.yaml" ]; then
|
||||||
|
echo "Wyatt Analysis version $new_wyatt_analysis_version could not be found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Found Wyatt Analysis version $old_wyatt_analysis_version and $new_wyatt_analysis_version"
|
||||||
|
|
||||||
|
# Generate temporary directory.
|
||||||
|
tmp_dir=$(mktemp -d)
|
||||||
|
|
||||||
|
# Merges the wyatt dart analysis ruleset with the wyatt flutter analysis ruleset.
|
||||||
|
yq ea '. as $item ireduce ({}; . *+ $item)' "$basepath/../lib/analysis_options.$old_wyatt_analysis_version.yaml" "$basepath/../lib/analysis_options.flutter.$old_wyatt_analysis_version.yaml" >"$tmp_dir/old_wyatt.yaml"
|
||||||
|
|
||||||
|
yq ea '. as $item ireduce ({}; . *+ $item)' "$basepath/../lib/analysis_options.$new_wyatt_analysis_version.yaml" "$basepath/../lib/analysis_options.flutter.$new_wyatt_analysis_version.yaml" >"$tmp_dir/new_wyatt.yaml"
|
||||||
|
|
||||||
|
# List yaml elements in the old ruleset, "linter.rules" and save it in an array.
|
||||||
|
old_wyatt_rules=($(yq eval '.linter.rules | .[]' "$tmp_dir/old_wyatt.yaml"))
|
||||||
|
|
||||||
|
# List yaml elements in the new ruleset, "linter.rules" and save it in an array.
|
||||||
|
new_wyatt_rules=($(yq eval '.linter.rules | .[]' "$tmp_dir/new_wyatt.yaml"))
|
||||||
|
|
||||||
|
# List all the rules that are in the old ruleset but not in the new ruleset.
|
||||||
|
removed_rules=($(comm -23 <(printf '%s\n' "${old_wyatt_rules[@]}" | sort) <(printf '%s\n' "${new_wyatt_rules[@]}" | sort)))
|
||||||
|
|
||||||
|
# List all the rules that are in the new ruleset but not in the old ruleset.
|
||||||
|
added_rules=($(comm -13 <(printf '%s\n' "${old_wyatt_rules[@]}" | sort) <(printf '%s\n' "${new_wyatt_rules[@]}" | sort)))
|
||||||
|
|
||||||
|
# Generate markdown file.
|
||||||
|
|
||||||
|
echo "## ${new_wyatt_analysis_version}" >"$tmp_dir/CHANGELOG.md"
|
||||||
|
echo "" >>"$tmp_dir/CHANGELOG.md"
|
||||||
|
|
||||||
|
# Iterate over the added rules and print them in the markdown file.
|
||||||
|
for rule in "${added_rules[@]}"; do
|
||||||
|
echo " - **ADDED** $rule (https://dart.dev/tools/linter-rules/$rule)" >>"$tmp_dir/CHANGELOG.md"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Iterate over the removed rules and print them in the markdown file.
|
||||||
|
for rule in "${removed_rules[@]}"; do
|
||||||
|
echo " - **REMOVED** $rule (https://dart.dev/tools/linter-rules/$rule)" >>"$tmp_dir/CHANGELOG.md"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "" >>"$tmp_dir/CHANGELOG.md"
|
||||||
|
|
||||||
|
# Print the contents of the markdown file.
|
||||||
|
cat "$tmp_dir/CHANGELOG.md"
|
||||||
|
|
||||||
|
# Ask the user if they want to add the changes to the CHANGELOG.md file.
|
||||||
|
read -p "Do you want to add the changes to the CHANGELOG.md file? (y/n) " -n 1 -r
|
||||||
|
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
# Add the changes to the top of the CHANGELOG.md file.
|
||||||
|
cat "$tmp_dir/CHANGELOG.md" "$basepath/../CHANGELOG.md" >"$tmp_dir/CHANGELOG.md.tmp"
|
||||||
|
cp -f "$tmp_dir/CHANGELOG.md.tmp" "$basepath/../CHANGELOG.md"
|
||||||
|
rm -f "$tmp_dir/CHANGELOG.md.tmp"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove temporary directory.
|
||||||
|
rm -rf "$tmp_dir"
|
||||||
|
|
||||||
|
exit 0
|
98
packages/wyatt_analysis/tools/new_version.sh
Executable file
98
packages/wyatt_analysis/tools/new_version.sh
Executable file
@ -0,0 +1,98 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (C) 2023 WYATT GROUP
|
||||||
|
# Please see the AUTHORS file for details.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
basename=$(basename "$0")
|
||||||
|
basepath=$(dirname "$0")
|
||||||
|
|
||||||
|
# Check for arguments, first argument should be wyatt_analysis_version.
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
echo "Usage: $basename <wyatt_analysis_version>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
wyatt_analysis_version=$1
|
||||||
|
|
||||||
|
# Check for dependencies.
|
||||||
|
if ! command -v yq &>/dev/null; then
|
||||||
|
echo "yq could not be found. Please install it and try again."
|
||||||
|
echo "https://github.com/mikefarah/yq"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Read latest version
|
||||||
|
latest_version=$(yq eval '.version' "${basepath}/../pubspec.yaml")
|
||||||
|
echo "> latest package version is: $latest_version"
|
||||||
|
echo "> new package version is: $wyatt_analysis_version"
|
||||||
|
|
||||||
|
# Create array with all files that need to exist
|
||||||
|
files=(
|
||||||
|
"${basepath}/../pubspec.yaml"
|
||||||
|
"${basepath}/../README.md"
|
||||||
|
"${basepath}/../lib/wyatt_analysis.dart"
|
||||||
|
"${basepath}/../lib/analysis_options.yaml"
|
||||||
|
"${basepath}/../lib/analysis_options.flutter.yaml"
|
||||||
|
"${basepath}/../lib/analysis_options.${latest_version}.yaml"
|
||||||
|
"${basepath}/../lib/analysis_options.flutter.${latest_version}.yaml"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Check if all files exist
|
||||||
|
for file in "${files[@]}"; do
|
||||||
|
if [ ! -f "$file" ]; then
|
||||||
|
echo "File ${file} doesn't exists"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Create new analysis_options files
|
||||||
|
echo "Creating new analysis_options files"
|
||||||
|
cp "${basepath}/../lib/analysis_options.${latest_version}.yaml" "${basepath}/../lib/analysis_options.${wyatt_analysis_version}.yaml"
|
||||||
|
cp "${basepath}/../lib/analysis_options.flutter.${latest_version}.yaml" "${basepath}/../lib/analysis_options.flutter.${wyatt_analysis_version}.yaml"
|
||||||
|
|
||||||
|
# Update version in new analysis_options files
|
||||||
|
echo "Updating version in new analysis_options files"
|
||||||
|
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../lib/analysis_options.${wyatt_analysis_version}.yaml"
|
||||||
|
rm "${basepath}/../lib/analysis_options.${wyatt_analysis_version}.yaml.bu"
|
||||||
|
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../lib/analysis_options.flutter.${wyatt_analysis_version}.yaml"
|
||||||
|
rm "${basepath}/../lib/analysis_options.flutter.${wyatt_analysis_version}.yaml.bu"
|
||||||
|
|
||||||
|
# Update version in pubspec.yaml
|
||||||
|
echo "Updating version in pubspec.yaml"
|
||||||
|
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../pubspec.yaml"
|
||||||
|
rm "${basepath}/../pubspec.yaml.bu"
|
||||||
|
|
||||||
|
# Update version in README.md
|
||||||
|
echo "Updating version in README.md"
|
||||||
|
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../README.md"
|
||||||
|
rm "${basepath}/../README.md.bu"
|
||||||
|
|
||||||
|
# Update version in wyatt_analysis.dart
|
||||||
|
echo "Updating version in wyatt_analysis.dart"
|
||||||
|
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../lib/wyatt_analysis.dart"
|
||||||
|
rm "${basepath}/../lib/wyatt_analysis.dart.bu"
|
||||||
|
|
||||||
|
# Update version in analysis_options.yaml
|
||||||
|
echo "Updating version in analysis_options.yaml"
|
||||||
|
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../lib/analysis_options.yaml"
|
||||||
|
rm "${basepath}/../lib/analysis_options.yaml.bu"
|
||||||
|
|
||||||
|
# Update version in analysis_options.flutter.yaml
|
||||||
|
echo "Updating version in analysis_options.flutter.yaml"
|
||||||
|
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../lib/analysis_options.flutter.yaml"
|
||||||
|
rm "${basepath}/../lib/analysis_options.flutter.yaml.bu"
|
||||||
|
|
||||||
|
exit 0
|
59
packages/wyatt_analysis/tools/sort_rules.sh
Executable file
59
packages/wyatt_analysis/tools/sort_rules.sh
Executable file
@ -0,0 +1,59 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (C) 2023 WYATT GROUP
|
||||||
|
# Please see the AUTHORS file for details.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
basename=$(basename "$0")
|
||||||
|
basepath=$(dirname "$0")
|
||||||
|
|
||||||
|
# Check for dependencies.
|
||||||
|
if ! command -v yq &>/dev/null; then
|
||||||
|
echo "yq could not be found. Please install it and try again."
|
||||||
|
echo "https://github.com/mikefarah/yq"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for arguments, if no arguments read latest version from pubspec.yaml.
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
wyatt_analysis_version=$(yq eval '.version' "${basepath}/../pubspec.yaml")
|
||||||
|
else
|
||||||
|
wyatt_analysis_version=$1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if the version of the Wyatt Analysis ruleset is valid by checking if the file exists.
|
||||||
|
if [ ! -f "$basepath/../lib/analysis_options.$wyatt_analysis_version.yaml" ]; then
|
||||||
|
echo "Wyatt Analysis version $wyatt_analysis_version could not be found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Found Wyatt Analysis version $wyatt_analysis_version"
|
||||||
|
echo "Sorting rules..."
|
||||||
|
|
||||||
|
# Sort the rules in "lint.rules" alphabetically.
|
||||||
|
yq eval '.linter.rules |= sort_by(.)' "$basepath/../lib/analysis_options.$wyatt_analysis_version.yaml" >"$basepath/../lib/analysis_options.$wyatt_analysis_version.yaml.tmp"
|
||||||
|
|
||||||
|
cp -f "$basepath/../lib/analysis_options.$wyatt_analysis_version.yaml.tmp" "$basepath/../lib/analysis_options.$wyatt_analysis_version.yaml"
|
||||||
|
|
||||||
|
rm -f "$basepath/../lib/analysis_options.$wyatt_analysis_version.yaml.tmp"
|
||||||
|
|
||||||
|
# Sort the rules in "lint.rules" alphabetically.
|
||||||
|
yq eval '.linter.rules |= sort_by(.)' "$basepath/../lib/analysis_options.flutter.$wyatt_analysis_version.yaml" >"$basepath/../lib/analysis_options.flutter.$wyatt_analysis_version.yaml.tmp"
|
||||||
|
|
||||||
|
cp -f "$basepath/../lib/analysis_options.flutter.$wyatt_analysis_version.yaml.tmp" "$basepath/../lib/analysis_options.flutter.$wyatt_analysis_version.yaml"
|
||||||
|
|
||||||
|
rm -f "$basepath/../lib/analysis_options.flutter.$wyatt_analysis_version.yaml.tmp"
|
||||||
|
|
||||||
|
exit 0
|
Loading…
x
Reference in New Issue
Block a user