Skip to content

Commit 47367e2

Browse files
committed
win_registry: create manual command file and remove cli annotations
1 parent 33b3056 commit 47367e2

File tree

3 files changed

+108
-5
lines changed

3 files changed

+108
-5
lines changed
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
import 'dart:async';
2+
3+
import 'package:args/command_runner.dart';
4+
5+
import '../../core/services/win_registry_service.dart';
6+
import '../../utils.dart';
7+
8+
// CLI generated but for some reason using `part '.g.dart'` has issues
9+
10+
abstract class _WinRegistryServiceCommandBase extends Command<void> {
11+
_WinRegistryServiceCommandBase(WinRegistryService service)
12+
: _service = service;
13+
14+
final WinRegistryService _service;
15+
}
16+
17+
final class WinRegistryServiceCliCommand
18+
extends _WinRegistryServiceCommandBase {
19+
WinRegistryServiceCliCommand(super.service) {
20+
addSubcommand(_ActionHidePageCommand(_service));
21+
addSubcommand(_ActionUnhidePageCommand(_service));
22+
}
23+
24+
@override
25+
String get name {
26+
return 'registry';
27+
}
28+
29+
@override
30+
String get description {
31+
return 'Windows registry utilities';
32+
}
33+
34+
@override
35+
void run() {
36+
printUsage();
37+
}
38+
}
39+
40+
class _ActionHidePageCommand extends _WinRegistryServiceCommandBase {
41+
_ActionHidePageCommand(super.service) {
42+
argParser.addOption(
43+
'value',
44+
mandatory: true,
45+
help: 'The value (type: String)',
46+
);
47+
}
48+
49+
@override
50+
String get name {
51+
return 'hide-page';
52+
}
53+
54+
@override
55+
String get description {
56+
return 'Run hide-page action';
57+
}
58+
59+
@override
60+
Future<void> run() async {
61+
try {
62+
final valueStr = argResults!['value'] as String;
63+
final value = valueStr;
64+
await _service.hideSettingsPage(value);
65+
logger.i('hide-page completed for: $valueStr');
66+
} on Exception catch (e, st) {
67+
logger.e('Failed to run hide-page', error: e, stackTrace: st);
68+
throw UsageException(e.toString(), usage);
69+
}
70+
}
71+
}
72+
73+
class _ActionUnhidePageCommand extends _WinRegistryServiceCommandBase {
74+
_ActionUnhidePageCommand(super.service) {
75+
argParser.addOption(
76+
'value',
77+
mandatory: true,
78+
help: 'The value (type: String)',
79+
);
80+
}
81+
82+
@override
83+
String get name {
84+
return 'unhide-page';
85+
}
86+
87+
@override
88+
String get description {
89+
return 'Run unhide-page action';
90+
}
91+
92+
@override
93+
Future<void> run() async {
94+
try {
95+
final valueStr = argResults!['value'] as String;
96+
final value = valueStr;
97+
await _service.unhideSettingsPage(value);
98+
logger.i('unhide-page completed for: $valueStr');
99+
} on Exception catch (e, st) {
100+
logger.e('Failed to run unhide-page', error: e, stackTrace: st);
101+
throw UsageException(e.toString(), usage);
102+
}
103+
}
104+
}

src/lib/core/services/win_registry_service.dart

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,15 @@ import 'package:win32_registry/win32_registry.dart';
77
import '../cli_generator/annotations.dart';
88
import '../trusted_installer/trusted_installer_service.dart';
99

10-
part 'win_registry_service.g.dart';
11-
12-
@CliCommand(name: 'registry', description: 'Windows registry utilities')
10+
// @CliCommand(name: 'registry', description: 'Windows registry utilities')
1311
abstract class WinRegistryService {
1412
const WinRegistryService._private();
1513
static const tag = 'await WinRegistryService';
1614

17-
@CliAction(name: 'hide-page', run: 'hideSettingsPage')
15+
// @CliAction(name: 'hide-page', run: 'hideSettingsPage')
1816
Future<void> hideSettingsPage(String pageName);
1917

20-
@CliAction(name: 'unhide-page', run: 'unhideSettingsPage')
18+
// @CliAction(name: 'unhide-page', run: 'unhideSettingsPage')
2119
Future<void> unhideSettingsPage(String pageName);
2220

2321
static Future<void> initialize() async {

src/lib/main_cli.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'dart:io';
22

33
import 'package:args/command_runner.dart';
44

5+
import 'core/services/win_registry_command.dart';
56
import 'core/services/win_registry_service.dart';
67
import 'features/ms_store/ms_store_command.dart';
78
import 'features/tweaks/tweaks_command.dart';

0 commit comments

Comments
 (0)