Skip to content

Commit

Permalink
refactor: improve the Makefile
Browse files Browse the repository at this point in the history
  • Loading branch information
guesant committed Feb 3, 2022
1 parent c99db50 commit 52d9877
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 15 deletions.
10 changes: 5 additions & 5 deletions HACKING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,21 @@ cd ava-pro
We recommend the usage of Docker to develop the extension (~~due security reasons lol~~ [[1]](https://thehackernews.com/2021/10/popular-npm-package-hijacked-to-publish.html)).

```sh
make sh # start a new container and attaches a shell session
make dev # -> packages/webextension/dist/dev
make build # -> packages/webextension/dist/prod
```

```sh
make dev # -> packages/webextension/dist/dev
make build # -> packages/webextension/dist/prod
make sh # starts a shell session
```

```sh
make stop # stop the running container
make attach # attaches a shell into a running container (sh, dev or build)

```

```sh
make clear-cache # purge some cache stuffs
make clear # delete the dist files and the parcel cache
```

#### Development with the NodeJS from your machine
Expand Down
46 changes: 36 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,24 +1,50 @@
PROJECT_DATA=$(shell pwd)
DOCKER_CONTAINER_NAME=ava-pro-node
PROJECT_DATA_DIR=$(shell pwd)

DOCKER_CONTAINER_IMAGE=cl00e9ment/node.js-builder
DOCKER_CONTAINER_IMAGE_SHELL=sh

clear-cache:
find . -maxdepth 1 -type d -name .parcel-cache -exec rm -rf {} \+
rm -rf packages/webextension/dist
DOCKER_CONTAINER_NAME=$(shell basename $(PROJECT_DATA_DIR))-node

DOCKER_RUN_EXTRA_ARGS=
DOCKER_RUN_EXTRA_ARGS_DEV=-p 1234:1234
DOCKER_RUN_EXTRA_ARGS_BUILD=

define spawn =
docker run \
--rm \
--name $(DOCKER_CONTAINER_NAME) \
-u node \
-w /code \
-v $(PROJECT_DATA_DIR):/code \
$(1) \
-it $(DOCKER_CONTAINER_IMAGE) \
$(DOCKER_CONTAINER_IMAGE_SHELL) $(2)
endef

clear:
rm -rf ./.parcel-cache ./packages/webextension/dist

attach:
docker exec -it $(DOCKER_CONTAINER_NAME) $(DOCKER_CONTAINER_IMAGE_SHELL)
docker exec \
-it $(DOCKER_CONTAINER_NAME) \
$(DOCKER_CONTAINER_IMAGE_SHELL)

sh:
docker run --rm --name $(DOCKER_CONTAINER_NAME) -v $(PROJECT_DATA):/srv -w /srv -p 1234:1234 -u node -it $(DOCKER_CONTAINER_IMAGE) $(DOCKER_CONTAINER_IMAGE_SHELL)

if [ $(shell docker ps -q --filter "name=$(DOCKER_CONTAINER_NAME)" | wc -l) -gt 0 ] ; then \
clear -x; \
make attach ;\
else \
clear -x; \
$(call spawn,$(DOCKER_RUN_EXTRA_ARGS_DEV)) ;\
fi

dev:
docker run --rm --name $(DOCKER_CONTAINER_NAME) -v $(PROJECT_DATA):/srv -w /srv -p 1234:1234 -u node -it $(DOCKER_CONTAINER_IMAGE) $(DOCKER_CONTAINER_IMAGE_SHELL) -c "pnpm install && pnpm run dev"
$(call spawn,$(DOCKER_RUN_EXTRA_ARGS_DEV),-c "pnpm install && pnpm run dev")

build:
make clear-cache
docker run --rm --name $(DOCKER_CONTAINER_NAME) -v $(PROJECT_DATA):/srv -w /srv -u node -it $(DOCKER_CONTAINER_IMAGE) $(DOCKER_CONTAINER_IMAGE_SHELL) -c "pnpm install && pnpm run build"
make clear
$(call spawn,$(DOCKER_RUN_EXTRA_ARGS_BUILD),-c "pnpm install && pnpm run build")

stop:
docker stop $(DOCKER_CONTAINER_NAME)

0 comments on commit 52d9877

Please sign in to comment.