mirror of
https://github.com/basicswap/basicswap.git
synced 2024-12-23 03:49:25 +00:00
127 lines
4 KiB
Python
Executable file
127 lines
4 KiB
Python
Executable file
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# Copyright (c) 2023 tecnovert
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
"""
|
|
Join docker compose fragments
|
|
"""
|
|
|
|
__version__ = "0.1"
|
|
|
|
import os
|
|
import argparse
|
|
|
|
|
|
def get_bkp_offset(filename, ext="yml"):
|
|
for i in range(1000):
|
|
if not os.path.exists(f"{filename}_bkp_{i}.{ext}"):
|
|
return i
|
|
raise ValueError(f"Unable to get backup filename for: {filename}.{ext}")
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description=__doc__)
|
|
parser.add_argument(
|
|
"-v",
|
|
"--version",
|
|
action="version",
|
|
version="%(prog)s {version}".format(version=__version__),
|
|
)
|
|
parser.add_argument(
|
|
"-c", "--coins", nargs="+", help="<Required> Select coins", required=True
|
|
)
|
|
parser.add_argument(
|
|
"--withscript",
|
|
dest="withscript",
|
|
help="Add container to run createoffers.py (default=false)",
|
|
required=False,
|
|
action="store_true",
|
|
)
|
|
args = parser.parse_args()
|
|
|
|
with_coins = [
|
|
"particl",
|
|
]
|
|
for coin_name in args.coins:
|
|
parsed_name = coin_name.lower()
|
|
if parsed_name not in with_coins:
|
|
with_coins.append(parsed_name)
|
|
|
|
print("Preparing docker compose files with coins:", ",".join(with_coins))
|
|
|
|
num_docker_compose = get_bkp_offset("docker-compose")
|
|
num_docker_compose_prepare = get_bkp_offset("docker-compose-prepare")
|
|
|
|
if os.path.exists("docker-compose.yml"):
|
|
os.rename("docker-compose.yml", f"docker-compose_bkp_{num_docker_compose}.yml")
|
|
if os.path.exists("docker-compose-prepare.yml"):
|
|
os.rename(
|
|
"docker-compose-prepare.yml",
|
|
f"docker-compose-prepare_bkp_{num_docker_compose_prepare}.yml",
|
|
)
|
|
|
|
fragments_dir = "compose-fragments"
|
|
with (
|
|
open("docker-compose.yml", "wb") as fp,
|
|
open("docker-compose-prepare.yml", "wb") as fpp,
|
|
):
|
|
with open(os.path.join(fragments_dir, "0_start.yml"), "rb") as fp_in:
|
|
for line in fp_in:
|
|
fp.write(line)
|
|
fpp.write(line)
|
|
|
|
for coin_name in with_coins:
|
|
if coin_name == "particl":
|
|
# Nothing to do
|
|
continue
|
|
if coin_name in ("monero", "wownero"):
|
|
with open(
|
|
os.path.join(fragments_dir, "1_{coin_name}-wallet.yml"), "rb"
|
|
) as fp_in:
|
|
for line in fp_in:
|
|
fp.write(line)
|
|
fpp.write(line)
|
|
with open(
|
|
os.path.join(fragments_dir, "8_{coin_name}-daemon.yml"), "rb"
|
|
) as fp_in:
|
|
for line in fp_in:
|
|
fp.write(line)
|
|
continue
|
|
if coin_name == "decred":
|
|
with open(
|
|
os.path.join(fragments_dir, "1_decred-wallet.yml"), "rb"
|
|
) as fp_in:
|
|
for line in fp_in:
|
|
fp.write(line)
|
|
fpp.write(line)
|
|
with open(
|
|
os.path.join(fragments_dir, "8_decred-daemon.yml"), "rb"
|
|
) as fp_in:
|
|
for line in fp_in:
|
|
fp.write(line)
|
|
continue
|
|
with open(os.path.join(fragments_dir, f"1_{coin_name}.yml"), "rb") as fp_in:
|
|
for line in fp_in:
|
|
fp.write(line)
|
|
fpp.write(line)
|
|
|
|
with open(os.path.join(fragments_dir, "8_swapclient.yml"), "rb") as fp_in:
|
|
for line in fp_in:
|
|
fp.write(line)
|
|
|
|
if args.withscript:
|
|
with open(os.path.join(fragments_dir, "8_script.yml"), "rb") as fp_in:
|
|
for line in fp_in:
|
|
fp.write(line)
|
|
|
|
with open(os.path.join(fragments_dir, "9_swapprepare.yml"), "rb") as fp_in:
|
|
for line in fp_in:
|
|
fpp.write(line)
|
|
print("Done.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|