From f3695139f3346de5f99707d909da3cb26744a788 Mon Sep 17 00:00:00 2001 From: Alexander Hayden Date: Sat, 2 Feb 2019 18:03:31 -0500 Subject: Add version stuff --- downloads.txt | 44 -------------------------------------------- update.py | 37 +++++++++++++++++++++++++++---------- version.txt | 45 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 54 deletions(-) delete mode 100644 downloads.txt create mode 100644 version.txt diff --git a/downloads.txt b/downloads.txt deleted file mode 100644 index 7695dac..0000000 --- a/downloads.txt +++ /dev/null @@ -1,44 +0,0 @@ -# Format: -thaumcraft.jar fe0899048f1796df04e9727bbf1898df30492a00 https://media.forgecdn.net/files/2629/23/Thaumcraft-1.12.2-6.1.BETA26.jar -baubles.jar cb13fcfb18a9cb0cbd825fd5fe8d813c77368549 https://media.forgecdn.net/files/2518/667/Baubles-1.12-1.5.2.jar -opencomputers.jar 70feadd549255477810dff7145cade9d507b2dec https://media.forgecdn.net/files/2638/675/OpenComputers-MC1.12.2-1.7.3.146.jar -twilightforest.jar 418e55d39800696341d888dd9f407daee3748276 https://media.forgecdn.net/files/2618/264/twilightforest-1.12.2-3.8.689-universal.jar -connectedtextures.jar 03be3e20dacf6b52abcee09436b2d06c06f2add0 https://media.forgecdn.net/files/2642/375/CTM-MC1.12.2-0.3.3.22.jar -traverse.jar b16aaff09a6e77ba193e42f88f5d5bb8a85e063a https://media.forgecdn.net/files/2613/657/Traverse-1.12.2-1.6.0-69.jar -actuallyadditions.jar e848d1a34c4bec3982a7d220bc5e913b39695577 https://media.forgecdn.net/files/2646/432/ActuallyAdditions-1.12.2-r144.jar -advancedrocketry.jar 0300a2fe13559c16ff4eca252b124efeb630e5c2 https://media.forgecdn.net/files/2666/136/AdvancedRocketry-1.12.2-1.5.0-127-universal.jar -ae2.jar e5b66725610e84b35faac0514e49f9ee4b5beeb9 https://media.forgecdn.net/files/2652/453/appliedenergistics2-rv6-stable-6.jar -ae2stuff.jar 8edee35416790dca35f39911c3b0aaf4d6609a73 https://media.forgecdn.net/files/2491/32/ae2stuff-0.7.0.4-mc1.12.2.jar -ae2wtl.jar d2b5d9b62f75d2d39d2633d90dc34b77f6ebc575 https://media.forgecdn.net/files/2653/753/AE2WTLib-1.12.2-1.0.6.jar -applecore.jar ce90bcae2b4e5f472b5c9abb53fdbcb21f57f963 https://media.forgecdn.net/files/2605/923/AppleCore-mc1.12.2-3.1.4.jar -appleskin.jar 23162a97cab0adb4be2fc6d3937c613929d1d5c7 https://media.forgecdn.net/files/2496/585/AppleSkin-mc1.12-1.0.9.jar -bdlib.jar 96d4142448fe2fd1245caa4dcfde3cf73a00132d https://media.forgecdn.net/files/2518/31/bdlib-1.14.3.12-mc1.12.2.jar -betterbuilderwands.jar b90b6fdb6efd15cb376303da90a6632534e642ff https://media.forgecdn.net/files/2443/194/BetterBuildersWands-1.12-0.11.1.245%2B69d0d70.jar -chisel.jar 1dda45074e17128451b3c8f66172bfaddf84f443 https://media.forgecdn.net/files/2619/468/Chisel-MC1.12.2-0.2.1.35.jar -libvulpes.jar 0455c735b99f956cd1c7e6d8657e6db46944d4ea https://media.forgecdn.net/files/2667/509/LibVulpes-1.12.2-0.4.0-51-universal.jar -p455w0rdlib.jar 3e0327dd61dc3afe4e644d4ffbdb2cce79ae64f9 https://media.forgecdn.net/files/2651/697/p455w0rdslib-1.12.2-2.0.36.jar -mysticallib.jar ddcb690b39e4d7af4e347caeae12d60d794ee088 https://media.forgecdn.net/files/2633/662/mysticallib-1.12.2-1.0.0.jar -immersiveengineering.jar 7f3c3691f690d05e7d1d41df20e63b773f4af03e https://media.forgecdn.net/files/2652/289/ImmersiveEngineering-0.12-88.jar -pamharvestcraft.jar 51703c410819bbad8e3a2888736a96e61eda64ff https://media.forgecdn.net/files/2650/315/Pam%27s+HarvestCraft+1.12.2zb.jar -deepresonance.jar e32fe98d4717fa9d8c1600f536867c6ecc7c2fa7 https://media.forgecdn.net/files/2660/570/deepresonance-1.12-1.7.5.jar -jei.jar 05ca370d265e94ef5986fe13462d1c3504254869 https://media.forgecdn.net/files/2640/458/jei_1.12.2-4.13.1.225.jar -waystones.jar 165afce33cc88a3807b68683ffff280fb3a50b8e https://media.forgecdn.net/files/2624/701/Waystones_1.12.2-4.0.67.jar -eleccore.jar 22dc926da7aa010ebb9a272ff6f9291e99de2851 https://media.forgecdn.net/files/2510/914/ElecCore-1.12.2-1.8.434.jar -mcjtylib.jar 31518995d8f0ca33bb6f4592ec1856fe75c6f0b8 https://media.forgecdn.net/files/2660/396/mcjtylib-1.12-3.1.1.jar -dynamictrees.jar 861853bb834b72542ae6a10faf20ce9d6bf62316 https://media.forgecdn.net/files/2658/681/DynamicTrees-1.12.2-0.9.4.jar -natura.jar 21cd6a7a981362ad9dc0cc972e94fe7115e49ff1 https://media.forgecdn.net/files/2658/980/natura-1.12.2-4.3.2.66.jar -tconstruct.jar 6e170614d5459f5d40571f069e18cd4afedeb8e1 https://media.forgecdn.net/files/2662/253/TConstruct-1.12.2-2.12.0.115.jar -mantle.jar bb23a99220319ebd1e6452e7a7e973aca6b286b3 https://media.forgecdn.net/files/2630/843/Mantle-1.12-1.3.3.39.jar -treecapitator.jar 45b4d5b191dc3e6ac57b2fe59538c8d71eb8bf50 https://media.forgecdn.net/files/2443/661/Treecapitator-1.12-at_0.9a.jar -ironchests.jar 5b40d393fb4bd744701a7ee3e958d3fa4a33ce93 https://media.forgecdn.net/files/2662/915/ironchest-1.12.2-7.0.56.840.jar -ironbackpacks.jar 50758105dabe8f0d4c6e311e14ad2c1f5673d2cd https://media.forgecdn.net/files/2564/573/IronBackpacks-1.12.2-3.0.8-12.jar -hwyla.jar 7280d5c0dab42436549bcefc63ff64a1049e5501 https://media.forgecdn.net/files/2568/751/Hwyla-1.8.26-B41_1.12.2.jar -dynamictrees-thaum-compat.jar 806cc392ba48b866291d6971f48b2172e96124fa https://media.forgecdn.net/files/2650/353/DynamicTreesTC-1.12.2-1.4.1e.jar -dynamictrees-pams-compat.jar 2e429e9705cb49afb72e2650001d003fd755ce42 https://media.forgecdn.net/files/2656/685/DynamicTreesPHC-1.12.2-1.4.2.jar -enderstorage.jar 4b44e4b5d4aa7887e2f0969acc9cf7b83c8c81f5 https://media.forgecdn.net/files/2594/243/EnderStorage-1.12.2-2.4.5.135-universal.jar -chickenchunks.jar 22646ea2acdad735b5e82d8b80e4e40ec27aa62b https://media.forgecdn.net/files/2594/241/ChickenChunks-1.12.2-2.4.1.73-universal.jar -morpheus.jar c948341a1b2243d4f8081c4db2cd727c2c4a7ed0 https://media.forgecdn.net/files/2664/449/Morpheus-1.12.2-3.5.106.jar -codechickenlib.jar 1ead040eeee13c474d448f976363778e2918a7d0 https://media.forgecdn.net/files/2618/630/CodeChickenLib-1.12.2-3.2.2.353-universal.jar -extra-utilities.jar 97dc3ffecc5cb15135b371b176081bd5579f9121 https://media.forgecdn.net/files/2632/255/extrautils2-1.12-1.9.8.jar -openblocks.jar 37b11b0726d9ed5d93acb7dfea1b68fff5d3dfe0 https://media.forgecdn.net/files/2620/52/OpenBlocks-1.12.2-1.8.jar -openmodslib.jar cf3e1f2af2a63af6907b10d12c6fdb9a818403f4 https://media.forgecdn.net/files/2623/7/OpenModsLib-1.12.2-0.12.1.jar diff --git a/update.py b/update.py index b2d1039..2622c8b 100755 --- a/update.py +++ b/update.py @@ -13,9 +13,9 @@ parser = argparse.ArgumentParser( formatter_class=argparse.RawDescriptionHelpFormatter, epilog='''\ Available commands: - install : Downloads mods listed in downloads.txt and populates the mods folder specified in pack-location.txt - apply_updates : Using the urls in mods.txt, repopulates downloads.txt to reflect the most recent mod versions - check_updates : Compares downloads.txt and mods.txt to see if any mods can be updated + install : Downloads mods listed in version.txt and populates the mods folder specified in pack-location.txt + apply_updates : Using the urls in mods.txt, repopulates version.txt to reflect the most recent mod versions + check_updates : Compares version.txt and mods.txt to see if any mods can be updated ''') parser.add_argument('command', @@ -28,12 +28,15 @@ parser.add_argument('filename', help="Optional filename to specify latest mods (default: mods.txt)") parser.add_argument('--version-file', type=str, - default="downloads.txt", - help="Optional custom version file to download mods from (default: downloads.txt)") + default="version.txt", + help="Optional custom version file to download mods from (default: version.txt)") parser.add_argument('--pack-location', type=str, help="Optional custom modpack folder location (default: read from pack-location.txt)") +## loaded from version.txt +VERSION = 0 + def read_file(fil): strings = [] with open(fil) as f: @@ -43,11 +46,13 @@ def read_file(fil): # run strip on each element string = tuple(map(lambda x: x.strip(), string)) strings.append(string) + return strings # Apply updates to the actual mod pack def install(args): - print("Updating pack...") + print("Updating pack with version " + str(VERSION) + "...") + print() # (fname, checksum, url) mods = read_file(args.version_file) names = [mod[0] for mod in mods] @@ -78,11 +83,12 @@ def install(args): # Using the latest urls, update downloads.txt to match and have the correct sha1 def apply_updates(args): - print("Populating URL File...") + print("Populating version File...") mods = read_file(args.filename) print("Getting new versions of all mods...") with open(args.version_file, 'w') as f: f.write('# Format: \n') + f.write("#VERSION " + str(VERSION + 1) + "\n") for mod in mods: print("Fetching {mod[0]}...".format(mod=mod)) resp = requests.get(mod[1]) @@ -91,12 +97,13 @@ def apply_updates(args): print() print("Done!") print("Updates applied to {args.version_file}".format(args=args)) + print("New pack version is " + str(VERSION + 1)) print("[!] No mods were installed. To update your mods folder, run 'update.py install'") # Find if any updates are available def check_updates(args): - print("Checking for updates to mods...") + print("Checking for updates to version " + str(VERSION) + "...") latest = read_file(args.filename) old = read_file(args.version_file) old_urls = [mod[2] for mod in old] @@ -126,7 +133,11 @@ if __name__ == "__main__": # initialize from config with open("pack-location.txt", "r") as f: args.pack_location = f.read().strip() - + + if not os.path.exists(args.version_file): + print("Error: version file\"" + args.version_file + "\" does not exist.") + parser.print_help() + sys.exit(1) if not os.path.exists(args.pack_location): print("Error: mod folder \"" + args.pack_location + "\" does not exist.") parser.print_help() @@ -140,6 +151,12 @@ if __name__ == "__main__": print("Error: command \"" + args.command + "\" does not exist") parser.print_help() sys.exit(1) - + + # fetch version + with open(args.version_file) as f: + for line in f: + if line.strip().split()[0] == "#VERSION": + VERSION = int(line.strip().split()[1]) + break # run the command COMMAND_MAP[args.command](args) diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..7bb3137 --- /dev/null +++ b/version.txt @@ -0,0 +1,45 @@ +# Format: +#VERSION 0 +thaumcraft.jar fe0899048f1796df04e9727bbf1898df30492a00 https://media.forgecdn.net/files/2629/23/Thaumcraft-1.12.2-6.1.BETA26.jar +baubles.jar cb13fcfb18a9cb0cbd825fd5fe8d813c77368549 https://media.forgecdn.net/files/2518/667/Baubles-1.12-1.5.2.jar +opencomputers.jar 70feadd549255477810dff7145cade9d507b2dec https://media.forgecdn.net/files/2638/675/OpenComputers-MC1.12.2-1.7.3.146.jar +twilightforest.jar 418e55d39800696341d888dd9f407daee3748276 https://media.forgecdn.net/files/2618/264/twilightforest-1.12.2-3.8.689-universal.jar +connectedtextures.jar 03be3e20dacf6b52abcee09436b2d06c06f2add0 https://media.forgecdn.net/files/2642/375/CTM-MC1.12.2-0.3.3.22.jar +traverse.jar b16aaff09a6e77ba193e42f88f5d5bb8a85e063a https://media.forgecdn.net/files/2613/657/Traverse-1.12.2-1.6.0-69.jar +actuallyadditions.jar e848d1a34c4bec3982a7d220bc5e913b39695577 https://media.forgecdn.net/files/2646/432/ActuallyAdditions-1.12.2-r144.jar +advancedrocketry.jar 0300a2fe13559c16ff4eca252b124efeb630e5c2 https://media.forgecdn.net/files/2666/136/AdvancedRocketry-1.12.2-1.5.0-127-universal.jar +ae2.jar e5b66725610e84b35faac0514e49f9ee4b5beeb9 https://media.forgecdn.net/files/2652/453/appliedenergistics2-rv6-stable-6.jar +ae2stuff.jar 8edee35416790dca35f39911c3b0aaf4d6609a73 https://media.forgecdn.net/files/2491/32/ae2stuff-0.7.0.4-mc1.12.2.jar +ae2wtl.jar d2b5d9b62f75d2d39d2633d90dc34b77f6ebc575 https://media.forgecdn.net/files/2653/753/AE2WTLib-1.12.2-1.0.6.jar +applecore.jar ce90bcae2b4e5f472b5c9abb53fdbcb21f57f963 https://media.forgecdn.net/files/2605/923/AppleCore-mc1.12.2-3.1.4.jar +appleskin.jar 23162a97cab0adb4be2fc6d3937c613929d1d5c7 https://media.forgecdn.net/files/2496/585/AppleSkin-mc1.12-1.0.9.jar +bdlib.jar 96d4142448fe2fd1245caa4dcfde3cf73a00132d https://media.forgecdn.net/files/2518/31/bdlib-1.14.3.12-mc1.12.2.jar +betterbuilderwands.jar b90b6fdb6efd15cb376303da90a6632534e642ff https://media.forgecdn.net/files/2443/194/BetterBuildersWands-1.12-0.11.1.245%2B69d0d70.jar +chisel.jar 1dda45074e17128451b3c8f66172bfaddf84f443 https://media.forgecdn.net/files/2619/468/Chisel-MC1.12.2-0.2.1.35.jar +libvulpes.jar 0455c735b99f956cd1c7e6d8657e6db46944d4ea https://media.forgecdn.net/files/2667/509/LibVulpes-1.12.2-0.4.0-51-universal.jar +p455w0rdlib.jar 3e0327dd61dc3afe4e644d4ffbdb2cce79ae64f9 https://media.forgecdn.net/files/2651/697/p455w0rdslib-1.12.2-2.0.36.jar +mysticallib.jar ddcb690b39e4d7af4e347caeae12d60d794ee088 https://media.forgecdn.net/files/2633/662/mysticallib-1.12.2-1.0.0.jar +immersiveengineering.jar 7f3c3691f690d05e7d1d41df20e63b773f4af03e https://media.forgecdn.net/files/2652/289/ImmersiveEngineering-0.12-88.jar +pamharvestcraft.jar 51703c410819bbad8e3a2888736a96e61eda64ff https://media.forgecdn.net/files/2650/315/Pam%27s+HarvestCraft+1.12.2zb.jar +deepresonance.jar e32fe98d4717fa9d8c1600f536867c6ecc7c2fa7 https://media.forgecdn.net/files/2660/570/deepresonance-1.12-1.7.5.jar +jei.jar 05ca370d265e94ef5986fe13462d1c3504254869 https://media.forgecdn.net/files/2640/458/jei_1.12.2-4.13.1.225.jar +waystones.jar 165afce33cc88a3807b68683ffff280fb3a50b8e https://media.forgecdn.net/files/2624/701/Waystones_1.12.2-4.0.67.jar +eleccore.jar 22dc926da7aa010ebb9a272ff6f9291e99de2851 https://media.forgecdn.net/files/2510/914/ElecCore-1.12.2-1.8.434.jar +mcjtylib.jar 31518995d8f0ca33bb6f4592ec1856fe75c6f0b8 https://media.forgecdn.net/files/2660/396/mcjtylib-1.12-3.1.1.jar +dynamictrees.jar 861853bb834b72542ae6a10faf20ce9d6bf62316 https://media.forgecdn.net/files/2658/681/DynamicTrees-1.12.2-0.9.4.jar +natura.jar 21cd6a7a981362ad9dc0cc972e94fe7115e49ff1 https://media.forgecdn.net/files/2658/980/natura-1.12.2-4.3.2.66.jar +tconstruct.jar 6e170614d5459f5d40571f069e18cd4afedeb8e1 https://media.forgecdn.net/files/2662/253/TConstruct-1.12.2-2.12.0.115.jar +mantle.jar bb23a99220319ebd1e6452e7a7e973aca6b286b3 https://media.forgecdn.net/files/2630/843/Mantle-1.12-1.3.3.39.jar +treecapitator.jar 45b4d5b191dc3e6ac57b2fe59538c8d71eb8bf50 https://media.forgecdn.net/files/2443/661/Treecapitator-1.12-at_0.9a.jar +ironchests.jar 5b40d393fb4bd744701a7ee3e958d3fa4a33ce93 https://media.forgecdn.net/files/2662/915/ironchest-1.12.2-7.0.56.840.jar +ironbackpacks.jar 50758105dabe8f0d4c6e311e14ad2c1f5673d2cd https://media.forgecdn.net/files/2564/573/IronBackpacks-1.12.2-3.0.8-12.jar +hwyla.jar 7280d5c0dab42436549bcefc63ff64a1049e5501 https://media.forgecdn.net/files/2568/751/Hwyla-1.8.26-B41_1.12.2.jar +dynamictrees-thaum-compat.jar 806cc392ba48b866291d6971f48b2172e96124fa https://media.forgecdn.net/files/2650/353/DynamicTreesTC-1.12.2-1.4.1e.jar +dynamictrees-pams-compat.jar 2e429e9705cb49afb72e2650001d003fd755ce42 https://media.forgecdn.net/files/2656/685/DynamicTreesPHC-1.12.2-1.4.2.jar +enderstorage.jar 4b44e4b5d4aa7887e2f0969acc9cf7b83c8c81f5 https://media.forgecdn.net/files/2594/243/EnderStorage-1.12.2-2.4.5.135-universal.jar +chickenchunks.jar 22646ea2acdad735b5e82d8b80e4e40ec27aa62b https://media.forgecdn.net/files/2594/241/ChickenChunks-1.12.2-2.4.1.73-universal.jar +morpheus.jar c948341a1b2243d4f8081c4db2cd727c2c4a7ed0 https://media.forgecdn.net/files/2664/449/Morpheus-1.12.2-3.5.106.jar +codechickenlib.jar 1ead040eeee13c474d448f976363778e2918a7d0 https://media.forgecdn.net/files/2618/630/CodeChickenLib-1.12.2-3.2.2.353-universal.jar +extra-utilities.jar 97dc3ffecc5cb15135b371b176081bd5579f9121 https://media.forgecdn.net/files/2632/255/extrautils2-1.12-1.9.8.jar +openblocks.jar 37b11b0726d9ed5d93acb7dfea1b68fff5d3dfe0 https://media.forgecdn.net/files/2620/52/OpenBlocks-1.12.2-1.8.jar +openmodslib.jar cf3e1f2af2a63af6907b10d12c6fdb9a818403f4 https://media.forgecdn.net/files/2623/7/OpenModsLib-1.12.2-0.12.1.jar -- cgit v1.2.3