@@ -15,25 +15,39 @@ def update():
1515
1616 docker_compose .assert_installed (install_path )
1717
18- _ , _ , upgrade_version = docker_compose .check_download_version ()
19- existing_version = docker_compose .check_existing_version (install_path )
20- if version .parse (existing_version ) >= version .parse (upgrade_version ):
21- if not args .downgrade :
18+ if args .version == "latest" :
19+ _ , _ , requested_version_str = docker_compose .check_download_version ()
20+ else :
21+ requested_version_str = args .version
22+
23+ existing_version_str = docker_compose .check_existing_version (install_path )
24+
25+ existing_version = version .parse (existing_version_str )
26+ requested_version = version .parse (requested_version_str )
27+
28+ if not args .force :
29+ if existing_version == requested_version :
2230 print_utils .fail_translate (
23- "update.version-failing" ,
24- existing_version = existing_version ,
25- upgrade_version = upgrade_version ,
31+ "update.version-already-installed" ,
32+ existing_version = existing_version_str ,
33+ requested_version = requested_version_str ,
34+ )
35+ elif existing_version > requested_version :
36+ print_utils .fail_translate (
37+ "update.downgrade-not-allowed" ,
38+ existing_version = existing_version_str ,
39+ requested_version = requested_version_str ,
2640 )
2741
2842 print_utils .translate (
2943 "update.upgrade-version" ,
30- existing_version = existing_version ,
31- upgrade_version = upgrade_version ,
44+ existing_version = existing_version_str ,
45+ requested_version = requested_version_str ,
3246 )
3347
3448 print_utils .translate ("general.downloading-docker-compose" )
3549 docker_compose_path = install_path / "docker-compose.yml"
36- docker_compose .download (docker_compose_path , version = args . version )
50+ docker_compose .download (docker_compose_path , version = requested_version_str )
3751
3852 docker_compose .run (install_path , ["pull" ])
3953
@@ -72,9 +86,7 @@ def _parse_args():
7286 )
7387
7488 parser .add_argument (
75- "--downgrade" ,
76- action = "store_true" ,
77- help = i18n .t ("update.downgrade-help" ),
89+ "--force" , action = "store_true" , help = i18n .t ("update.force-help" ),
7890 )
7991
8092 return subcommand_parse_args (parser )
0 commit comments