mirror of https://github.com/kianby/dotfiles
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
#!/usr/bin/python3
|
|
# -*- coding: UTF-8 -*-
|
|
|
|
import os
|
|
import argparse
|
|
from shutil import copy2
|
|
|
|
def get_file_weight(filename):
|
|
if filename.endswith(".ear"):
|
|
return 4
|
|
elif filename.endswith(".war"):
|
|
return 3
|
|
elif filename.endswith(".zip"):
|
|
return 2
|
|
elif filename.endswith(".jar"):
|
|
return 1
|
|
else:
|
|
return 0
|
|
|
|
|
|
def find_targets(path):
|
|
dest_path = path + "/target"
|
|
targets = []
|
|
if os.path.isdir(dest_path):
|
|
with os.scandir(dest_path) as it:
|
|
for entry in it:
|
|
weight = get_file_weight(entry.name)
|
|
if entry.is_file() and weight:
|
|
target = (entry.path, weight)
|
|
targets.append(target)
|
|
return targets
|
|
|
|
|
|
def find_recursive_targets(path):
|
|
targets = []
|
|
with os.scandir(path) as it:
|
|
for entry in it:
|
|
if not entry.name.startswith(".") and entry.is_dir():
|
|
targets = targets + find_targets(entry.path)
|
|
targets = targets + find_targets(path)
|
|
return targets
|
|
|
|
|
|
def process(path, deploydir):
|
|
candidates = sorted(find_recursive_targets(path), key=lambda target: target[1], reverse=True)
|
|
if candidates:
|
|
filename, _ = candidates[0]
|
|
print("copie " + filename + ' vers ' + deploydir)
|
|
copy2(filename, deploydir)
|
|
else:
|
|
print("impossible de déterminer l'archive à copier")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("dir", help="deployment directory")
|
|
args = parser.parse_args()
|
|
process(".", args.dir)
|