Skip to content
Snippets Groups Projects
Verified Commit ec6230c9 authored by Volker Schukai's avatar Volker Schukai :alien:
Browse files

chore: reorganize structure

parent 56f174e7
No related branches found
No related tags found
No related merge requests found
Showing
with 97 additions and 712 deletions
use flake use flake
source_url "https://raw.githubusercontent.com/cachix/devenv/d1f7b48e35e6dee421cfd0f51481d17f77586997/direnvrc" "sha256-YBzqskFZxmNb3kYVoKD9ZixoPXJh1C9ZvTLGFRkauZ0=" source_url "https://raw.githubusercontent.com/cachix/devenv/d1f7b48e35e6dee421cfd0f51481d17f77586997/direnvrc" "sha256-YBzqskFZxmNb3kYVoKD9ZixoPXJh1C9ZvTLGFRkauZ0="
LD_LIBRARY_PATH=
use devenv use devenv
...@@ -527,3 +527,4 @@ devenv.local.nix ...@@ -527,3 +527,4 @@ devenv.local.nix
.pre-commit-config.yaml .pre-commit-config.yaml
.attach_pid* .attach_pid*
dist
image: docker-registry.schukai.com:443/nixos-ci-devenv:latest
services:
- docker:dind
variables:
# The repo name as used in
# https://github.com/nix-community/NUR/blob/master/repos.json
NIXOS_VERSION: "23.05"
NIXPKGS_ALLOW_UNFREE: "1"
NIXPKGS_ALLOW_INSECURE: "1"
DOCKER_DRIVER: overlay2
GIT_DEPTH: 10
stages:
- build
- deploy
before_script:
- nix shell nixpkgs#coreutils-full -c mkdir -p /certs/client/
- nix shell nixpkgs#coreutils-full -c ln -fs /etc/ssl/certs/ca-bundle.crt /certs/client/ca.pem
- echo > .env-gitlab-ci
- variables=("HOME=$HOME" "CI_COMMIT_REF_NAME=$CI_COMMIT_REF_NAME" "CI_REPOSITORY_URL=$CI_REPOSITORY_URL" "GITLAB_TOKEN=$GITLAB_TOKEN" "CI_JOB_TOKEN=$CI_JOB_TOKEN" "GITLAB_USER_EMAIL=$GITLAB_USER_EMAIL" "GITLAB_USER_NAME=\"$GITLAB_USER_NAME\"" "CI_REGISTRY_USER=$CI_REGISTRY_USER" "CI_PROJECT_ID=$CI_PROJECT_ID" "CI_PROJECT_DIR=$CI_PROJECT_DIR" "CI_API_V4_URL=$CI_API_V4_URL" "CI_PROJECT_NAME=$CI_PROJECT_NAME" "CI_COMMIT_SHORT_SHA=$CI_COMMIT_SHORT_SHA"); for var in "${variables[@]}"; do echo "$var" >> .env-gitlab-ci; done
- cat .env-gitlab-ci
after_script:
- if [ -f .env-gitlab-ci ]; then rm .env-gitlab-ci; fi
build:
stage: build
tags:
- nixos
script:
- devenv shell build-app
cache:
- key: nixos
paths:
- /nix/store
artifacts:
paths:
- dist
deploy:
stage: deploy
tags:
- nixos
script:
- devenv shell -c deploy-app
when: on_success
cache:
- key: nixos
paths:
- /nix/store
artifacts:
paths:
- dist
ada4113a83f16545fc633034da83fe21
#############################################################################################
#############################################################################################
##
## PROJECT-DEFINITIONS
##
#############################################################################################
#############################################################################################
COMPONENT_NAME := bob
#############################################################################################
#############################################################################################
##
## MORE GENERAL BLOCK WITH STANDARD DEFINITIONS
##
#############################################################################################
#############################################################################################
# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
PROJECT_ROOT:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)/
THIS_MAKEFILE:=$(PROJECT_ROOT)$(THIS_MAKEFILE_PATH)
# include project.mk only if it exists
-include $(PROJECT_ROOT)project.mk
# Define the location of Makefiles
MAKEFILE_IMPORT_PATH?=$(PROJECT_ROOT)makefiles/
# include project.mk only if it exists
-include $(MAKEFILE_IMPORT_PATH)project.mk
#############################################################################################
#############################################################################################
##
## INCLUSION OF VARIOUS STANDARD RULES
##
#############################################################################################
#############################################################################################
#include $(MAKEFILE_IMPORT_PATH)directories-standard.mk
#include $(MAKEFILE_IMPORT_PATH)directories-go-lib.mk
include $(MAKEFILE_IMPORT_PATH)directories-go-utilities.mk
#include $(MAKEFILE_IMPORT_PATH)directories-platform-part.mk
#include $(MAKEFILE_IMPORT_PATH)jsdoc.mk
include $(MAKEFILE_IMPORT_PATH)output.mk
include $(MAKEFILE_IMPORT_PATH)placeholder.mk
#include $(MAKEFILE_IMPORT_PATH)conan.mk
include $(MAKEFILE_IMPORT_PATH)go.mk
include $(MAKEFILE_IMPORT_PATH)changelog.mk
include $(MAKEFILE_IMPORT_PATH)s3.mk
#include $(MAKEFILE_IMPORT_PATH)readme-standard.mk
#include $(MAKEFILE_IMPORT_PATH)readme-webcomponents.mk
include $(MAKEFILE_IMPORT_PATH)readme-go-utilities.mk
#include $(MAKEFILE_IMPORT_PATH)readme-go-lib.mk
#include $(MAKEFILE_IMPORT_PATH)readme-platform-part.mk
include $(MAKEFILE_IMPORT_PATH)licenses.mk
include $(MAKEFILE_IMPORT_PATH)license-agpl3.mk
#include $(MAKEFILE_IMPORT_PATH)license-unlicensed.mk
#include $(MAKEFILE_IMPORT_PATH)license-all-rights-reserved.mk
#include $(MAKEFILE_IMPORT_PATH)jsdoc-json.mk
#include $(MAKEFILE_IMPORT_PATH)changelog.mk
#include $(MAKEFILE_IMPORT_PATH)docman.mk
#include $(MAKEFILE_IMPORT_PATH)reqman.mk
include $(MAKEFILE_IMPORT_PATH)git.mk
include $(MAKEFILE_IMPORT_PATH)gitignore.mk
include $(MAKEFILE_IMPORT_PATH)color.mk
include $(MAKEFILE_IMPORT_PATH)version.mk
#include $(MAKEFILE_IMPORT_PATH)docker.mk
#include $(MAKEFILE_IMPORT_PATH)node.mk
include $(MAKEFILE_IMPORT_PATH)terminal.mk
include $(MAKEFILE_IMPORT_PATH)target-go-fetch-licenses.mk
include $(MAKEFILE_IMPORT_PATH)target-add-licenses.mk
include $(MAKEFILE_IMPORT_PATH)target-deploy-tool.mk
#include $(MAKEFILE_IMPORT_PATH)target-jsdoc-build.mk
#include $(MAKEFILE_IMPORT_PATH)target-docman.mk
#include $(MAKEFILE_IMPORT_PATH)target-caddy.mk
#include $(MAKEFILE_IMPORT_PATH)target-conan.mk
#include $(MAKEFILE_IMPORT_PATH)target-phpunit.mk
#include $(MAKEFILE_IMPORT_PATH)target-jekyll.mk
include $(MAKEFILE_IMPORT_PATH)target-update-makefiles.mk
include $(MAKEFILE_IMPORT_PATH)target-help.mk
include $(MAKEFILE_IMPORT_PATH)target-go-build.mk
#include $(MAKEFILE_IMPORT_PATH)target-node-build.mk
#include $(MAKEFILE_IMPORT_PATH)target-node-test.mk
#include $(MAKEFILE_IMPORT_PATH)target-npm-publish.mk
#include $(MAKEFILE_IMPORT_PATH)target-npm.mk
include $(MAKEFILE_IMPORT_PATH)target-git.mk
#include $(MAKEFILE_IMPORT_PATH)target-init-standard.mk
#include $(MAKEFILE_IMPORT_PATH)target-init-webcomponent.mk
#nclude $(MAKEFILE_IMPORT_PATH)target-init-go-utilities.mk
#include $(MAKEFILE_IMPORT_PATH)target-init-platform-part.mk
include $(MAKEFILE_IMPORT_PATH)target-version.mk
include $(MAKEFILE_IMPORT_PATH)target-variable.mk
include $(MAKEFILE_IMPORT_PATH)terminal-check.mk
#############################################################################################
# include target-project.mk only if it exists
-include $(MAKEFILE_IMPORT_PATH)target-project.mk
version: '3'
tasks:
default:
aliases:
- help
cmds:
- task --list
build:
desc: Build the app
aliases:
- b
vars:
DEVENV_ROOT:
sh: echo "$DEVENV_ROOT"
cmds:
- devenv shell build-app
sources:
- source/**/*.go
- source/**/*.mod
- dist/**
#!/usr/bin/env bash #!/usr/bin/env bash
set -x set -x
##
## $(QUIET) $(DEVELOPMENT_SCRIPTS_PATH)/go-compile.sh $(SOURCE_PATH) $(BUILD_PATH) $(COMPONENT_SLUG) $(GO_RELEASE_PACKAGE_NAME) $(PROJECT_VERSION) $(PROJECT_BUILD_DATE)
SOURCE_PATH=$1 SOURCE_PATH=$1
BUILD_PATH=$2 BUILD_PATH=$2
......
File moved
#############################################################################################
#############################################################################################
##
## DEFINE BLACKBOX
##
#############################################################################################
#############################################################################################
EXECUTABLES = $(EXECUTABLES:-) gpgconf git
BLACKBOX_ROOT_DIR = $(PROJECT_ROOT)
BLACKBOX_BUILD_DIR = $(BLACKBOX_ROOT_DIR)build/blackbox
BLACKBOX_CONFIG_PATH = $(BLACKBOX_ROOT_DIR).blackbox
BLACKBOX_GPG_PATH = $(shell gpgconf --list-dirs homedir)
# The default image of blackbox
# only local image is supported
BLACKBOX_IMAGE_NAME= blackbox_local_temp_image
BLACKBOX_IMAGE_HASH = $(shell git log --format="%h" -n 1)
BLACKBOX_IMAGE = $(BLACKBOX_IMAGE_NAME):$(BLACKBOX_IMAGE_HASH)
define BLACKBOX_RUN_SCRIPT
#!/bin/bash
function cleanup()
{
for FILE in $$(blackbox_list_files); do
blackbox_edit_end $${FILE} || exit 1
done
exit 0
}
if [ "$$#" -ne 1 ]; then
## args are: open, close, run
echo "Usage: $$0 open|close|run"
exit 1
fi
## trap if arg is run
if [ "$$1" == "run" ]; then
# Intercepts the signal and then executes the command to encrypt.
trap cleanup INT TERM SIGTERM SIGUSR1
fi
if [ "$$1" == "open" ] || [ "$$1" == "run" ]; then
echo "Opening files..."
for FILE in $$(blackbox_list_files); do
blackbox_edit_start $${FILE} || exit 1
done
fi
if [ "$$1" == "close" ]; then
echo "Closing files..."
for FILE in $$(blackbox_list_files); do
blackbox_edit_end $${FILE} || exit 1
done
elif [ "$$1" == "run" ]; then
echo "Running command..."
while true; do
sleep 1
done
elif [ "$$1" == "open" ]; then
exit 0
else
echo "Unknown command: $$1"
exit 1
fi
endef
define BLACKBOX_DOCKERFILE
FROM docker-registry.schukai.com:443/debian-bullseye-amd64-slim:snapshot AS deb-builder
RUN apt-get update && apt-get install git make rubygems build-essential
RUN cd /opt/ && \
git clone https://github.com/StackExchange/blackbox.git
RUN gem install fpm
RUN cd /opt/blackbox && \
make packages-deb
FROM docker-registry.schukai.com:443/debian-bullseye-amd64-slim:snapshot
RUN apt-get update && apt-get install git gnupg
RUN sed -i /NAME=/s/=.*/'="Blackbox"'/ /etc/container-release ;
COPY --from=deb-builder /root/debbuild-stack_blackbox/ /tmp/
RUN apt-get install /tmp/*.deb
RUN mkdir /repos /root/.gnupg
VOLUME [ "/repos" ]
WORKDIR /repos
COPY ./filesystem/bin /bin/
RUN chmod ugo+x /bin/run-blackbox.sh
ARG UNAME=dummy
ARG UID=1000
ARG GID=1000
RUN groupadd -g $$GID -o $$UNAME
RUN useradd -m -u $$UID -g $$GID -o -s /bin/bash $$UNAME
ENTRYPOINT [ "/bin/run-blackbox.sh" ]
endef
\ No newline at end of file
#############################################################################################
#############################################################################################
##
## DEFINE BOB
##
#############################################################################################
#############################################################################################
BOB_BIN ?= $(VENDOR_PATH)bob
#BOB_SNIPPED_CONFIG ?= $(VENDOR_PATH)bob/snippet.yaml
BOB_SYNC_CONFIG ?= $(VENDOR_PATH)bob/sync.yaml
BOB_SOURCE_PATH ?= $(SOURCE_PATH)
BOB_DIST_PATH ?= $(DIST_PATH)bob/dist/
BOB_HTML_TEMPLATES_PATH ?= $(BUILD_PATH)bob/build/
BOB_DATA_FILE ?= data.yaml
define SYNCEXAMPLECONF
sync:
- source:
path: '../original/test1.html'
selector: '#mainscript'
destination:
path: '../original/'
exclude:
- ../original/test1.html
- source:
path: '../original/test1.html'
selector: '.deco'
destination:
path: '../original/'
exclude:
- ../original/test1.html
endef
export SYNCEXAMPLECONF
define SNIPPETEXAMPLECONF
snippet:
-
source: ../../template.html
selector: 'h1'
destination: ../../snippets/meta/container.html
attribute:
- selector: 'li'
name: 'data-state'
value: 'monster'
replacement:
-
selector: 'li>span'
content: 'hello'
endef
export SNIPPETEXAMPLECONF
$(BOB_SNIPPED_CONFIG):
$(QUIET) $(ECHO) "$$BOB_SNIPPED_CONFIG" >> $@
$(BOB_SYNC_CONFIG):
$(QUIET) $(ECHO) "$$BOB_SYNC_CONFIG" >> $@
#############################################################################################
#############################################################################################
##
## CHANGELOG
##
#############################################################################################
#############################################################################################
GIT_CHGLOG_BIN := $(shell command -v git-chglog 2> /dev/null)
GIT_CHGLOG_CONFIG_DIR := $(PROJECT_ROOT).chglog
REPOSURL := $(subst .git,,$(subst $(shell git config --get user.name)@,,$(shell git config --get remote.origin.url)))
ifeq ($(GO),)
$(error $(ERRORMARKER) GO is not defined)
endif
ifeq ($(GIT_CHGLOG_BIN),)
$(shell $(GO) install github.com/git-chglog/git-chglog/cmd/git-chglog@latest)
GIT_CHGLOG_BIN := $(shell command -v git-chglog 2> /dev/null)
endif
ifneq ($(shell test -d $(GIT_CHGLOG_CONFIG_DIR) && echo -n yes),yes)
$(shell mkdir -p $(GIT_CHGLOG_CONFIG_DIR))
endif
remove-config-files:
$(shell rm -Rf $(GIT_CHGLOG_CONFIG_DIR)/ && mkdir -p $(GIT_CHGLOG_CONFIG_DIR))
.PHONY: update-chglog-files
## update standard git-chglog configuration files
update-chglog-files: remove-config-files $(GIT_CHGLOG_CONFIG_DIR)/config.yml $(GIT_CHGLOG_CONFIG_DIR)/CHANGELOG.tpl.md
$(ECHOMARKER) "update standard git-chglog configuration files"
define GIT_CHGLOG_CONFIG_FILE
style: gitlab
template: CHANGELOG.tpl.md
info:
title: CHANGELOG
repository_url: $(REPOSURL)
options:
commits:
filters:
Type:
- feat
- fix
- doc
- refactor
- perf
- test
- chore
## deprecated types and typos
- docs
- documentation
- feat
- added
- add
- bugfix
- revert
- update
- updates
- change
- changed
commit_groups:
title_maps:
feat: Add Features
fix: Bug Fixes
doc: Documentation
refactor: Code Refactoring
perf: Performance Improvements
test: Tests
## Chore is used for all other changes that don't fit in the other categories
chore: Changes
## deprecated types and typos
docs: Documentation
documentation: Documentation
added: Add Features
add: Add Features
bugfix: Bug Fixes
revert: Reverts
update: Changes
updates: Changes
change: Changes
changed: Changes
header:
pattern: "^(\\w*)(?:\\(([\\w\\$$\\.\\-\\*\\s]*)\\))?\\:\\s(.*)$$"
pattern_maps:
- Type
- Scope
- Subject
notes:
keywords:
- BREAKING CHANGE
endef
export GIT_CHGLOG_CONFIG_FILE
$(GIT_CHGLOG_CONFIG_DIR)/config.yml:
$(QUIET) $(ECHO) "$$GIT_CHGLOG_CONFIG_FILE" >> $@
define GIT_CHGLOG_CONFIG_TEMPLATE
{{ range .Versions }}
<a name="{{ .Tag.Name }}"></a>
## {{ if .Tag.Previous }}[{{ .Tag.Name }}]{{ else }}{{ .Tag.Name }}{{ end }} - {{ datetime "2006-01-02" .Tag.Date }}
{{ range .CommitGroups -}}
### {{ .Title }}
{{ range .Commits -}}
- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
{{ end }}
{{ end -}}
{{- if .NoteGroups -}}
{{ range .NoteGroups -}}
### {{ .Title }}
{{ range .Notes }}
{{ .Body }}
{{ end }}
{{ end -}}
{{ end -}}
{{ end -}}
{{- if .Versions }}
{{ range .Versions -}}
{{ if .Tag.Previous -}}
[{{ .Tag.Name }}]: {{ $$.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}
{{ end -}}
{{ end -}}
{{ end -}}
endef
export GIT_CHGLOG_CONFIG_TEMPLATE
$(GIT_CHGLOG_CONFIG_DIR)/CHANGELOG.tpl.md:
$(QUIET) $(ECHO) "$$GIT_CHGLOG_CONFIG_TEMPLATE" >> $@
## location of CHANGELOG.md file
CHANGELOG_FILE ?= $(PROJECT_ROOT)CHANGELOG.md
EXECUTABLES = $(EXECUTABLES:-) $(GIT_CHGLOG_BIN)
#############################################################################################
#############################################################################################
##
## COLORS
##
#############################################################################################
#############################################################################################
BLACK := $(shell tput -Txterm setaf 0)
RED := $(shell tput -Txterm setaf 1)
GREEN := $(shell tput -Txterm setaf 2)
YELLOW := $(shell tput -Txterm setaf 3)
LIGHTPURPLE := $(shell tput -Txterm setaf 4)
PURPLE := $(shell tput -Txterm setaf 5)
BLUE := $(shell tput -Txterm setaf 6)
WHITE := $(shell tput -Txterm setaf 7)
RESET := $(shell tput -Txterm sgr0)
\ No newline at end of file
#############################################################################################
#############################################################################################
##
## DEFINE CONAN
##
#############################################################################################
#############################################################################################
CONAN_BIN ?= $(VENDOR_PATH)conan
CONAN_CONFIG ?= $(VENDOR_PATH)conan.conf
define CONANEXAMPLECONF
Server:
# The hostname or IP address of the server (CONAN_SERVER_HOST)
# Domain, IP or hostname of the server
#Host: localhost:8080
# The port of the server (CONAN_SERVER_ADDRESS)
# Address: localhost
# The port of the server (CONAN_SERVER_PORT)
# Port: 8080
#
Path:
# The path to the server (CONAN_SERVER_WEB_PATH)
Web: web
Watch:
- Path: src
Command: /bin/bash -c "npx esbuild --bundle --outfile={{ .WebPath }}/scripts/bundle.js --sourcemap {{ .Path }}"
Exclude:
- ~$
- ^\.
- Path: web
Exclude:
- ~$
- ^\.
Flags:
FollowSymlinks: true
endef
export CONANEXAMPLECONF
$(CONAN_CONFIG):
$(QUIET) $(ECHO) "$$CONANEXAMPLECONF" >> $@
$(CONAN_BIN):
$(QUIET) $(MKDIR) -p $(VENDOR_PATH)
$(QUIET) $(WGET) -O $(CONAN_BIN) http://download.schukai.com/tools/conan/conan-$(shell uname -s | tr [:upper:] [:lower:])-$(shell echo `uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/`)
$(QUIET) $(CHMOD) u+x $(CONAN_BIN)
#############################################################################################
#############################################################################################
##
## DIRECTORIES
##
#############################################################################################
#############################################################################################
APPLICATION_PATH ?= $(PROJECT_ROOT)
DEPLOYMENT_PATH ?= $(PROJECT_ROOT)
DEVELOPMENT_PATH ?= $(PROJECT_ROOT)
DOCUMENTATION_PATH ?= $(PROJECT_ROOT)
DOCUMENTATION_CONFIG_PATH ?= $(DOCUMENTATION_PATH)config/
RESOURCE_PATH ?= $(APPLICATION_PATH)
SOURCE_PATH ?= $(APPLICATION_PATH)
## SCRIPTS_PATH IS DEPRECATED
SCRIPTS_PATH ?= $(DEVELOPMENT_PATH)script/
DEVELOPMENT_SCRIPTS_PATH ?= $(DEVELOPMENT_PATH)script/
BUILD_PATH ?= $(DEPLOYMENT_PATH)build/
VENDOR_PATH ?= $(DEPLOYMENT_PATH)vendor/
DEPLOYMENT_SCRIPTS_PATH ?= $(DEPLOYMENT_PATH)script/
LICENSE_PATH ?= $(PROJECT_ROOT)
PROJECT_DIRECTORIES := $(PROJECT_DIRECTORIES) \
$(APPLICATION_PATH) \
$(VENDOR_PATH) \
$(DEVELOPMENT_SCRIPTS_PATH) \
$(BUILD_PATH)
#############################################################################################
#############################################################################################
##
## DIRECTORIES
##
#############################################################################################
#############################################################################################
APPLICATION_PATH ?= $(PROJECT_ROOT)application/
DEPLOYMENT_PATH ?= $(PROJECT_ROOT)deployment/
DEVELOPMENT_PATH ?= $(PROJECT_ROOT)development/
DOCUMENTATION_PATH ?= $(PROJECT_ROOT)documentation/
DOCUMENTATION_CONFIG_PATH ?= $(DOCUMENTATION_PATH)config/
RESOURCE_PATH ?= $(APPLICATION_PATH)resource/
SOURCE_PATH ?= $(APPLICATION_PATH)source/
WEB_PATH ?= $(APPLICATION_PATH)web/
## SCRIPTS_PATH IS DEPRECATED
SCRIPTS_PATH ?= $(DEVELOPMENT_PATH)script/
DEVELOPMENT_SCRIPTS_PATH ?= $(DEVELOPMENT_PATH)script/
BUILD_PATH ?= $(DEPLOYMENT_PATH)build/
VENDOR_PATH ?= $(DEPLOYMENT_PATH)vendor/
DEPLOYMENT_SCRIPTS_PATH ?= $(DEPLOYMENT_PATH)script/
LICENSE_PATH ?= $(PROJECT_ROOT)
PROJECT_DIRECTORIES := $(PROJECT_DIRECTORIES) \
$(APPLICATION_PATH) \
$(RESOURCE_PATH) \
$(SOURCE_PATH) \
$(DEPLOYMENT_PATH) \
$(VENDOR_PATH) \
$(DEVELOPMENT_PATH) \
$(DEVELOPMENT_SCRIPTS_PATH) \
$(DEPLOYMENT_SCRIPTS_PATH) \
$(DOCUMENTATION_PATH) \
$(LICENSE_PATH) \
$(BUILD_PATH)
#############################################################################################
#############################################################################################
##
## DIRECTORIES
##
#############################################################################################
#############################################################################################
SOURCE_PATH ?= $(PROJECT_ROOT)source/
RELATIVE_SCRIPT_PATH ?= script/
SCRIPT_PATH ?= $(PROJECT_ROOT)$(RELATIVE_SCRIPT_PATH)
## DEPRECATED ALIAS
SCRIPTS_PATH = $(SCRIPT_PATH)
VENDOR_PATH ?= $(PROJECT_ROOT)vendor/
NODE_PATH ?= $(PROJECT_ROOT)node_modules/
TEST_PATH ?= $(PROJECT_ROOT)test/
DEVELOPMENT_PATH ?= $(PROJECT_ROOT)
LICENSE_PATH ?= $(PROJECT_ROOT)
DIST_PATH ?= $(PROJECT_ROOT)dist/
CONFIG_PATH ?= $(PROJECT_ROOT)config/
BUILD_PATH ?= $(PROJECT_ROOT)build/
BOB_SNIPPED_CONFIG ?= $(CONFIG_PATH)snippet.conf
BOB_SYNC_CONFIG ?= $(CONFIG_PATH)sync.yaml
BOB_BUILD_PATH ?= $(BUILD_PATH)
BOB_DIST_PATH ?= $(DIST_PATH)
PROJECT_DIRECTORIES := $(PROJECT_DIRECTORIES) \
$(SOURCE_PATH) \
$(SCRIPT_PATH) \
$(VENDOR_PATH) \
$(NODE_PATH) \
$(TEST_PATH) \
$(LICENSE_PATH) \
$(CONFIG_PATH) \
$(BUILD_PATH) \
$(DIST_PATH)
#############################################################################################
#############################################################################################
##
## DIRECTORIES
##
#############################################################################################
#############################################################################################
APPLICATION_PATH ?= $(PROJECT_ROOT)application/
DEPLOYMENT_PATH ?= $(PROJECT_ROOT)deployment/
DEVELOPMENT_PATH ?= $(PROJECT_ROOT)development/
DOCUMENTATION_PATH ?= $(PROJECT_ROOT)documentation/
REQUIREMENT_PATH ?= $(PROJECT_ROOT)requirement/
CREDENTIALS_PATH ?= $(PROJECT_ROOT)credential/
TUTORIALS_PATH ?= $(DOCUMENTATION_PATH)tutorial/
DOCUMENTATION_CONFIG_PATH ?= $(DOCUMENTATION_PATH)config/
RESOURCE_PATH ?= $(APPLICATION_PATH)resource/
SOURCE_PATH ?= $(APPLICATION_PATH)source/
WEB_PATH ?= $(APPLICATION_PATH)web/
## SCRIPTS_PATH IS DEPRECATED
SCRIPTS_PATH ?= $(DEVELOPMENT_PATH)script/
DEVELOPMENT_SCRIPTS_PATH ?= $(DEVELOPMENT_PATH)script/
BUILD_PATH ?= $(DEPLOYMENT_PATH)build/
VENDOR_PATH ?= $(DEPLOYMENT_PATH)vendor/
ALVINE_VENDOR_PATH ?= $(VENDOR_PATH)alvine/
TEST_PATH ?= $(DEVELOPMENT_PATH)tests/
DEPLOYMENT_SCRIPTS_PATH ?= $(DEPLOYMENT_PATH)script/
LICENSE_PATH ?= $(PROJECT_ROOT)
PROJECT_DIRECTORIES := $(PROJECT_DIRECTORIES) \
$(APPLICATION_PATH) \
$(RESOURCE_PATH) \
$(SOURCE_PATH) \
$(WEB_PATH) \
$(DEPLOYMENT_PATH) \
$(VENDOR_PATH) \
$(ALVINE_VENDOR_PATH) \
$(TEST_PATH) \
$(DEVELOPMENT_PATH) \
$(DEVELOPMENT_SCRIPTS_PATH) \
$(DEPLOYMENT_SCRIPTS_PATH) \
$(DOCUMENTATION_PATH) \
$(REQUIREMENT_PATH) \
$(CREDENTIALS_PATH) \
$(LICENSE_PATH) \
$(BUILD_PATH)
#############################################################################################
#############################################################################################
##
## DOCKER
##
#############################################################################################
#############################################################################################
DOCKER ?= docker
EXECUTABLES = $(EXECUTABLES:-) $(DOCKER);
#############################################################################################
#############################################################################################
##
## DOCMAN
##
#############################################################################################
#############################################################################################
DOCMAN_BIN ?= $(VENDOR_PATH)docman
DOCMAN_CONFIG_PATH ?= $(DOCUMENTATION_CONFIG_PATH)docman.yaml
DOCMAN_HTML_ARTEFACT ?= $(PROJECT_ROOT)deployment/build/manual.html
DOCMAN_PDF_ARTEFACT ?= $(PROJECT_ROOT)deployment/build/manual.pdf
DOCMAN_SOURCE ?= $(shell find $(DOCUMENTATION_PATH) -type f)
$(DOCMAN_BIN):
$(QUIET) $(MKDIR) -p $(VENDOR_PATH)
$(QUIET) $(WGET) -O $(DOCMAN_BIN) http://download.schukai.com/tools/docman/docman-$(shell uname -s | tr [:upper:] [:lower:])-$(shell echo `uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/`)
$(QUIET) $(CHMOD) u+x $(DOCMAN_BIN)
#############################################################################################
#############################################################################################
##
## GIT
##
#############################################################################################
#############################################################################################
GIT ?= git
UUIDGEN ?= uuidgen
EXECUTABLES = $(EXECUTABLES:-) $(UUIDGEN) $(GIT)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment