import 'dart:async'; import 'dart:convert'; import 'dart:io'; Map?> envArguments(List arguments) { var dic = ?>{}; var list = []; var length = arguments.length; for (var i = 0; i < length; ++i) { var value = arguments[i]; var key = _getKey(value); if (key != null) { var index = i + 1; list.clear(); while (index < length) { var arg = arguments[index]; if (_getKey(arg) == null) { list.add(arg); index++; } else { i = index - 1; break; } } List? arr = List.from(list); if (arr.isEmpty) arr = null; dic[key] = arr; } } return dic; } String? _getKey(String value) { String? key; if (value.indexOf('-') == 0) { key = value.substring(1, value.length); } return key; } Map? getMapFromJson(String jsonStr) { Map? map; if (jsonStr.length > 5) { JsonCodec codec = JsonCodec(); try { map = codec.decode(jsonStr); } catch (e) { print("Error: $e"); } } return map; } Future getIPAddress(String domain) async { var c = Completer(); var ipAddress; var regEx = RegExp(r'(://)([a-zA-Z0-9-.]+)(/|:)'); var match = regEx.firstMatch(domain); if (match != null && match.groupCount > 2) { domain = match.group(2)!; var list = await InternetAddress.lookup(domain); for (var address in list) { ipAddress = address.address; break; } } c.complete(ipAddress); return c.future; }