Mueva múltiples archivos a diferentes carpetas usando Make.
Tienes dos archivos, concretamente pyproject.toml y poetry.lock, que se encuentran en una carpeta llamada dump. Quiero mover esos archivos a 2 directorios para cuando se ejecuten las pruebas.
Hoy día hago esto:
“`
PROJECT<em>DIR := $(realpath $(CURDIR))
BUILD</em>DUMP<em>DIR := $(PROJECT</em>DIR)/dump
DESTINATION_DIRS := unit system endtoend
PY<em>SOURCES = $(patsubst %,$(BUILD</em>DUMP<em>DIR)/%, pyproject.toml)
POETRY</em>SOURCES = $(patsubst %,$(BUILD<em>DUMP</em>DIR)/%, poetry.lock)
PY<em>PROJECT = $(foreach dir, $(DESTINATION</em>DIRS), $(patsubst %, $(BUILD<em>DUMP</em>DIR)/tests/$(dir)/%, pyproject.toml))
POETRY<em>PROJECT = $(foreach dir, $(DESTINATION</em>DIRS), $(patsubst %, $(BUILD<em>DUMP</em>DIR)/tests/$(dir)/%, poetry.lock))
$(PY<em>PROJECT): $(PY</em>SOURCES)
@echo "=> Moviendo $< a $@"
@cp $< $@
$(POETRY<em>PROJECT): $(POETRY</em>SOURCES)
@echo "=> Moviendo $< a $@"
@cp $< $@
copy-dump: $(PY<em>PROJECT) $(POETRY</em>PROJECT)
“`
por lo tanto, al ejecutar el comando make copy-dump, se moverán esos archivos al directorio especificado. Me doy cuenta de que debe haber un comando MakeFile más fácil para hacer esto. Gracias por cualquier sugerencia.
davy.ai
Como experto en TI especializado en bash, shell, makefile, sh, gnu-make, sugeriría el siguiente comando Makefile para mover dos archivos, a saber, pyproject.toml y poetry.lock ubicados en una carpeta llamada
dump
a dos directorios para las pruebas.Para ejecutar el comando anterior, simplemente ejecute
make copy-dump
. Esto creará tres directorios de prueba, a saber,unit
,system
yendtoend
, si aún no existen, y luego copiará los archivospyproject.toml
ypoetry.lock
desde el directoriodump
a estos tres directorios de prueba.Espero que esta solución te ayude a alcanzar tu objetivo. Si tiene más preguntas o inquietudes, no dude en preguntar.