@@ -1,19 +1,16 @@
import ' package:mason_logger/mason_logger.dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/generate_apt_fast_config_file .dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/get_mirro_list .dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/network_te st.dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/test_mirro_speed .dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/ubuntu _sources_list_template.dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/write_mirror_into _file.dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/yoyo_sources_list_template .dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/Ubuntu/ubuntu_get_mirro_list .dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/Ubuntu/ubuntu_sources_list_template .dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/Yoyo/yoyo_get_mirro_li st.dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/Yoyo/yoyo_is_exist .dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/Yoyo/yoyo _sources_list_template.dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/utils/generate_apt_fast_config _file.dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/utils/network_test .dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/utils/test_mirro_speed.dart ' ;
import ' package:yoyo_get_fast_mirror/src/commands/modules/getfastmirro/utils/write_mirror_into_file.dart ' ;
final Map < String , dynamic > status = { } ;
final Logger _logger = Logger ( ) ;
const List < String > ubuntuMirrorList = [
' https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ ' ,
' https://mirrors.aliyun.com/ubuntu/ ' ,
' https://repo.huaweicloud.com/ubuntu/ '
] ;
final outputYoyo = lightGreen . wrap ( ' Yoyo Mirrors: ' ) ;
final outputUbuntu = lightGreen . wrap ( ' Ubuntu Mirrors: ' ) ;
@@ -25,11 +22,19 @@ Future<Map<String, dynamic>> getFastMirror({bool onlyTest = false}) async {
status [ ' msg ' ] = ' NetWork Error ' ;
return status ;
}
//获取Yoyo镜像地址
final yoYoMirrorList = await g etMirrorList( ) ;
_logger . info ( " \n $ outputYoyo \n ${ yoYoMirrorList . join ( ' \n ' ) } \n " ) ;
//测试Yoyo镜像并获取时间和排序后的Map
final sortedUrlListAndTimeYoyo = await testMirroSpeed ( yoYoMirrorList ) ;
// 如果 yoyo-os.list 存在, 获取Yoyo镜像地址
final yoYoMirrorList = yoyoIsExist ( ) ? await yoyoG etMirrorList( ) : [ ' none ' ] ;
if ( yoyoIsExist ( ) ) {
_logger . info ( " \n $ outputYoyo \n ${ yoYoMirrorList . join ( ' \n ' ) } \n " ) ;
}
// 如果 yoyo-os.list 存在, 测试Yoyo镜像并获取时间和排序后的Map
final sortedUrlListAndTimeYoyo = yoyoIsExist ( )
? await testMirroSpeed ( yoYoMirrorList )
: [
{ ' url ' : ' ' , ' time ' : ' none ' }
] ;
// 获取Ubuntua镜像地址
final ubuntuMirrorList = ubuntuGetMirrorList ( ) ;
//测试Ubuntu镜像并获取时间和排序后的Map
_logger . info ( " \n $ outputUbuntu \n ${ ubuntuMirrorList . join ( ' \n ' ) } \n " ) ;
final sortedUrlListAndTimeUbuntu = await testMirroSpeed ( ubuntuMirrorList ) ;
@@ -37,7 +42,9 @@ Future<Map<String, dynamic>> getFastMirror({bool onlyTest = false}) async {
if ( ! onlyTest ) {
try {
generateAptFastConfigFile (
sortedUrlListAndTimeYoyo , sortedUrlListAndTimeUbuntu , ) ;
sortedUrlListAndTimeYoyo ,
sortedUrlListAndTimeUbuntu ,
) ;
} catch ( e ) {
status [ ' success ' ] = false ;
status [ ' msg ' ] = ' Generate Config File Error ' ;
@@ -46,14 +53,16 @@ Future<Map<String, dynamic>> getFastMirror({bool onlyTest = false}) async {
status [ ' success ' ] = true ;
}
//写入镜像源文件
//Yoyo
final fastestYoyoMirror =
sortedUrlListAndTimeYoyo . first . entries . first . value ;
final yoyoSourcesListFile = yoyoSourcesListTemplate ( fastestYoyoMirror ) ;
writeMirrorIntoFile (
yoyoSourcesList File,
' /etc/apt/s ources.l ist.d/yoyo-os.list ' ,
) ;
//如果 yoyo-os.list 存在, Yoyo
if ( yoyoIsExist ( ) ) {
final fastestYoyoMirror =
sortedUrlListAndTimeYoyo . first . entries . first . value ;
final yoyoSourcesListFile = yoyoSourcesListTemplate ( fastestYoyoMirror ) ;
writeMirrorInto File(
yoyoS ourcesL istFile ,
' /etc/apt/sources.list.d/yoyo-os.list ' ,
) ;
}
//Ubuntu
final fastestUbuntuMirror =
sortedUrlListAndTimeUbuntu . first . entries . first . value ;