// 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 . import 'dart:io'; import 'package:mason/mason.dart'; void removeGitKeepFiles(String targetPath) { if (!FileSystemEntity.isDirectorySync(targetPath)) { throw ArgumentError('Target must be a directory', 'targetPath'); } Directory(targetPath) .listSync(recursive: true) .whereType() .forEach((file) { if (file.path.contains('.gitkeep')) { file.deleteSync(recursive: true); } }); } Future run(HookContext context) async { final workingDirectory = Directory.current.path; removeGitKeepFiles(workingDirectory); }