Skip to content
Snippets Groups Projects

Reforma uploadů

1 unresolved thread
Merged Martin Mareš requested to merge mj/upload into devel
1 unresolved thread
1 file
+ 20
0
Compare changes
  • Side-by-side
  • Inline
+ 20
0
@@ -9,6 +9,7 @@ import locale
@@ -9,6 +9,7 @@ import locale
import logging
import logging
import os
import os
import re
import re
 
import secrets
import subprocess
import subprocess
import sys
import sys
from typing import Any, Optional, NoReturn
from typing import Any, Optional, NoReturn
@@ -164,3 +165,22 @@ def get_round_by_code(code: RoundCode) -> Optional[db.Round]:
@@ -164,3 +165,22 @@ def get_round_by_code(code: RoundCode) -> Optional[db.Round]:
def data_dir(name: str) -> str:
def data_dir(name: str) -> str:
return os.path.join(config.DATA_DIR, name)
return os.path.join(config.DATA_DIR, name)
 
 
 
def link_to_dir(src: str, dest_dir: str, prefix: str = "", suffix: str = "") -> str:
 
"""Vytvoří hardlink na zdrojový soubor pod unikátním jménem v cílovém adresáři."""
 
 
while True:
 
dest = os.path.join(dest_dir, prefix + secrets.token_hex(8) + suffix)
 
try:
 
os.link(src, dest)
 
return dest
 
except FileExistsError:
 
logger.warning('Iteruji link_to_dir: %s už existuje', dest)
 
 
 
def unlink_if_needed(name: str):
 
try:
 
os.unlink(name)
 
except FileNotFoundError:
 
pass
Loading