inPath method
Check ~/bin or ~/.local/bin in PATH.
Return a tuple (exist, path).
Implementation
(bool, String) inPath() {
final currentPath = environ['PATH'] ?? '';
final pathDelimiter = isWindows ? ';' : ':';
final dirs = currentPath.split(pathDelimiter);
final binDir = Directory(p.join(homeDir, 'bin'));
final localBinDir = Directory(p.join(homeDir, '.local', 'bin'));
if (!binDir.existsSync()) binDir.createSync(recursive: true);
if (!localBinDir.existsSync()) localBinDir.createSync(recursive: true);
final binPath = binDir.path;
final localBinPath = localBinDir.path;
for (final dir in dirs) {
if (dir.isEmpty) continue; // Skip empty path entries
if (p.equals(dir, localBinPath)) return (true, localBinPath);
if (p.equals(dir, binPath)) return (true, binPath);
}
return (false, localBinPath);
}