diff --git a/Makefile b/Makefile index 4b7c370926c74be5384209525f8f4cdf8e005ed7..390830d5d6f7bdc5784f21dff98fbcde0904210f 100644 --- a/Makefile +++ b/Makefile @@ -47,6 +47,8 @@ include $(MAKEFILE_IMPORT_PATH)directories-go-utilities.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 @@ -58,8 +60,7 @@ 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)go.mk -include $(MAKEFILE_IMPORT_PATH)changelog.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 diff --git a/application/source/go.mod b/application/source/go.mod index 7a68da199f72419ae6ad78a0a50997af9012e42d..f3d3b76acb933e2003e5ba6bbcd60e45a94577f4 100644 --- a/application/source/go.mod +++ b/application/source/go.mod @@ -1,35 +1,18 @@ module gitlab.schukai.com/oss/bob - go 1.20 require ( - github.com/andybalholm/cascadia v1.3.1 - gitlab.schukai.com/oss/libraries/go/application/xflags v1.13.2 - gitlab.schukai.com/oss/libraries/go/markup/html v0.3.0 - golang.org/x/crypto v0.6.0 - golang.org/x/net v0.6.0 + github.com/andybalholm/cascadia v1.3.2 + gitlab.schukai.com/oss/libraries/go/application/xflags v1.16.0 + gitlab.schukai.com/oss/libraries/go/markup/html v0.4.0 + golang.org/x/crypto v0.10.0 + golang.org/x/net v0.11.0 gopkg.in/yaml.v3 v3.0.1 ) require ( - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/golang/protobuf v1.5.2 // indirect - github.com/imdario/mergo v0.3.13 // indirect - github.com/magiconair/properties v1.8.6 // indirect - github.com/pelletier/go-toml/v2 v2.0.5 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/r3labs/diff/v3 v3.0.0 // indirect - github.com/stretchr/testify v1.8.1 // indirect - github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect github.com/volker-schukai/tokenizer v1.0.0 // indirect - gitlab.schukai.com/oss/libraries/go/application/configuration v1.14.0 // indirect - gitlab.schukai.com/oss/libraries/go/network/http-negotiation v1.3.0 // indirect gitlab.schukai.com/oss/libraries/go/utilities/data.git v0.2.0 // indirect gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.5.2 // indirect - golang.org/x/exp v0.0.0-20221023144134-a1e5550cf13e // indirect - golang.org/x/sys v0.5.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.28.1 // indirect ) diff --git a/application/source/go.sum b/application/source/go.sum index 281ce451412f61411b838efac526b12a84e56a31..8160b77756b53f4493928907157c13bbc8c04ebe 100644 --- a/application/source/go.sum +++ b/application/source/go.sum @@ -1,65 +1,74 @@ github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c= github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= +github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss= +github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= -github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/r3labs/diff/v3 v3.0.0/go.mod h1:wCkTySAiDnZao1sZrVTDIzuzgLZ+cNPGn3LC8DlIg5g= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/volker-schukai/tokenizer v1.0.0 h1:wF4haFoCodq7lgAk8c+th/DZmpFpL2WVD8wDzAGU1mA= github.com/volker-schukai/tokenizer v1.0.0/go.mod h1:LPw7lLIxUnZgeg96818N7IvwLE1x8ya31J/Aa0aCq9M= -gitlab.schukai.com/oss/libraries/go/application/configuration v1.14.0/go.mod h1:me1BS/adhucf6h8t2ew0ifaNVio2vunQIYfpofUBbF8= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= gitlab.schukai.com/oss/libraries/go/application/xflags v1.13.2 h1:3nRDFUs629qL8EGxeX3gzNUqIR/04uUvXiW0G7qJ8Jk= gitlab.schukai.com/oss/libraries/go/application/xflags v1.13.2/go.mod h1:EEYPy5RYR4ahK9J6CTKSLFHUhP+ndHBWVdQMtGCFqDo= +gitlab.schukai.com/oss/libraries/go/application/xflags v1.16.0 h1:Z2XHuqbg4BIsYT+cM/Wz6gmbwm3wGRoD+yyhkxqlMy0= +gitlab.schukai.com/oss/libraries/go/application/xflags v1.16.0/go.mod h1:7haFwiRz+5kmVIiYp9LMp7g/flY034aolZ4tsH9Elkk= gitlab.schukai.com/oss/libraries/go/markup/html v0.3.0 h1:RvEQgV6yj8M1SjmR/FZwmwykfJSbHrDk8m7IIlujhxY= gitlab.schukai.com/oss/libraries/go/markup/html v0.3.0/go.mod h1:h0+dJUwXfF1QeaBxFiidgxA2I3A9qIPE+zhfs88pKV8= -gitlab.schukai.com/oss/libraries/go/network/http-negotiation v1.3.0/go.mod h1:RS2rKf5O+rmSBshHLOgjG7dxg5N2MhNYokZOBcuXdX8= +gitlab.schukai.com/oss/libraries/go/markup/html v0.4.0 h1:gnYhE5PAN5KxsRILVl3y3uPgDNLgHRQCJx2VO8h92Cg= +gitlab.schukai.com/oss/libraries/go/markup/html v0.4.0/go.mod h1:HzmuHp0kWeICctL/lVz8up2qkyHxI1R48FojgF/aKs4= gitlab.schukai.com/oss/libraries/go/utilities/data.git v0.2.0 h1:JVxMHiA8zFVjJDhNl65XeYrhdMkzB+5dyrBUEZ982WU= gitlab.schukai.com/oss/libraries/go/utilities/data.git v0.2.0/go.mod h1:BsR4Y9jsvISplkW6UoLFRGxQX69/AUmP1SXRwWhx31o= gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.5.2 h1:R+dL2NJCM+AQNPK4DPDmfvx1eomi1Xb1dl0XKEFj7Ek= gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.5.2/go.mod h1:UvdD4NAf3gLKYafabJD7e9ZCOetzM9JZ9y4GkZukPVU= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/exp v0.0.0-20221023144134-a1e5550cf13e/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM= +golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU= +golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/development/makefiles/blackbox.mk b/development/makefiles/blackbox.mk new file mode 100644 index 0000000000000000000000000000000000000000..c1f3e5f9b6556778ca1ffa83715ac5d599652cf6 --- /dev/null +++ b/development/makefiles/blackbox.mk @@ -0,0 +1,111 @@ +############################################################################################# +############################################################################################# +## +## 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 diff --git a/development/makefiles/bob.mk b/development/makefiles/bob.mk index 1ebfe277c286d86d86d51253c6275dd327aa159a..c779df31757b1998fc2d40e0c64a1e30d864608c 100644 --- a/development/makefiles/bob.mk +++ b/development/makefiles/bob.mk @@ -8,8 +8,15 @@ BOB_BIN ?= $(VENDOR_PATH)bob -BOB_SNIPPED_CONFIG ?= $(VENDOR_PATH)bob/snippet.conf -BOB_SYNC_CONFIG ?= $(VENDOR_PATH)bob/sync.conf +#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: diff --git a/development/makefiles/conan.mk b/development/makefiles/conan.mk index 64dacde6f1c63ff0675faa641df6f467fbf30289..7025948407cdc675d8f745fe39ab7a52d1ec78bf 100644 --- a/development/makefiles/conan.mk +++ b/development/makefiles/conan.mk @@ -49,3 +49,9 @@ 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) diff --git a/development/makefiles/directories-go-lib.mk b/development/makefiles/directories-go-lib.mk index 5dd10706f18eb7c8bd9a62a293be4b59d1a59aac..257f8ab4051fe1852c021b00d509ba4a100d5361 100644 --- a/development/makefiles/directories-go-lib.mk +++ b/development/makefiles/directories-go-lib.mk @@ -10,6 +10,7 @@ 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) diff --git a/development/makefiles/directories-go-utilities.mk b/development/makefiles/directories-go-utilities.mk index f754f0370196ba8529d9cf23b614f0e6bb12788c..8fc26182636a50433b8832b20b36bd80c704140a 100644 --- a/development/makefiles/directories-go-utilities.mk +++ b/development/makefiles/directories-go-utilities.mk @@ -10,6 +10,7 @@ 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/ diff --git a/development/makefiles/directories-platform-part.mk b/development/makefiles/directories-platform-part.mk index 2a6c77de56c0865f781dcb32439217ace64dab24..8e17db76a718f84574e55049e470bcebdec3bbb4 100644 --- a/development/makefiles/directories-platform-part.mk +++ b/development/makefiles/directories-platform-part.mk @@ -11,21 +11,36 @@ 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) +DEVELOPMENT_PATH ?= $(PROJECT_ROOT) LICENSE_PATH ?= $(PROJECT_ROOT) -DIST_PATH ?= $(PROJECT_ROOT)dist/ +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) + $(LICENSE_PATH) \ + $(CONFIG_PATH) \ + $(BUILD_PATH) \ + $(DIST_PATH) diff --git a/development/makefiles/docman.mk b/development/makefiles/docman.mk index cc61cff5ba99d12818613002164e4aaf3353b7ac..40b21228b0786d9763014feadbe4b20b5dd86709 100644 --- a/development/makefiles/docman.mk +++ b/development/makefiles/docman.mk @@ -7,4 +7,13 @@ ############################################################################################# -DOCMAN_BIN ?= $(VENDOR_PATH)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) diff --git a/development/makefiles/go.mk b/development/makefiles/go.mk index 6cb58e936eb9de9c2d1e3a463c9f2233338c7c5f..679e0ac0b784d000b2cc036da2978f918028a865 100644 --- a/development/makefiles/go.mk +++ b/development/makefiles/go.mk @@ -8,8 +8,9 @@ # path and binaries GO := go +GOLINT := golint -EXECUTABLES = $(EXECUTABLES:-) $(GO); +EXECUTABLES = $(EXECUTABLES:-) $(GO) $(GOLINT); ifeq ($(shell command -v $(GO) 2> /dev/null),) $(error "go is not installed. Please install go <https://go.dev/doc/install>") @@ -25,3 +26,9 @@ ifeq ($(GOPATH),) export PATH=$(PATH):$(GOPATH)/bin endif +ifdef SOURCE_PATH + PKG_LIST := $(shell if [ -d "SOURCE_PATH" ] ; then cd $(SOURCE_PATH); $(GO) list ./... | grep -v /vendor/ ; fi) + GO_FILES := $(shell if [ -d "SOURCE_PATH" ] ; then cd $(SOURCE_PATH); find . -name '*.go' | grep -v /vendor/ | grep -v _test.go; fi) +endif + + diff --git a/development/makefiles/jsdoc.mk b/development/makefiles/jsdoc.mk index f565f53302fbe070953be1e9796eefa9e51d1ba6..b365b225c307486353885e0aa4f47021a0ede9f2 100644 --- a/development/makefiles/jsdoc.mk +++ b/development/makefiles/jsdoc.mk @@ -9,4 +9,7 @@ # path and binaries JSDOC ?= $(NODE_MODULES_BIN_DIR)jsdoc -EXECUTABLES = $(EXECUTABLES:-) $(JSDOC); \ No newline at end of file +EXECUTABLES = $(EXECUTABLES:-) $(JSDOC); + +FIXBROKENPLANTUML ?= $(NODE_MODULES_DIR)jsdoc-plantuml/fixBrokenNodeJS.js +DOCUMENTATION_S3_PATH ?= s3://doc.alvine.io/en/oss/$(COMPONENT_SLUG)/ \ No newline at end of file diff --git a/development/makefiles/licenses.mk b/development/makefiles/licenses.mk index 7d8f56db297745a6cc95f605b29eb8b7949aa2ed..d8f289bc8ced8d444f5e14340167f0ac73a03b5d 100644 --- a/development/makefiles/licenses.mk +++ b/development/makefiles/licenses.mk @@ -6,6 +6,10 @@ ############################################################################################# ############################################################################################# +ifeq ($(GO),) + $(error $(ERRORMARKER) Go is not defined, check your Makefile if go.mk is included) +endif + ifneq "$(wildcard $(SOURCE_PATH) )" "" ## Files wich should be checked for license headers LICENSE_FILE_PATTERN ?= $(shell find $(SOURCE_PATH) -type f \( -iname \*.go -o -iname \*.php -o -iname \*.js -o -iname \*.mjs -o -iname \*.cjs \) ) diff --git a/development/makefiles/readme-go-utilities.mk b/development/makefiles/readme-go-utilities.mk index ae10cdc29efd4bfaa2c8fa0bd6586eb2cc783cee..48320cc61ea5bee35251288721fe461ba350a57d 100644 --- a/development/makefiles/readme-go-utilities.mk +++ b/development/makefiles/readme-go-utilities.mk @@ -18,14 +18,20 @@ To check out docs and examples, visit .... ## Installation +If you want to install the latest version of this tool, you can use the following command: + ```shell -go get $(shell git config --get remote.origin.url | sed -E 's/^\s*.*:\/\///g') +wget -O ./$(COMPONENT_SLUG) http://download.schukai.com/tools/$(COMPONENT_SLUG)/$(COMPONENT_SLUG)-$$( uname -s | tr [:upper:] [:lower:])-$$(echo uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) ``` -**Note:** This library uses [Go Modules](https://github.com/golang/go/wiki/Modules) to manage dependencies. - ## Usage +The following command will show you the help of the tool: + +```shell +$(COMPONENT_SLUG) help +``` + ## Contributing Merge requests are welcome. For major changes, please open an issue first to discuss what diff --git a/development/makefiles/target-blackbox.mk b/development/makefiles/target-blackbox.mk new file mode 100644 index 0000000000000000000000000000000000000000..2c8369dcd683cf83987ba263e3b5d564fbad81fa --- /dev/null +++ b/development/makefiles/target-blackbox.mk @@ -0,0 +1,85 @@ +############################################################################################# +############################################################################################# +## +## BLACKBOX +## +############################################################################################# +############################################################################################# + +ifndef BLACKBOX_DOCKERFILE + $(error $(ERRORMARKER) BLACKBOX_DOCKERFILE is not defined, check your Makefile if blackbox.mk is included) +endif + +ifndef BLACKBOX_RUN_SCRIPT + $(error $(ERRORMARKER) BLACKBOX_RUN_SCRIPT is not defined, check your Makefile if blackbox.mk is included) +endif + +export BLACKBOX_DOCKERFILE +export BLACKBOX_RUN_SCRIPT + +$(BLACKBOX_BUILD_DIR): + $(QUIET) $(MKDIR) -p $(BLACKBOX_BUILD_DIR) + +$(BLACKBOX_BUILD_DIR)/Dockerfile: $(BLACKBOX_BUILD_DIR) + $(QUIET) $(ECHO) "$$BLACKBOX_DOCKERFILE" > $@ + +$(BLACKBOX_BUILD_DIR)/filesystem: + $(QUIET) $(MKDIR) -p $(BLACKBOX_BUILD_DIR)/filesystem + +$(BLACKBOX_BUILD_DIR)/filesystem/bin: + $(QUIET) $(MKDIR) -p $(BLACKBOX_BUILD_DIR)/filesystem/bin + +$(BLACKBOX_BUILD_DIR)/filesystem/bin/run-blackbox.sh: $(BLACKBOX_BUILD_DIR)/filesystem/bin + $(QUIET) $(ECHO) "$$BLACKBOX_RUN_SCRIPT" > $@ + $(QUIET) $(CHMOD) u+x $@ + +.PHONY: blackbox-build-image +## build blackbox image +blackbox-build-image: $(BLACKBOX_BUILD_DIR)/Dockerfile $(BLACKBOX_BUILD_DIR)/filesystem/bin/run-blackbox.sh + $(ECHOMARKER) "build blackbox image" + $(QUIET) docker build --build-arg UID=$(shell id -u) \ + --build-arg GID=$(shell id -g) \ + --build-arg UNAME=$(shell id -un) \ + -t $(BLACKBOX_IMAGE) $(BLACKBOX_BUILD_DIR) + +.PHONY: blackbox-open +## open credential with blackbox +blackbox-open: +ifeq ($(shell docker images -q ${BLACKBOX_IMAGE} 2> /dev/null),) + $(QUIET) $(MAKE) blackbox-build-image +endif + $(ECHOMARKER) "open credential with blackbox" + $(QUIET) docker run --user $(shell id -u):$(shell id -g) \ + --rm -it \ + -v $(BLACKBOX_ROOT_DIR):/repos \ + -v $(BLACKBOX_GPG_PATH):/home/$(shell id -un)/.gnupg \ + $(BLACKBOX_IMAGE) open + +.PHONY: blackbox-close +## close credential with blackbox +blackbox-close: +ifeq ($(shell docker images -q ${BLACKBOX_IMAGE} 2> /dev/null),) + $(QUIET) $(MAKE) blackbox-build-image +endif + $(ECHOMARKER) "open credential with blackbox" + $(QUIET) docker run --user $(shell id -u):$(shell id -g) \ + --rm -it \ + -v $(BLACKBOX_ROOT_DIR):/repos \ + -v $(BLACKBOX_GPG_PATH):/home/$(shell id -un)/.gnupg \ + $(BLACKBOX_IMAGE) close + +.PHONY: blackbox-run +## run credential with blackbox +blackbox-run: +ifeq ($(shell docker images -q ${BLACKBOX_IMAGE} 2> /dev/null),) + $(QUIET) $(MAKE) blackbox-build-image +endif + $(ECHOMARKER) "open credential with blackbox" + $(QUIET) docker run --user $(shell id -u):$(shell id -g) \ + --rm -it \ + -v $(BLACKBOX_ROOT_DIR):/repos \ + -v $(BLACKBOX_GPG_PATH):/home/$(shell id -un)/.gnupg \ + $(BLACKBOX_IMAGE) run + + + diff --git a/development/makefiles/target-bob.mk b/development/makefiles/target-bob.mk index 314990e7b7a6d4a4773d02ee5acd75d3a333c784..072890b7568ecaeec23f11ebcd93a9cd00fff068 100644 --- a/development/makefiles/target-bob.mk +++ b/development/makefiles/target-bob.mk @@ -10,9 +10,61 @@ ifeq ($(BOB_BIN),) $(error $(ERRORMARKER) Bob is not defined, check your Makefile if bob.mk is included) endif +ifndef BOB_HTML_TEMPLATES_PATH + $(error $(ERRORMARKER) BOB_HTML_TEMPLATES_PATH is not defined, check your Makefile if bob.mk is included) +endif + +ifndef BOB_DIST_PATH + $(error $(ERRORMARKER) BOB_DIST_PATH is not defined, check your Makefile if bob.mk is included) +endif + +ifndef SOURCE_PATH + $(error $(ERRORMARKER) SOURCE_PATH is not defined, check your Makefile if bob.mk is included) +endif + $(BOB_BIN): $(QUIET) $(MKDIR) -p $(VENDOR_PATH) $(QUIET) $(WGET) -O $(BOB_BIN) http://download.schukai.com/tools/bob/bob-$(shell uname -s | tr [:upper:] [:lower:])-$(shell echo `uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/`) $(QUIET) $(CHMOD) u+x $(BOB_BIN) +.PHONY: sync-pages +## Sync structure of pages +sync-pages: $(BOB_BIN) +ifeq ($(BOB_SYNC_CONFIG),) + $(ECHOMARKER) "BOB_SYNC_CONFIG is not set, check your Makefile if the variable is set" +endif + $(ECHOMARKER) "Sync structure of pages" + $(QUIET) $(BOB_BIN) html sync --specification $(BOB_SYNC_CONFIG) + +$(BOB_HTML_TEMPLATES_PATH): + $(ECHOMARKER) "Create template directory for bob" + $(QUIET) $(MKDIR) -p $(BOB_HTML_TEMPLATES_PATH) + +$(BOB_DIST_PATH): + $(ECHOMARKER) "Create dist directory for bob" + $(QUIET) $(MKDIR) -p $(BOB_DIST_PATH) + +.PHONY: generate-html +## Build the project with Bob +generate-html: $(BOB_BIN) $(BOB_HTML_TEMPLATES_PATH) $(BOB_DIST_PATH) + $(ECHOMARKER) "Generate html" + $(QUIET) $(BOB_BIN) html generate --input $(BOB_HTML_TEMPLATES_PATH) --output $(BOB_DIST_PATH) + +.PHONY: prepare-template +## Prepare template with Bob +prepare-template: $(BOB_BIN) $(BOB_HTML_TEMPLATES_PATH) + $(ECHOMARKER) "Generate templates" + $(QUIET) $(BOB_BIN) template prepare --input $(BOB_SOURCE_PATH) --output $(BOB_HTML_TEMPLATES_PATH) --data-file=$(BOB_DATA_FILE) + + + +.PHONY: init-template +## Init templates if not exist with Bob +init-template: $(BOB_BIN) $(BOB_HTML_TEMPLATES_PATH) + $(ECHOMARKER) "Generate templates" + $(QUIET) $(BOB_BIN) template prepare --input $(BOB_SOURCE_PATH) --output $(BOB_HTML_TEMPLATES_PATH) --data-file=en.yaml + + + + diff --git a/development/makefiles/target-caddy.mk b/development/makefiles/target-caddy.mk index 4387423c6595cd58474e536f0cf4a181a69c2d3d..7258e3e180f6789c42d15d04f6fd70b5b9f10388 100644 --- a/development/makefiles/target-caddy.mk +++ b/development/makefiles/target-caddy.mk @@ -19,5 +19,6 @@ $(CADDY_BIN): .PHONY: run-caddy ## run caddy webserver run-caddy: $(CADDY_BIN) + $(ECHOMARKER) "Run Caddy" $(QUIET) $(CADDY_BIN) run -config $(CADDY_CONFIG) -pidfile $(CADDY_PIDFILE) -watch diff --git a/development/makefiles/target-conan.mk b/development/makefiles/target-conan.mk index 4a9a06ff83dd2d43ef85c2955d90e98f67ca6953..1e42f1f4bdf341c6292655f5d09a6b623c9089c6 100644 --- a/development/makefiles/target-conan.mk +++ b/development/makefiles/target-conan.mk @@ -10,13 +10,8 @@ ifeq ($(CONAN_BIN),) $(error $(ERRORMARKER) Conan is not defined, check your Makefile if conan.mk is included) endif - -$(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) - .PHONY: run-conan ## run conan webserver run-conan: $(CONAN_BIN) $(CONAN_CONFIG) + $(ECHOMARKER) "Run Conan" $(QUIET) $(CONAN_BIN) server serve --config $(CONAN_CONFIG) diff --git a/development/makefiles/target-deploy-tool.mk b/development/makefiles/target-deploy-tool.mk index 4e69db87e41f75f0579b27f024ff3c42d73fd5f8..e47b8995407279b2184e50a1af9f77fa9a018632 100644 --- a/development/makefiles/target-deploy-tool.mk +++ b/development/makefiles/target-deploy-tool.mk @@ -17,6 +17,7 @@ deploy: compile .PHONY: overview-to-s3 ## overview-to-s3 overview-to-s3: + $(ECHOMARKER) "Deploy to aws" $(QUIET) AWS_PROFILE=$(AWS_PROFILE) $(AWS) s3 cp $(WEB_PATH)/index.html $(UPLOAD_TOOL_URL) $(QUIET) AWS_PROFILE=$(AWS_PROFILE) $(AWS) s3 cp $(WEB_PATH)/index.css $(UPLOAD_TOOL_URL) - $(QUIET) AWS_PROFILE=$(AWS_PROFILE) $(AWS) s3 cp $(WEB_PATH)/index.js $(UPLOAD_TOOL_URL) \ No newline at end of file + $(QUIET) AWS_PROFILE=$(AWS_PROFILE) $(AWS) s3 cp $(WEB_PATH)/index.js $(UPLOAD_TOOL_URL) diff --git a/development/makefiles/target-docman.mk b/development/makefiles/target-docman.mk index 050374042edb1b317f88df55b763df189bf0d25c..2c8424b021d89735576befbc4016b647b8c84f26 100644 --- a/development/makefiles/target-docman.mk +++ b/development/makefiles/target-docman.mk @@ -1,4 +1,3 @@ - ############################################################################################# ############################################################################################# ## @@ -11,28 +10,27 @@ ifeq ($(DOCMAN_BIN),) $(error "$(DOCMAN_BIN) is not installed. Please check your makefile and include the docman.mk") endif -$(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) - -$(PROJECT_ROOT)deployment/build/manual.html: $(DOCMAN_BIN) - $(DOCMAN_BIN) document html --config $(PROJECT_ROOT)documentation/config.yaml +$(DOCMAN_HTML_ARTEFACT): $(DOCMAN_BIN) $(DOCMAN_SOURCE) + $(ECHOMARKER) "Build HTML Documentation" + $(QUIET) $(DOCMAN_BIN) document html --config $(DOCMAN_CONFIG_PATH) -$(PROJECT_ROOT)deployment/build/manual.pdf: $(DOCMAN_BIN) - $(DOCMAN_BIN) document pdf --config $(PROJECT_ROOT)documentation/config.yaml +$(DOCMAN_PDF_ARTEFACT): $(DOCMAN_BIN) $(DOCMAN_SOURCE) + $(ECHOMARKER) "Build PDF Documentation" + $(QUIET) $(DOCMAN_BIN) document pdf --config $(DOCMAN_CONFIG_PATH) .PHONY: build-doc-pdf ## creating the documentation in pdf format -build-doc-pdf: $(PROJECT_ROOT)deployment/build/manual.pdf +build-doc-pdf: $(DOCMAN_PDF_ARTEFACT) .PHONY: build-doc-html ## creating the documentation in html format -build-doc-html: $(PROJECT_ROOT)deployment/build/manual.html - +build-doc-html: $(DOCMAN_HTML_ARTEFACT) .PHONY: build-doc ## creating the documentation in pdf and html format build-doc: build-doc-pdf build-doc-html + + + diff --git a/development/makefiles/target-go-build.mk b/development/makefiles/target-go-build.mk index 23139cdceb1f8f01d2a8d52d9308c38a751989e4..c21e4a4d07335f8bd26d610e4fede6aba5780552 100644 --- a/development/makefiles/target-go-build.mk +++ b/development/makefiles/target-go-build.mk @@ -18,11 +18,41 @@ compile: next-patch-version $(ECHOMARKER) "Compiling for every OS and Platform" $(ECHO) "Version: $(PROJECT_VERSION)" $(ECHO) "Build: $(PROJECT_BUILD_DATE)" - - $(QUIET) cd $(SOURCE_PATH) ; \ - GO111MODULE=on GOOS=linux GOARCH=arm $(GO) build -ldflags "-X $(GO_RELEASE_PACKAGE_NAME).version=$(PROJECT_VERSION) -X $(GO_RELEASE_PACKAGE_NAME).build=$(PROJECT_BUILD_DATE)" -o $(BUILD_PATH)$(COMPONENT_SLUG)-linux-arm ; \ - GOOS=linux GOARCH=amd64 $(GO) build -ldflags "-X $(GO_RELEASE_PACKAGE_NAME).version=$(PROJECT_VERSION) -X $(GO_RELEASE_PACKAGE_NAME).build=$(PROJECT_BUILD_DATE)" -o $(BUILD_PATH)$(COMPONENT_SLUG)-linux-amd64 ; \ - GOOS=linux GOARCH=arm64 $(GO) build -ldflags "-X $(GO_RELEASE_PACKAGE_NAME).version=$(PROJECT_VERSION) -X $(GO_RELEASE_PACKAGE_NAME).build=$(PROJECT_BUILD_DATE)" -o $(BUILD_PATH)$(COMPONENT_SLUG)-linux-arm64 ; \ - GOOS=linux GOARCH=386 $(GO) build -ldflags "-X $(GO_RELEASE_PACKAGE_NAME).version=$(PROJECT_VERSION) -X $(GO_RELEASE_PACKAGE_NAME).build=$(PROJECT_BUILD_DATE)" -o $(BUILD_PATH)$(COMPONENT_SLUG)-linux-386 ; \ - GOOS=windows GOARCH=amd64 $(GO) build -ldflags "-X $(GO_RELEASE_PACKAGE_NAME).version=$(PROJECT_VERSION) -X $(GO_RELEASE_PACKAGE_NAME).build=$(PROJECT_BUILD_DATE)" -o $(BUILD_PATH)$(COMPONENT_SLUG)-windows ; \ - cd $(PROJECT_ROOT); + $(QUIET) $(DEVELOPMENT_SCRIPTS_PATH)/go-compile.sh $(SOURCE_PATH) $(BUILD_PATH) $(COMPONENT_SLUG) $(GO_RELEASE_PACKAGE_NAME) $(PROJECT_VERSION) $(PROJECT_BUILD_DATE) + + +.PHONY: go-lint +## Lint the files +go-lint: + $(QUIET) $(GOLINT) -set_exit_status ${PKG_LIST} + +.PHONY: go-test +## Run unittests +go-test: + $(QUIET) $(GO) test -short ${PKG_LIST} + +.PHONY: go-race +## Run data race detector +go-race: go-dep + $(QUIET) $(GO) test -race -short ${PKG_LIST} + +.PHONY: go-msan +## Run memory sanitizer +go-msan: go-dep + $(QUIET) $(GO) test -msan -short ${PKG_LIST} + +.PHONY: go-coverage +## Generate global code coverage report +go-coverage: + $(QUIET) $(DEVELOPMENT_SCRIPTS_PATH)/go-coverage.sh $(SOURCE_PATH) $(DEVELOPMENT_PATH)/report ; + +.PHONY: go-cover-html +## Generate global code coverage report in HTML +go-cover-html: + $(QUIET) $(DEVELOPMENT_SCRIPTS_PATH)/go-coverage.sh $(SOURCE_PATH) $(DEVELOPMENT_PATH)/report html; + +.PHONY: go-dep +## Get the dependencies +go-dep: + $(QUIET) cd $(SOURCE_PATH); $(GO) get -v -d ./... ; cd -; + diff --git a/development/makefiles/target-go-fetch-licenses.mk b/development/makefiles/target-go-fetch-licenses.mk index 65fe5cdc864b4fafa6cebf21920dff5f65a55a45..057b31b2e50357a44d09be7c654a14081dd6a27f 100644 --- a/development/makefiles/target-go-fetch-licenses.mk +++ b/development/makefiles/target-go-fetch-licenses.mk @@ -31,6 +31,6 @@ ifeq ($(GO_CURRENT_MODULE),) $(QUIET) $(ECHOERRORMARKER) "no go.mod file found, skipping fetching licenses" else $(ECHOMARKER) "Fetch licenses" - $(QUIET) cd $(SOURCE_PATH); $(GO_LICENSES_BIN) save $(GO_CURRENT_MODULE) $(GO_LICENSES_IGNORE_PACKAGES) --force --save_path $(DOCUMENTATION_PATH)licenses/ ; cd - + $(QUIET) cd $(SOURCE_PATH); $(GO_LICENSES_BIN) save $(GO_CURRENT_MODULE) $(PKG_LIST) --force --save_path $(DOCUMENTATION_PATH)licenses/ ; cd - endif diff --git a/development/makefiles/target-init-go-utilities.mk b/development/makefiles/target-init-go-utilities.mk index 586e755e369c5ccde329616c84f31aa3b8af543c..5efeb0e55ff347ad3cfe1a003503e29d9357e1b6 100644 --- a/development/makefiles/target-init-go-utilities.mk +++ b/development/makefiles/target-init-go-utilities.mk @@ -14,8 +14,7 @@ # targets can define directories as well. $(PROJECT_DIRECTORIES): - $(foreach path,$(PROJECT_DIRECTORIES),\ - $(shell $(MKDIR) -p $(path))) + $(foreach path,$(PROJECT_DIRECTORIES), $(shell $(MKDIR) -p $(path))) ## init go utilities project init-go-utilities: $(PROJECT_DIRECTORIES) $(PROJECT_ROOT).gitignore $(PROJECT_ROOT)README.md $(LICENSE_PATH)LICENSE diff --git a/development/makefiles/target-init-platform-part.mk b/development/makefiles/target-init-platform-part.mk index b252d4593481764fe2fb0c586d02e0c1c4dbe23f..4b8a15b1fadba5eb6ebfc69a3264e35a04ac7e41 100644 --- a/development/makefiles/target-init-platform-part.mk +++ b/development/makefiles/target-init-platform-part.mk @@ -74,59 +74,64 @@ define PLATFORM_PARTS_BUILD_PACKAGE_CONTENT "author": "schukai GmbH", "license": "see LICENSE file", "dependencies": { - "@schukai/component-form": "^2.0.2", - "@schukai/component-notify": "^2.0.0", - "@schukai/component-state": "^2.0.1", - "@schukai/component-style": "^0.6.1", - "@schukai/monster": "^2.0.16" + "@schukai/component-form": "^3.3.1", + "@schukai/component-notify": "^2.3.0", + "@schukai/component-state": "^2.3.0", + "@schukai/component-style": "^0.28.0", + "@schukai/monster": "^3.12.1" }, "devDependencies": { - "@peculiar/webcrypto": "^1.4.0", - "@semantic-release/changelog": "^6.0.1", - "@semantic-release/exec": "^6.0.3", - "@semantic-release/git": "^10.0.1", - "@semantic-release/gitlab": "^9.4.2", - "cli-real-favicon": "^0.0.8", - "@semantic-release/npm": "^9.0.1", - "autoprefixer": "^10.4.13", - "btoa": "^1.2.1", - "c8": "^7.12.0", - "chai": "^4.3.6", - "glob": "^8.0.3", - "chai-dom": "^1.11.0", - "clean-jsdoc-theme": "^4.1.6", - "create-polyfill-service-url": "^2.2.6", - "crypt": "^0.0.2", - "cssnano": "^5.1.14", - "esbuild": "^0.14.53", - "flow-bin": "^0.184.0", - "fs": "^0.0.1-security", - "graphviz": "^0.0.9", - "jsdoc": "^3.6.11", - "jsdoc-external-example": "github:volker-schukai/jsdoc-external-example", - "jsdom": "^19.0.0", - "jsdom-global": "^3.0.2", - "mocha": "^10.0.0", - "postcss": "^8.4.19", - "postcss-color-mod-function": "^3.0.3", - "postcss-fluid": "^1.4.2", - "postcss-for": "^2.1.1", - "postcss-import": "^15.0.0", - "postcss-mixins": "^9.0.4", - "postcss-nesting": "^10.2.0", - "postcss-normalize": "^10.0.1", - "postcss-responsive-type": "^1.0.0", - "postcss-strip-units": "^2.0.1", - "process": "^0.11.10", - "semantic-release": "^19.0.5", - "sinon": "^14.0.0", - "url": "^0.11.0", - "url-exist": "3.0.0", - "util": "^0.12.4", - "vite": "^3.2.3", - "vite-plugin-banner": "^0.6.1", - "vite-plugin-mkcert": "^1.10.1", - "vite-plugin-minify": "^1.5.2" + "@peculiar/webcrypto": "^1.4.1", + "@semantic-release/changelog": "^6.0.2", + "@semantic-release/exec": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "@semantic-release/gitlab": "^10.1.4", + "@semantic-release/npm": "^9.0.2", + "@vitejs/plugin-basic-ssl": "^1.0.1", + "autoprefixer": "^10.4.13", + "btoa": "^1.2.1", + "c8": "^7.12.0", + "chai": "^4.3.7", + "chai-dom": "^1.11.0", + "clean-jsdoc-theme": "^4.2.6", + "cli-real-favicon": "^0.0.8", + "create-polyfill-service-url": "^2.2.6", + "crypt": "^0.0.2", + "cssnano": "^5.1.14", + "esbuild": "^0.17.8", + "flow-bin": "^0.199.1", + "fs": "^0.0.1-security", + "glob": "^8.1.0", + "graphviz": "^0.0.9", + "jsdoc": "^4.0.0", + "jsdoc-external-example": "github:volker-schukai/jsdoc-external-example", + "jsdom": "^21.1.0", + "jsdom-global": "^3.0.2", + "mocha": "^10.2.0", + "npm-check-updates": "^16.7.4", + "postcss": "^8.4.21", + "postcss-color-mod-function": "^3.0.3", + "postcss-fluid": "^1.4.2", + "postcss-for": "^2.1.1", + "postcss-import": "^15.1.0", + "postcss-mixins": "^9.0.4", + "postcss-nesting": "^11.2.0", + "postcss-normalize": "^10.0.1", + "postcss-responsive-type": "^1.0.0", + "postcss-strip-units": "^2.0.1", + "process": "^0.11.10", + "semantic-release": "^20.1.0", + "sinon": "^15.0.1", + "svgo": "^3.0.2", + "url": "^0.11.0", + "url-exist": "3.0.1", + "util": "^0.12.5", + "vite": "^4.1.1", + "vite-plugin-banner": "^0.7.0", + "vite-plugin-list-directory-contents": "^1.4.5", + "vite-plugin-minify": "^1.5.2", + "vite-plugin-mkcert": "^1.13.0", + "vite-plugin-mpa": "^1.1.4" } } endef diff --git a/development/makefiles/target-init-webcomponent.mk b/development/makefiles/target-init-webcomponent.mk index 123b3f3954b983901d5e7d0e9bf55e9407ef0ab2..6460767f247feeb21a3a081f45be40615d1d0ce7 100644 --- a/development/makefiles/target-init-webcomponent.mk +++ b/development/makefiles/target-init-webcomponent.mk @@ -83,8 +83,9 @@ define WEBCOMPONENTS_PACKAGE_CONTENT "monster" ], "dependencies": { - "@popperjs/core": "^2.9.2", - "@schukai/monster": "^2.0.8" + "@popperjs/core": "^2.11.6", + "@schukai/component-style": "^0.27.1", + "@schukai/monster": "^3.10.1" }, "main": "source/component.mjs", "module": "source/component.mjs", @@ -123,40 +124,65 @@ define WEBCOMPONENTS_BUILD_PACKAGE_CONTENT "test": "npx mocha --recursive test/cases/", "web-test": "script/web-test.sh", "publish": "script/release-and-publish.sh", - "build-doc": "script/build-doc.sh" + "build-doc": "script/build-doc.sh", + "build-style": "node script/build-stylesheets.cjs ." }, "type": "module", "author": "schukai GmbH", "license": "see LICENSE file", "dependencies": { - "@popperjs/core": "^2.11.2", - "@schukai/monster": "^2.0.8" - }, + "@popperjs/core": "^2.11.6", + "@schukai/component-style": "^0.27.1", + "@schukai/monster": "^3.10.1" + }, "devDependencies": { - "@peculiar/webcrypto": "^1.4.0", - "btoa": "^1.2.1", - "c8": "^7.12.0", - "chai": "^4.3.6", - "chai-dom": "^1.11.0", - "clean-jsdoc-theme": "^4.1.6", - "create-polyfill-service-url": "^2.2.6", - "crypt": "^0.0.2", - "esbuild": "^0.14.53", - "flow-bin": "^0.184.0", - "fs": "^0.0.1-security", - "graphviz": "^0.0.9", - "jsdoc": "^3.6.11", - "jsdoc-external-example": "github:volker-schukai/jsdoc-external-example", - "jsdoc-plantuml": "^1.0.2", - "jsdom": "^19.0.0", - "jsdom-global": "^3.0.2", - "mocha": "^10.0.0", - "node-plantuml": "^0.9.0", - "sinon": "^14.0.0", - "url": "^0.11.0", - "url-exist": "3.0.0", - "util": "^0.12.4" - } + "@oss/web-components-build-tools": "^1.2.8", + "@peculiar/webcrypto": "^1.4.1", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.5", + "btoa": "^1.2.1", + "c8": "^7.12.0", + "chai": "^4.3.7", + "chai-dom": "^1.11.0", + "clean-jsdoc-theme": "^4.2.3", + "create-polyfill-service-url": "^2.2.6", + "crypt": "^0.0.2", + "cssnano": "^5.1.14", + "esbuild": "^0.17.5", + "flow-bin": "^0.199.1", + "fs": "0.0.1-security", + "glob": "^8.1.0", + "graphviz": "^0.0.9", + "jsdoc": "^4.0.0", + "jsdoc-external-example": "github:volker-schukai/jsdoc-external-example", + "jsdoc-plantuml": "^1.0.2", + "jsdom": "^21.1.0", + "jsdom-global": "^3.0.2", + "mocha": "^10.2.0", + "node-plantuml": "^0.9.0", + "postcss": "^8.4.21", + "postcss-fluid": "^1.4.2", + "postcss-for": "^2.1.1", + "postcss-import": "^15.1.0", + "postcss-load-config": "^4.0.1", + "postcss-mixins": "^9.0.4", + "postcss-nested": "^6.0.0", + "postcss-nesting": "^11.1.0", + "postcss-normalize": "^10.0.1", + "postcss-responsive-type": "^1.0.0", + "postcss-rtlcss": "^4.0.1", + "postcss-strip-units": "^2.0.1", + "rome": "^11.0.0", + "sinon": "^15.0.1", + "url": "^0.11.0", + "url-exist": "3.0.1", + "util": "^0.12.5", + "vite": "^4.1.1", + "vite-plugin-banner": "^0.7.0", + "vite-plugin-list-directory-contents": "^1.4.5", + "vite-plugin-minify": "^1.5.2", + "vite-plugin-mkcert": "^1.12.0" + } } endef diff --git a/development/makefiles/target-jsdoc-build.mk b/development/makefiles/target-jsdoc-build.mk index 332815163f9c0243d79b1f7ef2a1dce52b401eb1..2581d8535ce2a3dc424fd00c84f890a62b6f07ab 100644 --- a/development/makefiles/target-jsdoc-build.mk +++ b/development/makefiles/target-jsdoc-build.mk @@ -1,4 +1,3 @@ - ############################################################################################# ############################################################################################# ## @@ -7,7 +6,13 @@ ############################################################################################# ############################################################################################# -FIXBROKENPLANTUML := $(NODE_MODULES_DIR)jsdoc-plantuml/fixBrokenNodeJS.js +ifndef DOCUMENTATION_S3_PATH + $(error $(ERRORMARKER) DOCUMENTATION_S3_PATH is not defined, check your Makefile if jsdoc.mk is included) +endif + +ifndef FIXBROKENPLANTUML + $(error $(ERRORMARKER) FIXBROKENPLANTUML is not defined, check your Makefile if jsdoc.mk is included) +endif .PHONY: jsdoc-build ## generate js api docs @@ -20,4 +25,13 @@ $(FIXBROKENPLANTUML).fixed: $(ECHOMARKER) "fix broken plantuml" $(QUIET) chmod u+x $(FIXBROKENPLANTUML) $(QUIET) $(NODE) $(FIXBROKENPLANTUML) - $(QUIET) $(TOUCH) $(FIXBROKENPLANTUML).fixed \ No newline at end of file + $(QUIET) $(TOUCH) $(FIXBROKENPLANTUML).fixed + + + +.PHONY: jsdoc-to-s3 +## transfer doc to s3 +jsdoc-to-s3: jsdoc-build + $(ECHOMARKER) "transfer doc to s3" + $(QUIET) $(AWS) s3 --recursive --only-show-errors cp $(BUILD_PATH)docs $(DOCUMENTATION_S3_PATH) + diff --git a/development/makefiles/target-node-build.mk b/development/makefiles/target-node-build.mk index 98b4fed6df33172585d2e9e538b8f1d930389d1a..529bc2255af928d5845b20f1cc57a369c19a02f1 100644 --- a/development/makefiles/target-node-build.mk +++ b/development/makefiles/target-node-build.mk @@ -10,6 +10,14 @@ SPONGE ?= sponge EXECUTABLES = $(EXECUTABLES:-) $(SPONGE); + +.PHONY: node-create-polyfill +## create polyfill.io url +node-create-polyfill: $(MJS_RELATIVE_SOURCE_FILES) $(NODE_PACKAGES) + $(ECHOMARKER) "create and replace polyfill" + $(QUIET) $(DEVELOPMENT_SCRIPTS_PATH)create-polyfill.sh $(MJS_RELATIVE_SOURCE_FILES) + + .PHONY: node-build ## Build Node Components node-build: $(NODE_MODULES_MODIFIED) $(NODE_PACKAGES) @@ -21,4 +29,4 @@ node-build: $(NODE_MODULES_MODIFIED) $(NODE_PACKAGES) $(QUIET) $(SCRIPTS_PATH)update-version.sh $(QUIET) $(NPM) --prefix $(NODE_ROOT_DIR) run --if-present build - + diff --git a/development/makefiles/target-node-playground.mk b/development/makefiles/target-node-playground.mk new file mode 100644 index 0000000000000000000000000000000000000000..9ad098c4d8e0a89706f49582eb0d6cfe85b607d3 --- /dev/null +++ b/development/makefiles/target-node-playground.mk @@ -0,0 +1,13 @@ +############################################################################################# +############################################################################################# +## +## RUN PLAYGROUND +## +############################################################################################# +############################################################################################# + +.PHONY: node-run-playground +## run playground (vite) +node-run-playground: + $(ECHOMARKER) "run playground" + $(QUIET) cd $(DEVELOPMENT_PATH)playground; npx vite; diff --git a/development/makefiles/target-npm.mk b/development/makefiles/target-npm.mk index ebd4405246a2d4c8edadc68eeb727aada05099f4..29c8bcb3c2e5d58a35ba4a816d277dea485f9a5f 100644 --- a/development/makefiles/target-npm.mk +++ b/development/makefiles/target-npm.mk @@ -26,4 +26,9 @@ npm-preview: $(QUIET) $(NPM) --prefix $(NODE_ROOT_DIR) run preview - +.PHONY: npm-update-all +## Update Node Components +npm-update-all: + $(ECHOMARKER) "Search and Update recursive all node_modules (npm and pnpm)" + $(QUIET) $(FIND) . -type f ! -path '*node_modules*' -iname pnpm-lock.yaml -exec bash -c 'cd $$(dirname {} ) ; pwd; pnpm update -Lr ; cd - ' \; + $(QUIET) $(FIND) . -type f ! -path '*node_modules*' -iname package-lock.json -exec bash -c 'cd $$(dirname {} ) ; pwd; npm install -D npm-check-updates; npx npm-check-updates -u; npm install ; cd -' \; diff --git a/development/makefiles/target-phpunit.mk b/development/makefiles/target-phpunit.mk index 0d27705e2dc28308b287569d7fb1338a32c534bc..7120d7f08c5772cfa266338a0609ccb53ab9b239 100644 --- a/development/makefiles/target-phpunit.mk +++ b/development/makefiles/target-phpunit.mk @@ -57,7 +57,7 @@ $(PHPUNIT_SCRIPT_PATH)/unittests.sh: $(PHPUNIT_BIN): $(MKDIR) -p $(PHPUNIT_PATH) - $(WGET) -O $(PHPUNIT_BIN) https://phar.phpunit.de/phpunit-9.phar + $(WGET) -O $(PHPUNIT_BIN) https://phar.phpunit.de/phpunit-10.phar $(CHMOD) u+x $(PHPUNIT_BIN) $(CHMOD) u+x $(PHPUNIT_SCRIPT_PATH)/unittests.sh