Skip to content

Commit

Permalink
Migrate most tool commands to dart (#321)
Browse files Browse the repository at this point in the history
* Migrate most commands to dart

* Update github workflow scripts

* Register and parse arguments for integration test

* Code cleanups and remove .clang-format file

* Use clang-format-11

* Restore .clang-format file

* Fix comments and log messages

* Format code and log messages

* Remove newlines in help messages

* Fix help message
  • Loading branch information
HakkyuKim authored Jan 19, 2022
1 parent 3fb51bd commit ab57fb8
Show file tree
Hide file tree
Showing 10 changed files with 205 additions and 208 deletions.
185 changes: 3 additions & 182 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,183 +1,4 @@
# This file is generated by the following command
# clang-format(v11.0.1, in vscode v1.55.0) -style=Google -dump-config > .clang-format
# DON'T delete this file as it helps developers format C++ code in
# IDEs such as VSCode.

---
Language: Cpp
# BasedOnStyle: Google
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignConsecutiveMacros: false
AlignConsecutiveAssignments: false
AlignConsecutiveBitFields: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands: Align
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortEnumsOnASingleLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: Never
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 80
CommentPragmas: "^ IWYU pragma:"
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: true
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^<ext/.*\.h>'
Priority: 2
SortPriority: 0
- Regex: '^<.*\.h>'
Priority: 1
SortPriority: 0
- Regex: "^<.*"
Priority: 2
SortPriority: 0
- Regex: ".*"
Priority: 3
SortPriority: 0
IncludeIsMainRegex: "([-_](test|unittest))?$"
IncludeIsMainSourceRegex: ""
IndentCaseLabels: true
IndentCaseBlocks: false
IndentGotoLabels: true
IndentPPDirectives: None
IndentExternBlock: AfterExternBlock
IndentWidth: 2
IndentWrappedFunctionNames: false
InsertTrailingCommas: None
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ""
MacroBlockEnd: ""
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
RawStringFormats:
- Language: Cpp
Delimiters:
- cc
- CC
- cpp
- Cpp
- CPP
- "c++"
- "C++"
CanonicalDelimiter: ""
BasedOnStyle: google
- Language: TextProto
Delimiters:
- pb
- PB
- proto
- PROTO
EnclosingFunctions:
- EqualsProto
- EquivToProto
- PARSE_PARTIAL_TEXT_PROTO
- PARSE_TEST_PROTO
- PARSE_TEXT_PROTO
- ParseTextOrDie
- ParseTextProtoOrDie
- ParseTestProto
- ParsePartialTestProto
CanonicalDelimiter: ""
BasedOnStyle: google
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
Standard: Auto
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 8
UseCRLF: false
UseTab: Never
WhitespaceSensitiveMacros:
- STRINGIZE
- PP_STRINGIZE
- BOOST_PP_STRINGIZE
BasedOnStyle: Google
10 changes: 4 additions & 6 deletions .github/workflows/analyze.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Analyze
on: [push, pull_request]

jobs:
dart:
dart_analyze:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
Expand All @@ -16,11 +16,9 @@ jobs:
cd $d
flutter pub get
done
- name: Verify formatting
run: dart format --output=none --set-exit-if-changed packages
- name: Analyze source code
run: dart analyze --fatal-infos packages
clang:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
Expand All @@ -31,5 +29,5 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install clang-format-11
- name: Check tidy
run: ./tools/tools_runner.sh tidy --dir packages
- name: Check format
run: ./tools/tools_runner.sh format --fail-on-change --clang-format=clang-format-11
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
channel: stable
- name: Find changed packages
run: |
CHANGED_PACKAGES=$(./tools/tools_runner.sh plugins \
CHANGED_PACKAGES=$(./tools/tools_runner.sh list \
--run-on-changed-packages \
--base-sha=$(git rev-parse HEAD^))
if [[ ! -z $CHANGED_PACKAGES ]]; then
Expand Down Expand Up @@ -82,6 +82,6 @@ jobs:
if: ${{ env.HAS_CHANGED_PACKAGES == 'true' }}
run: |
export PATH=`pwd`/flutter-tizen/bin:$PATH
./tools/tools_runner.sh build \
./tools/tools_runner.sh build-examples \
--run-on-changed-packages \
--base-sha=$(git rev-parse HEAD^)
4 changes: 2 additions & 2 deletions .github/workflows/integration_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
if: ${{ github.event_name == 'pull_request' }}
run: |
export PATH=`pwd`/flutter-tizen/bin:$PATH
./tools/tools_runner.sh test \
./tools/tools_runner.sh integration-test \
--recipe ./.github/recipe.yaml \
--generate-emulators \
--run-on-changed-packages \
Expand All @@ -35,6 +35,6 @@ jobs:
if: ${{ github.event_name == 'push' }}
run: |
export PATH=`pwd`/flutter-tizen/bin:$PATH
./tools/tools_runner.sh test \
./tools/tools_runner.sh integration-test \
--recipe ./.github/recipe.yaml \
--generate-emulators
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,6 @@ build/
.project
.classpath
.settings

# Downloaded by the plugin tools.
google-java-format-1.3-all-deps.jar
5 changes: 5 additions & 0 deletions tools/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
include: ../analysis_options.yaml

linter:
rules:
implementation_imports: false
77 changes: 77 additions & 0 deletions tools/lib/src/build_examples_command.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
// Copyright 2022 Samsung Electronics Co., Ltd. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:file/file.dart';
import 'package:flutter_plugin_tools/src/common/package_looping_command.dart';
import 'package:flutter_plugin_tools/src/common/repository_package.dart';

/// A command to build the example applications for packages.
class BuildExamplesCommand extends PackageLoopingCommand {
/// Creates an instance of the build command.
BuildExamplesCommand(Directory packagesDir) : super(packagesDir);

@override
String get description => 'Builds all example apps.\n\n'
'This command requires "flutter-tizen" to be in your path.';

@override
String get name => 'build-examples';

@override
Future<PackageResult> runForPackage(RepositoryPackage package) async {
final List<String> errors = <String>[];

int exitCode = await processRunner.runAndStream(
'flutter-tizen',
<String>['pub', 'get'],
workingDir: package.directory,
);
if (exitCode != 0) {
errors.add('${package.displayName} (pub get failed)');
return PackageResult.fail(errors);
}

bool builtSomething = false;
for (final RepositoryPackage example in package.getExamples()) {
final String packageName = getRelativePosixPath(
example.directory,
from: packagesDir,
);

builtSomething = true;
// TODO(HakkyuKim): Support different profiles.
final int exitCode = await processRunner.runAndStream(
'flutter-tizen',
<String>[
'build',
'tpk',
'--device-profile',
'wearable',
'-v',
],
workingDir: example.directory,
);
if (exitCode != 0) {
errors.add(packageName);
}
}

if (!builtSomething) {
errors.add('No examples found');
}

exitCode = await processRunner.runAndStream(
'flutter-tizen',
<String>['clean'],
workingDir: package.directory,
);
if (exitCode != 0) {
logWarning('Failed to clean ${package.displayName} after build.');
}

return errors.isEmpty
? PackageResult.success()
: PackageResult.fail(errors);
}
}
Loading

0 comments on commit ab57fb8

Please sign in to comment.