mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-31 10:37:13 +02:00
Improve calculating of project hash
This commit is contained in:
@ -15,7 +15,7 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from hashlib import sha1
|
from hashlib import sha1
|
||||||
from os import getcwd, makedirs, walk
|
from os import getcwd, makedirs, walk
|
||||||
from os.path import basename, getmtime, isdir, isfile, join
|
from os.path import getmtime, isdir, isfile, join
|
||||||
from time import time
|
from time import time
|
||||||
|
|
||||||
import click
|
import click
|
||||||
@ -404,15 +404,14 @@ def check_project_envs(config, environments):
|
|||||||
|
|
||||||
|
|
||||||
def calculate_project_hash():
|
def calculate_project_hash():
|
||||||
|
check_suffixes = (".c", ".cc", ".cpp", ".h", ".hpp", ".s", ".S")
|
||||||
structure = [__version__]
|
structure = [__version__]
|
||||||
build_dir_name = basename(util.get_projectbuild_dir())
|
|
||||||
for d in (util.get_projectsrc_dir(), util.get_projectlib_dir()):
|
for d in (util.get_projectsrc_dir(), util.get_projectlib_dir()):
|
||||||
if not isdir(d):
|
if not isdir(d):
|
||||||
continue
|
continue
|
||||||
for root, _, files in walk(d):
|
for root, _, files in walk(d):
|
||||||
for f in files:
|
for f in files:
|
||||||
path = join(root, f)
|
path = join(root, f)
|
||||||
if not any(
|
if path.endswith(check_suffixes):
|
||||||
s in path for s in (".git", ".svn", build_dir_name)):
|
|
||||||
structure.append(path)
|
structure.append(path)
|
||||||
return sha1(",".join(sorted(structure))).hexdigest() if structure else ""
|
return sha1(",".join(sorted(structure))).hexdigest()
|
||||||
|
Reference in New Issue
Block a user