diff --git a/COPYING b/COPYING index 2fcb217..88798ab 120000 --- a/COPYING +++ b/COPYING @@ -1 +1 @@ -/usr/share/automake-1.13/COPYING \ No newline at end of file +/usr/share/automake-1.15/COPYING \ No newline at end of file diff --git a/ChangeLog b/ChangeLog index e56e69b..e69de29 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,845 +0,0 @@ -2017-06-14 16:05 - - * [r147] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - scripts/build-in-docker.sh, scripts/resolve-debbuilddeps.sh, - scripts/resolve-rpmbuilddeps.sh: - fix rpm i.e. fedora / centos build - -2017-06-09 14:57 - - * [r146] scripts/ax_check_qt.m4, - scripts/ax_init_standard_project.m4, - scripts/resolve-debbuilddeps.sh, scripts/resolve-rpmbuilddeps.sh: - improvements for deb and rpm docker builds - -2017-06-02 11:56 - - * [r145] scripts/bootstrap.sh, scripts/build-in-docker.sh: - fixed rpm build - -2017-05-30 13:23 - - * [r144] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - scripts/resolve-rpmbuilddeps.sh: - rpm builds improved and fixed - -2017-05-24 11:39 - - * [r143] scripts/bootstrap.sh: - fixed rpm build - -2017-05-23 13:11 - - * [r142] scripts/bootstrap.sh: - fixed typo - -2017-05-19 14:53 - - * [r141] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - scripts/build-in-docker.sh: - improvement of rpm generation - -2017-05-03 14:55 - - * [r140] scripts/ax_check_qt.m4, - scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - scripts/resolve-rpmbuilddeps.sh: - fixes if project dir is a subdir in a repository (multiple - projects in one repository) - -2017-03-20 12:06 - - * [r139] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - scripts/build-in-docker.sh, scripts/resolve-debbuilddeps.sh, - scripts/resolve-rpmbuilddeps.sh, scripts/rpmsign.exp[ADD]: - allow package definitions for all (deb and rpm),or deb or rpm; - fixed rpmsign for fedora - -2017-03-17 15:43 - - * [r138] scripts/build-in-docker.sh: - add default parameter for windoze build - -2017-03-16 07:10 - - * [r137] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - new tag AX_BUILD_HTML_NPM - -2017-03-03 14:52 - - * [r136] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - added AX_USE_ETC to handle configuration files - -2017-02-06 22:55 - - * [r135] COPYING, ChangeLog, INSTALL, ax_init_standard_project.m4, - bootstrap.sh, resolve-debbuilddeps.sh, - scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - fixed debian dependencies - -2017-02-06 10:14 - - * [r134] scripts/resolve-debbuilddeps.sh: - fixed dependency resolve problem - -2017-02-02 20:03 - - * [r133] ChangeLog, bootstrap.sh, scripts/bootstrap.sh: - new list RUN_DEPENDS - -2017-02-02 16:49 - - * [r132] scripts/ax_init_standard_project.m4: - improved debian dependencies and resolve - -2017-02-02 16:27 - - * [r131] scripts/resolve-debbuilddeps.sh: - improved debian dependencies and resolve - -2017-02-02 16:06 - - * [r130] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - scripts/resolve-debbuilddeps.sh: - improved debian dependencies - -2017-01-07 18:56 - - * [r129] bootstrap.sh, build-in-docker.conf, debian/control.in, - scripts/bootstrap.sh: - fix typo - -2017-01-07 11:48 - - * [r128] ChangeLog, bootstrap.sh, build-in-docker.sh: - updated build environment - -2017-01-06 15:53 - - * [r127] COPYING, ChangeLog, INSTALL, bootstrap.sh, - build-in-docker.conf, build-in-docker.sh, debian/control.in, - scripts/bootstrap.sh: - improved build, tested on wily and xenial - -2016-12-26 12:21 - - * [r126] ChangeLog, bootstrap.sh, build-in-docker.sh, - debian/control.in, scripts/bootstrap.sh, - scripts/build-in-docker.sh: - fixed rpm and deb build - -2016-12-23 14:48 - - * [r125] build-in-docker.sh, scripts/bootstrap.sh, - scripts/build-in-docker.sh: - bugfixes - -2016-12-19 19:47 - - * [r124] COPYING, ChangeLog, INSTALL, - bootstrap-build-environment.spec.in, bootstrap.sh, - build-in-docker.sh, scripts/bootstrap.sh, - scripts/build-in-docker.sh, scripts/makefile.am: - rpm builds tested - -2016-12-19 18:29 - - * [r123] debian/changelog.in: - updated build system - -2016-12-19 18:06 - - * [r122] ChangeLog, ax_init_standard_project.m4, bootstrap.sh, - build-in-docker.conf, build-in-docker.sh, - resolve-debbuilddeps.sh, resolve-rpmbuilddeps.sh: - updated build system - -2016-12-12 14:13 - - * [r121] scripts/build-in-docker.sh: - new build mode for windows mingw cross compilation - -2016-12-11 21:51 - - * [r120] scripts/bootstrap.sh, scripts/build-in-docker.sh, - scripts/resolve-rpmbuilddeps.sh: - fix some typos - -2016-12-09 15:51 - - * [r119] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - scripts/build-in-docker.sh, scripts/resolve-debbuilddeps.sh: - fix build issues - utf-8 gpg uid still not supported for most rpm - based distros - -2016-12-09 07:11 - - * [r118] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - scripts/build-in-docker.sh: - rpm development - -2016-12-08 15:59 - - * [r117] scripts/ax_init_standard_project.m4, - scripts/build-in-docker.sh: - updates for rpm distros - -2016-12-07 21:44 - - * [r116] scripts/bootstrap.sh, scripts/build-in-docker.sh, - scripts/resolve-rpmbuilddeps.sh: - ready for mageia - -2016-12-07 16:00 - - * [r115] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - scripts/build-in-docker.sh, scripts/resolve-rpmbuilddeps.sh: - build improved for fedora, centos, opensuse - -2016-11-25 17:28 - - * [r114] COPYING, ChangeLog, INSTALL, ax_cxx_compile_stdcxx_11.m4, - ax_init_standard_project.m4, bootstrap.sh, build-in-docker.sh, - doc/footer.html.in[ADD], doc/header.html.in[ADD], - doc/plantuml.jar[ADD], doc/style.css[ADD], - resolve-debbuilddeps.sh, scripts/bootstrap.sh, - scripts/build-in-docker.sh: - updated build system - -2016-11-25 15:05 - - * [r113] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - scripts/build-in-docker.sh: - improved nodejs build on old systems - -2016-11-25 11:37 - - * [r112] scripts/bootstrap.sh, scripts/build-in-docker.sh: - fix path creation bug - -2016-11-22 15:57 - - * [r111] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - improved changelog; support bootstrap of node.js + express.js - project - -2016-11-19 12:00 - - * [r110] scripts/bootstrap.sh: - java is required for doxygen, e.g. on wily - -2016-10-17 14:25 - - * [r109] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - improved debian changelog; fixed spare new line after least - version number - -2016-09-14 14:58 - - * [r108] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - new possibility to generate perldoc - -2016-09-12 06:50 - - * [r107] scripts/ax_init_standard_project.m4: - add LICENSE and COPYING; fix workaround for plantuml - -2016-09-08 08:36 - - * [r106] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - plantuml now also works for old doxygen versions - -2016-09-07 21:00 - - * [r105] scripts/bootstrap.sh: - optimize documentation layout - -2016-09-07 20:35 - - * [r104] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - allow plantuml with doxygen < 1.8.11 - -2016-09-04 19:13 - - * [r103] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - fixed documentation problem: startuml is now part of doxygen - -2016-09-03 17:35 - - * [r102] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - bugfixes in uml documentation geeration - -2016-09-02 14:31 - - * [r101] scripts/ax_init_standard_project.m4: - bugfix - -2016-09-02 12:51 - - * [r100] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - scripts/doc[ADD], scripts/doc/plantuml.jar[ADD]: - added support for PlantUML in Doxygen using AX_USE_PLANTUML and - in doxygen use @startuml{image.png}...@enduml - -2016-09-02 08:39 - - * [r99] scripts/resolve-debbuilddeps.sh: - fix docker build with new docker release - -2016-09-01 14:03 - - * [r98] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - first step to support nodejs - -2016-08-26 14:18 - - * [r97] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - updated documentation build - -2016-08-25 21:42 - - * [r96] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - documentation improved - -2016-08-25 15:00 - - * [r95] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - better doxygen - -2016-08-24 14:54 - - * [r94] scripts/bootstrap.sh: - create dummy test file - -2016-08-19 16:07 - - * [r93] scripts/ax_cxx_compile_stdcxx_11.m4: - fix C++11 detection - -2016-08-19 14:54 - - * [r92] ax_cxx_compile_stdcxx_11.m4, ax_init_standard_project.m4, - bootstrap.sh, build-in-docker.sh, makefile_test.inc.am[ADD], - resolve-rpmbuilddeps.sh, scripts/ax_init_standard_project.m4, - scripts/bootstrap.sh, scripts/makefile_test.inc.am[ADD], - sql-to-dot.sed: - prepare to include makefiles - -2016-08-17 07:25 - - * [r91] ax_cxx_compile_stdcxx_11.m4, - scripts/ax_cxx_compile_stdcxx_11.m4, - scripts/ax_init_standard_project.m4: - allow c++14 - -2016-07-29 19:06 - - * [r90] scripts/build-in-docker.sh: - pass HOME - -2016-07-29 15:21 - - * [r89] scripts/sql-to-dot.sed: - improved sql documentation - -2016-05-31 13:47 - - * [r88] scripts/bootstrap.sh: - abort on error - -2016-05-13 15:03 - - * [r87] scripts/bootstrap.sh, scripts/resolve-rpmbuilddeps.sh: - fix project logo in doxygen; allow to add repositories in rpm - build - -2016-05-11 13:18 - - * [r86] bootstrap.sh, scripts/bootstrap.sh: - fix logo in doxygen - -2016-05-10 08:26 - - * [r85] ChangeLog, ax_init_standard_project.m4, bootstrap.sh, - build-in-docker.conf[ADD], scripts/ax_init_standard_project.m4, - scripts/bootstrap.sh: - set ARCH variable to system architecture - -2016-05-05 10:10 - - * [r84] ChangeLog, autogen.sh[ADD], ax_init_standard_project.m4, - bootstrap.sh, build-in-docker.sh, mac-create-app-bundle.sh, - resolve-rpmbuilddeps.sh, scripts/ax_init_standard_project.m4, - scripts/build-in-docker.sh, scripts/makefile.am[ADD]: - updated build system - -2016-04-22 08:27 - - * [r83] scripts/build-in-docker.sh: - basic support for centos rpm docker build - -2016-04-04 14:55 - - * [r82] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - scripts/makefile.am[DEL], scripts/resolve-rpmbuilddeps.sh: - after migration to new svn server - -2016-02-25 08:58 marc - - * [r81] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - scripts/build-in-docker.sh, scripts/mac-create-app-bundle.sh: - support git and subversion; new possibility to set x_least_fix to - a fix value without automated increase - -2016-02-24 11:43 marc - - * [r80] scripts/ax_init_standard_project.m4: - add directory variables - -2016-01-20 15:56 marc - - * [r79] scripts/ax_init_standard_project.m4, - scripts/build-in-docker.sh: - build improvements - -2016-01-12 00:24 marc - - * [r78] ChangeLog, build-in-docker.sh, resolve-debbuilddeps.sh, - scripts/build-in-docker.sh: - build in docker with new option --wait - -2015-12-18 16:05 marc - - * [r77] build-in-docker.sh: - need upgrade on sid - -2015-12-14 12:35 marc - - * [r76] scripts/build-in-docker.sh, - scripts/resolve-debbuilddeps.sh: - merged changes - -2015-12-14 12:29 marc - - * [r75] ChangeLog, ax_init_standard_project.m4, bootstrap.sh, - build-in-docker.sh, resolve-debbuilddeps.sh, - scripts/build-in-docker.sh, scripts/resolve-debbuilddeps.sh: - better build in docker - -2015-12-04 08:36 marc - - * [r74] scripts/build-in-docker.sh: - distinguish by hw arch - -2015-12-04 07:06 marc - - * [r73] scripts/build-in-docker.sh: - build all in docker - -2015-12-02 15:58 marc - - * [r72] README, scripts/bootstrap.sh, scripts/build-in-docker.sh, - scripts/resolve-debbuilddeps.sh: - enhanced build in docker - -2015-11-25 15:25 marc - - * [r71] scripts/build-in-docker.sh: - updates - -2015-11-20 15:14 marc - - * [r70] scripts/ax_init_standard_project.m4: - updated - -2015-11-16 12:37 marc - - * [r69] doc/doxyfile.in: - SVG must not be interactive for embedding in redmine - -2015-11-13 16:06 marc - - * [r68] ChangeLog, ax_init_standard_project.m4, - bootstrap-build-environment.desktop.in[ADD], bootstrap.sh, - scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, - sql-to-dot.sed: - fixed icon and desktop file - -2015-11-11 16:03 marc - - * [r67] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - added icon and desktop file - -2015-11-11 12:45 marc - - * [r66] ChangeLog, README, bootstrap.sh, resolve-debbuilddeps.sh, - scripts/bootstrap.sh, scripts/test[ADD], - scripts/test/runtests.sh[ADD], sql-to-dot.sed[ADD]: - updated - -2015-11-10 15:52 marc - - * [r65] scripts/sql-to-dot.sed: - making it more robust - -2015-11-09 15:13 marc - - * [r64] scripts/bootstrap.sh, scripts/resolve-debbuilddeps.sh, - scripts/sql-to-dot.sed: - better documentation - -2015-11-07 10:47 marc - - * [r63] bootstrap.sh, scripts/bootstrap.sh: - there is no qt4-default - -2015-11-07 09:23 marc - - * [r62] bootstrap.sh, scripts/bootstrap.sh: - there is no qt4-default - -2015-11-07 00:20 marc - - * [r61] README: - set Section - -2015-11-07 00:11 marc - - * [r60] ChangeLog, ax_init_standard_project.m4, bootstrap.sh, - scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: - fixed debian readme issue - -2015-11-06 15:34 marc - - * [r59] scripts/sql-to-dot.sed[ADD]: - new script to convert sql schema files into graphviz dot - -2015-11-05 15:59 marc - - * [r58] README, scripts/ax_init_standard_project.m4, - scripts/bootstrap.sh: - some more improvements plus creation of trunk branches and tags - -2015-11-05 09:47 marc - - * [r57] ChangeLog, ax_init_standard_project.m4, bootstrap.sh, - build-in-docker.sh[ADD], resolve-debbuilddeps.sh: - updated build system - -2015-11-04 10:36 marc - - * [r56] scripts/bootstrap.sh, scripts/build-in-docker.sh[ADD], - scripts/makefile.am, scripts/resolve-debbuilddeps.sh: - new feature ./build-in-docker.sh to start a temporary ubuntu - docker container where the project is built and tested in$ - -2015-11-04 08:52 marc - - * [r55] README, bootstrap.sh, scripts/ax_init_standard_project.m4, - scripts/bootstrap.sh: - the new tag AX_BUILD_TEST allows to use tests without the need of - AX_USE_CPPUNIT, so only AX_BUILD_TEST can be used for testing - scripts. AX_USE_CPPUNIT calls AX_BUILD_TEST, so you don't need to - specify both - -2015-11-03 23:01 marc - - * [r54] debian/control.in: - set section - -2015-11-03 22:02 marc - - * [r53] AUTHORS: - AUTHOR updated to new homepage - -2015-11-03 15:38 marc - - * [r52] AUTHORS[ADD], COPYING[ADD], ChangeLog[ADD], INSTALL[ADD], - NEWS[ADD], README[ADD], aclocal.m4[DEL], ax_check_qt.m4, - ax_cxx_compile_stdcxx_11.m4, ax_init_standard_project.m4, - bootstrap-build-environment.spec.in[ADD], bootstrap.sh, - build-resource-file.sh, configure.ac[ADD], debian[ADD], - debian/changelog.in[ADD], debian/compat[ADD], - debian/control.in[ADD], debian/docs[ADD], debian/rules[ADD], - doc[ADD], doc/doxyfile.in[ADD], doc/makefile.am[ADD], - mac-create-app-bundle.sh, makefile.am[ADD], - resolve-debbuilddeps.sh, resolve-rpmbuilddeps.sh, scripts[ADD], - scripts/ax_check_qt.m4[CPY], - scripts/ax_cxx_compile_stdcxx_11.m4[CPY], - scripts/ax_init_standard_project.m4[CPY], - scripts/bootstrap.sh[CPY], scripts/build-resource-file.sh[CPY], - scripts/mac-create-app-bundle.sh[CPY], scripts/makefile.am[ADD], - scripts/resolve-debbuilddeps.sh[CPY], - scripts/resolve-rpmbuilddeps.sh[CPY]: - initial release for packaging - -2015-11-03 15:06 marc - - * [r51] ax_init_standard_project.m4, resolve-debbuilddeps.sh: - can be built in fresh docker container - -2015-11-03 15:05 marc - - * [r50] bootstrap.sh, resolve-debbuilddeps.sh: - some improvements - -2015-11-03 09:22 marc - - * [r49] resolve-debbuilddeps.sh: - except for variants, install al at once (it's faster); sudo or - not is the problem of the caller; also cleanup debian/control if - created (importan, otherwise with sudo, it belongs to root) - -2015-11-03 09:22 marc - - * [r48] ax_check_qt.m4, bootstrap.sh, resolve-debbuilddeps.sh: - except for variants, install al at once (it's faster); sudo or - not is the problem of the caller; also cleanup debian/control if - created (importan, otherwise with sudo, it belongs to root) - -2015-10-10 18:05 marc - - * [r47] ax_init_standard_project.m4, bootstrap.sh: - no search index when embedded in redmine - -2015-10-10 10:44 marc - - * [r46] ax_init_standard_project.m4, bootstrap.sh: - updated extra dists - -2015-10-07 07:42 marc - - * [r45] ax_init_standard_project.m4: - disable qt debug - -2015-09-23 08:11 marc - - * [r44] ax_check_qt.m4, ax_init_standard_project.m4, - resolve-rpmbuilddeps.sh: - sereveral improvements, also now possibility to use fixed version - minor ba adding a diff for least - -2015-09-09 15:01 marc - - * [r43] ax_check_qt.m4, bootstrap.sh, build-resource-file.sh[ADD], - resolve-debbuilddeps.sh, resolve-rpmbuilddeps.sh[ADD]: - new features and fixes - -2015-09-04 13:05 marc - - * [r42] resolve-builddeps.sh~[DEL]: - resolve build dependencies - -2015-09-04 13:04 marc - - * [r41] ax_init_standard_project.m4, bootstrap.sh, - resolve-builddeps.sh~[ADD], resolve-debbuilddeps.sh[ADD]: - resolve build dependencies - -2015-08-31 12:30 marc - - * [r40] bootstrap.sh: - fixed share path in debian packages - -2015-08-27 13:03 marc - - * [r39] ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh: - fixes from several projects - -2015-08-20 08:00 marc - - * [r38] ax_init_standard_project.m4, bootstrap.sh: - improvements mainly for rpm plus including make with flexible - targets - -2015-08-19 22:44 marc - - * [r37] ax_init_standard_project.m4, bootstrap.sh: - some small fixes for prinary initialization - to do: create root - makefile.am after configure.ac is setup - -2015-07-31 10:44 marc - - * [r36] ax_init_standard_project.m4, bootstrap.sh: - fixed version number and rpm issues - -2015-07-30 14:13 marc - - * [r35] ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh: - lot of improvements, i.e. for compiling rpms - -2015-07-23 12:16 marc - - * [r34] ax_check_qt.m4, ax_init_standard_project.m4: - use ${PKG_CONFOG} - -2015-07-23 12:02 marc - - * [r33] ax_init_standard_project.m4, bootstrap.sh: - typo in filename - -2015-07-22 05:29 marc - - * [r32] bootstrap.sh: - added rpm spec file template - -2015-07-21 13:44 marc - - * [r31] ax_check_qt.m4, ax_init_standard_project.m4: - improvements, mainly for mingw - -2015-07-16 13:54 marc - - * [r30] ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh, - mac-create-app-bundle.sh[ADD]: - improvements, mainly for mac - -2015-07-13 14:57 marc - - * [r29] ax_init_standard_project.m4: - improve package detection - -2015-07-13 12:18 marc - - * [r28] bootstrap.sh: - some bugfixes - -2015-07-13 08:58 marc - - * [r27] bootstrap.sh: - some bugfixes - -2015-07-09 12:22 marc - - * [r26] ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh: - some qt improvements - -2015-07-02 13:11 marc - - * [r25] ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh: - new qt features: language and resources - -2015-07-01 09:13 marc - - * [r24] AUTHORS[DEL], ax_init_standard_project.m4, bootstrap.sh: - updates, e.g. AUTHORS - -2015-06-24 09:26 marc - - * [r23] ax_init_standard_project.m4: - even more support for weird and sloppy packages - -2015-06-23 08:59 marc - - * [r22] ax_init_standard_project.m4: - even more improved way to find the necessary include path - -2015-06-23 08:48 marc - - * [r21] ax_init_standard_project.m4: - even more improved way to find the necessary include path - -2015-06-23 08:24 marc - - * [r20] ax_init_standard_project.m4: - improved way to find the necessary include path, even if module - writers did a sloppy job - -2015-05-18 09:21 marc - - * [r19] ax_init_standard_project.m4: - fix build on mac, fix wrong AX_PKG_CHECK - -2015-05-18 09:10 marc - - * [r18] ax_init_standard_project.m4: - bugfix in AX_PKG_REQUIRE - -2015-05-18 09:03 marc - - * [r17] ax_init_standard_project.m4: - bugfix in AX_PKG_REQUIRE - -2015-05-13 13:36 marc - - * [r16] ax_init_standard_project.m4: - improved check for required packages - -2015-05-12 13:33 marc - - * [r15] ax_check_qt.m4, ax_init_standard_project.m4: - allow package versions in package config dependencies - -2015-05-09 09:06 marc - - * [r14] ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh: - fixed dependencies in pkg-config - -2015-05-08 23:37 marc - - * [r13] ax_init_standard_project.m4, bootstrap.sh: - fixed the mac bug again, because last change was incompatible - with debian changelog format - -2015-05-08 22:43 marc - - * [r12] ax_init_standard_project.m4, bootstrap.sh: - build system fixed - -2015-05-07 14:35 marc - - * [r11] ax_init_standard_project.m4: - fixed mac issues - -2015-05-07 14:11 marc - - * [r10] ax_init_standard_project.m4: - Mac OSX does not support date -R - -2015-05-07 14:08 marc - - * [r9] ax_init_standard_project.m4: - Mac OSX does not support date -R - -2015-05-07 14:06 marc - - * [r8] ax_init_standard_project.m4: - error finding pkcs11 on Mac - -2015-05-07 14:04 marc - - * [r7] ax_init_standard_project.m4: - error finding pkcs11 on Mac - -2015-05-07 13:07 marc - - * [r6] bootstrap.sh: - Mac OSX does not support date -R - -2015-05-07 13:04 marc - - * [r5] ax_init_standard_project.m4: - Mac OSX does not support date -R - -2015-05-06 23:09 marc - - * [r4] bootstrap.sh: - better doxygen support - -2015-05-06 14:53 marc - - * [r3] ax_init_standard_project.m4, bootstrap.sh: - support scripts and new parameters --build --overwrite --rebuild - -2015-05-05 20:29 marc - - * [r2] AUTHORS[ADD], aclocal.m4[ADD], ax_check_qt.m4[ADD], - ax_cxx_compile_stdcxx_11.m4[ADD], - ax_init_standard_project.m4[ADD], bootstrap.sh[ADD]: - copied initial release from webtester - -2015-05-05 20:27 marc - - * [r1] .[ADD]: - initial structure - diff --git a/INSTALL b/INSTALL index 8b641e3..ddcdb76 120000 --- a/INSTALL +++ b/INSTALL @@ -1 +1 @@ -/usr/share/automake-1.13/INSTALL \ No newline at end of file +/usr/share/automake-1.15/INSTALL \ No newline at end of file diff --git a/ax_check_qt.m4 b/ax_check_qt.m4 index 2d88048..e0eecf2 100644 --- a/ax_check_qt.m4 +++ b/ax_check_qt.m4 @@ -275,8 +275,10 @@ AC_DEFUN([AX_QT_NO_KEYWORDS], [ AC_DEFUN([AX_INIT_QT], [ if test -n "${AX_ADDITIONAL_QT_RULES_HACK}"; then - test -f src/makefile.in && cat >> src/makefile.in <> "$f" <&2 > /dev/null); then AX_RPM_BUILD_DEPEND([$rpm_pkg]) fi -) ]) # make sure, a specific header exists @@ -1225,8 +1224,9 @@ AC_DEFUN([AX_ALL_DEPEND], [ # finish configuration - to be called instead of AC_OUTPUT AC_DEFUN([AX_OUTPUT], [ + AX_INIT_QT AX_DEB_RESOLVE AX_RPM_RESOLVE AC_OUTPUT - AX_INIT_QT + AC_MSG_NOTICE([configured for ${PACKAGE_NAME}-${VERSION}]) ]) diff --git a/bootstrap.sh b/bootstrap.sh index 9942410..c5df053 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -31,8 +31,9 @@ while test $# -gt 0; do (--configure|-c) configure=1;; (--docker|-d) docker=1;; (--build|-b) configure=1; build=1; buildtarget+=" distcheck";; - (--all|-a) shift; configure=1; build=1; buildtarget+=" all";; - (--clean) shift; configure=1; build=1; buildtarget+=" maintainer-clean";; + (--all|-a) configure=1; build=1; buildtarget+=" all";; + (--install|-i) configure=1; build=1; buildtarget+=" all install";; + (--clean) configure=1; build=1; buildtarget+=" maintainer-clean";; (--target|-t) shift; configure=1; build=1; buildtarget+=" $1";; (--overwrite|-o) overwrite=1;; (--rebuild|-r) rebuild=1;; @@ -53,6 +54,7 @@ OPTIONS --docker, -d build and run tests in a docker instance --build, -b build, also call ./configure && make distcheck --all, -a same as -b, but make target all + --install, -i same as -a, but add make install --clean same as -b, but make target maintainer-clean --target, -t same as -b, but specify target instead of distcheck --overwrite, -o overwrite all basic files (bootstrap.sh, m4-macros) @@ -138,10 +140,12 @@ GENERATED FILES * build-resource-file.sh - build resource.qrc file from a resource directory * sql-to-dot.sed - script to convert SQL schema files to graphviz dot in doxygen * mac-create-app-bundle.sh - script to create apple mac os-x app-bundle + * dependency-graph.sh - script to draw project dependencies + * template.sh - generic template for bash scripts * test/runtests.sh - template file to run test scripts, i.e. docker based * AUTHORS - replace your name in AUTHORS before first run * NEWS - empty file add your project's news - * README - add project description (first line is header, followed by an empty line) + * README (or README.md) - add project description (first line: header, followed by empty line) * configure.ac - global configuration file template * makefile.am - global makefile template * ${DEFAULT_PROJECT_NAME}.desktop.in - linux desktop file @@ -300,7 +304,91 @@ EOF shift; done -echo -en "\e[1m-> checking:\e[0m for version control system ..." +# check if stdout is a terminal... +if test -t 1; then + + # see if it supports colors... + ncolors=$(tput colors) + + if test -n "$ncolors" && test $ncolors -ge 8; then + bold="$(tput bold)" + underline="$(tput smul)" + standout="$(tput smso)" + normal="$(tput sgr0)" + black="$(tput setaf 0)" + red="$(tput setaf 1)" + green="$(tput setaf 2)" + yellow="$(tput setaf 3)" + blue="$(tput setaf 4)" + magenta="$(tput setaf 5)" + cyan="$(tput setaf 6)" + white="$(tput setaf 7)" + fi +fi + +notice() { + echo "${yellow}→ notice: ${bold}$*${normal}" +} + +running() { + echo -n "${bold}${blue}→ running: ${bold}${white}$*${normal} … " +} + +checking() { + echo -n "${bold}${blue}→ checking: ${bold}${white}$*${normal} … " +} + +generating() { + echo -n "${bold}${blue}→ generating: ${bold}${white}$*${normal} … " +} + +configuring() { + echo -n "${bold}${blue}→ configuring ${bold}${white}$1${normal}:" + shift + echo -n "${white}$*${normal} … " +} + +ignored() { + echo "${bold}${yellow}ignored $*${normal}" +} + +success() { + echo "${bold}${green}success $*${normal}" +} + +error() { + echo "${bold}${red}→ error: $1${normal}" + shift + if test -n "$*"; then + echo "${bold}$*${normal}" + fi + exit 1 +} + +run() { + check=1 + while test $# -gt 0; do + case "$1" in + (--no-check) check=0;; + (*) break;; + esac + shift; + done + running $* + result=$($* 2>&1) + res=$? + if test $res -ne 0; then + if test $check -eq 1; then + error "Failed with return code: $res" "$result" + else + ignored + fi + else + success + fi +} + +checking for version control system VCS="" VCSDEPENDS="" for path in . .. ../.. ../../..; do @@ -308,18 +396,18 @@ for path in . .. ../.. ../../..; do VCS="svn" VCSDEPENDS_DEB="svn2cl, subversion, subversion-tools," VCSDEPENDS_RPM="subversion, " - echo -e " \e[32msuccess\e[0m detected ${VCS}" + success detected ${VCS} break elif test -d ${path}/.git; then VCS="git" VCSDEPENDS_DEB="git2cl, git," VCSDEPENDS_RPM="git, " - echo -e " \e[32msuccess\e[0m detected ${VCS}" + success detected ${VCS} break fi done if test -z "$VCS"; then - echo -e " \e[33mignored\e[0m" + ignored fi HEADER='## @id '"\$Id\$"' @@ -347,38 +435,6 @@ CHEADER='/** @id '"\$Id\$"' ' -notice() { - echo -e "\e[1;33m$*\e[0m" -} - -run() { - check=1 - while test $# -gt 0; do - case "$1" in - (--no-check) check=0;; - (*) break;; - esac - shift; - done - echo -en "\e[1m-> running:\e[0m $* ..." - result=$($* 2>&1) - res=$? - if test $res -ne 0; then - if test $check -eq 1; then - echo -e " \e[31merror\e[0m" - echo -e "\e[1m*** Failed with return code: $res\e[0m" - if test -n "$result"; then - echo "$result" - fi - exit 1 - else - echo -e " \e[33mignored\e[0m" - fi - else - echo -e " \e[32msuccess\e[0m" - fi -} - testtag() { local IFS="|" egrep -q '^ *'"($*)"' *(\(.*)? *$' configure.ac @@ -431,18 +487,13 @@ to() { return 1 fi checkdir "$(dirname ${1})" - echo -en "\e[1m-> generating:\e[0m $1 ..." + generating $1 result=$(cat > "$1" 2>&1) res=$? if test $res -ne 0; then - echo -e " \e[31merror\e[0m" - echo -e "\e[1m*** Failed with return code: $res\e[0m" - if test -n "$result"; then - echo "$result" - fi - exit 1 + error "Failed with return code: $res" "$result" else - echo -e " \e[32msuccess\e[0m" + success fi run chmod $mode $1 if test $exists -eq 0; then @@ -484,24 +535,20 @@ copy() { } doxyreplace() { - echo -en "\e[1m-> doxyfile:\e[0m configure $1 ..." + configuring doxyfile $1 if sed -i 's|\(^'"$1"' *=\) *.*|\1'" $2"'|g' doc/doxyfile.in; then - echo -e " \e[32msuccess\e[0m" + success else - echo -e " \e[31merror\e[0m" - echo -e "\e[1m**** command: $0 $*\e[0m" - exit 1 + error $0 $* fi } doxyadd() { - echo -en "\e[1m-> doxyfile:\e[0m configure $1 ..." + configuring doxyfile $1 if sed -i '/^'"$1"' *=/a'"$1"' += '"$2" doc/doxyfile.in; then - echo -e " \e[32msuccess\e[0m" + success else - echo -e " \e[31merror\e[0m" - echo -e "\e[1m**** command: $0 $*\e[0m" - exit 1 + error $0 $* fi } @@ -512,13 +559,18 @@ vcs2cl() { else touch "ChangeLog" fi + if test -x $(which timeout); then + local TIMEOUT="timeout 10" + else + local TIMEOUT= + fi if test -x $(which ${VCS}2cl); then if test "${VCS}" = "git"; then - ${VCS}2cl > ChangeLog + $TIMEOUT ${VCS}2cl || true > ChangeLog elif test "${VCS}" = "svn"; then - ${VCS}2cl --break-before-msg -a -i + $TIMEOUT ${VCS}2cl --break-before-msg -a -i || true elif test -n "${VCS}"; then - ${VCS}2cl + $TIMEOUT ${VCS}2cl || true fi fi if test $exists -eq 0; then @@ -549,6 +601,8 @@ copy rpmsign.exp copy build-resource-file.sh copy sql-to-dot.sed copy mac-create-app-bundle.sh +copy dependency-graph.sh +copy template.sh AUTHOR=$(gpg -K 2>/dev/null | sed -n 's,uid *\(\[ultimate\] *\)\?,,p' | head -1) if test -z "${AUTHOR}"; then AUTHOR="FIRSTNAME LASTNAME (URL) " @@ -559,11 +613,18 @@ EOF to NEWS < /var/run/${PACKAGE_NAME}.pid # there are some useful defaults # do not edit this file, overwrite values in /etc/default/${PACKAGE_NAME} - EXEC_${PACKAGE_NAME^^}="/usr/bin/nodejs /usr/share/${PACKAGE_NAME}/nodejs/${PACKAGE_NAME}" - ${PACKAGE_NAME^^}_LOG="/var/log/${PACKAGE_NAME}.log" - ${PACKAGE_NAME^^}_USER="${PACKAGE_NAME}" - ${PACKAGE_NAME^^}_PORT="" + EXEC_${PACKAGE_NAME_UPPER}="/usr/bin/nodejs /usr/share/${PACKAGE_NAME}/nodejs/${PACKAGE_NAME}" + ${PACKAGE_NAME_UPPER}_LOG="/var/log/${PACKAGE_NAME}.log" + ${PACKAGE_NAME_UPPER}_USER="${PACKAGE_NAME}" + ${PACKAGE_NAME_UPPER}_PORT="" [ -r /etc/default/${PACKAGE_NAME} ] && . /etc/default/${PACKAGE_NAME} - if test -n "\${${PACKAGE_NAME^^}_USER}"; then - exec sudo -u "\${${PACKAGE_NAME^^}_USER}" \${EXEC_${PACKAGE_NAME^^}} \${${PACKAGE_NAME^^}_PORT} >> \${${PACKAGE_NAME^^}_LOG} 2>&1 + if test -n "\${${PACKAGE_NAME_UPPER}_USER}"; then + exec sudo -u "\${${PACKAGE_NAME_UPPER}_USER}" \${EXEC_${PACKAGE_NAME_UPPER}} \${${PACKAGE_NAME_UPPER}_PORT} >> \${${PACKAGE_NAME_UPPER}_LOG} 2>&1 else - exec \${EXEC_${PACKAGE_NAME^^}} \${${PACKAGE_NAME^^}_PORT} >> \${${PACKAGE_NAME^^}_LOG} 2>&1 + exec \${EXEC_${PACKAGE_NAME_UPPER}} \${${PACKAGE_NAME_UPPER}_PORT} >> \${${PACKAGE_NAME_UPPER}_LOG} 2>&1 fi end script pre-start script - ${PACKAGE_NAME^^}_LOG="/var/log/${PACKAGE_NAME}.log" + ${PACKAGE_NAME_UPPER}_LOG="/var/log/${PACKAGE_NAME}.log" [ -r /etc/default/${PACKAGE_NAME} ] && . /etc/default/${PACKAGE_NAME} # Date format same as (new Date()).toISOString() for consistency - echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> \${${PACKAGE_NAME^^}_LOG} + echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> \${${PACKAGE_NAME_UPPER}_LOG} end script pre-stop script - ${PACKAGE_NAME^^}_LOG="/var/log/${PACKAGE_NAME}.log" + ${PACKAGE_NAME_UPPER}_LOG="/var/log/${PACKAGE_NAME}.log" [ -r /etc/default/${PACKAGE_NAME} ] && . /etc/default/${PACKAGE_NAME} rm /var/run/${PACKAGE_NAME}.pid - echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> \${${PACKAGE_NAME^^}_LOG} + echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> \${${PACKAGE_NAME_UPPER}_LOG} end script EOF to --condition AX_USE_NODEJS nodejs/etc/systemd/system/${PACKAGE_NAME}.service < - $(head -1 README) + $DESCRIPTION -

$(head -1 README)

+

$DESCRIPTION

generated by bootstrap, please edit

@@ -1571,7 +1633,7 @@ EOF2 EOF to debian/docs < /dev/null; then + run libtoolize --force; +elif which glibtoolize > /dev/null; then + run glibtoolize --force; +else + echo "error: libtoolize not found" 1>&2 + exit 1 +fi +EOF1 +fi) automake -a autoconf EOF @@ -1779,15 +1860,24 @@ ${HEADER}SUBDIRS =${SUBDIRS} desktopdir = \${datadir}/applications desktop_DATA = @PACKAGE_DESKTOP@ -dist_pkgdata_DATA = @PACKAGE_ICON@ ax_check_qt.m4 bootstrap.sh \\ - resolve-rpmbuilddeps.sh autogen.sh \\ +dist_pkgdata_DATA = @PACKAGE_ICON@ +dist_noinst_DATA = ax_check_qt.m4 bootstrap.sh \\ + resolve-rpmbuilddeps.sh autogen.sh \\ ax_cxx_compile_stdcxx_11.m4 build-in-docker.sh \\ build-resource-file.sh \\ ax_init_standard_project.m4 \\ mac-create-app-bundle.sh resolve-debbuilddeps.sh \\ + dependency-graph.sh template.sh \\ sql-to-dot.sed -dist_doc_DATA = AUTHORS NEWS README COPYING INSTALL ChangeLog +dist_doc_DATA = AUTHORS NEWS $README COPYING INSTALL ChangeLog +$(if test -e README.md -a ! -e README; then +cat < /dev/null; then + run libtoolize --force; + elif which glibtoolize > /dev/null; then + run glibtoolize --force; + else + error libtoolize not found + fi + fi run automake -a run autoconf diff --git a/dependency-graph.sh b/dependency-graph.sh new file mode 100755 index 0000000..e7b77bc --- /dev/null +++ b/dependency-graph.sh @@ -0,0 +1,171 @@ +#!/bin/bash -e + +# template for bash scripts + +# internal use only +append_msg() { + if test $# -ne 0; then + echo -en ":\e[0m \e[1m$*" + fi + echo -e "\e[0m" +} + +# write a notice +notice() { + if test $# -eq 0; then + return + fi + echo -e "\e[1m$*\e[0m" 1>&3 +} + +# write error message +error() { + echo -en "\e[1;31merror" 1>&2 + append_msg $* 1>&2 +} + +# write a warning message +warning() { + echo -en "\e[1;33mwarning" 1>&2 + append_msg $* 1>&2 +} + +# write a success message +success() { + echo -en "\e[1;32msuccess" 1>&2 + append_msg $* 1>&2 +} + +# commandline parameter evaluation +files=${0%/*}/configure.ac +short=0 +while test $# -gt 0; do + case "$1" in + (--short|-s) short=1;; + (--help|-h) less < + +OPTIONS + + --help, -h show this help + --short, -s short graph with no external dependencies + + list of zero or more configure.ac files + (default: ${files}) + +DESCRIPTION + + Evaluates dependencies of all the given configure.ac file. By + default takes the local configure.ac. Outputs a graphwiz dot file + with the dependencies. Solid lines are required dependencies, dotted + lines are optional dependencies. + +EXAMPLE + + Evaluate all dependencies between all local subversion and git + projects, if they are in the path ~/svn and ~/git: + + $0 ~/svn/*/configure.ac ~/git/*/configure.ac + +EOF + exit;; + (*) files=$*; break;; + esac + if test $# -eq 0; then + error "missing parameter, try $0 --help"; exit 1 + fi + shift; +done + +# run a command, print the result and abort in case of error +# option: --no-check: ignore the result, continue in case of error +run() { + check=1 + while test $# -gt 0; do + case "$1" in + (--no-check) check=0;; + (*) break;; + esac + shift; + done + echo -en "\e[1m-> running:\e[0m $* ..." + result=$($* 2>&1) + res=$? + if test $res -ne 0; then + if test $check -eq 1; then + error "failed with return code: $res" + if test -n "$result"; then + echo "$result" + fi + exit 1 + else + warning "ignored return code: $res" + fi + else + success + fi +} + +# error handler +function traperror() { + set +x + local err=($1) # error status + local line="$2" # LINENO + local linecallfunc="$3" + local command="$4" + local funcstack="$5" + for e in ${err[@]}; do + if test -n "$e" -a "$e" != "0"; then + error "line $line - command '$command' exited with status: $e (${err[@]})" + if [ "${funcstack}" != "main" -o "$linecallfunc" != "0" ]; then + echo -n " ... error at ${funcstack} " + if [ "$linecallfunc" != "" ]; then + echo -n "called at line $linecallfunc" + fi + echo + fi + exit $e + fi + done + success + exit 0 +} + +# catch errors +trap 'traperror "$? ${PIPESTATUS[@]}" $LINENO $BASH_LINENO "$BASH_COMMAND" "${FUNCNAME[@]}" "${FUNCTION}"' ERR SIGINT INT TERM EXIT + +########################################################################################## + +filter() { + if test $short -eq 1; then + all=$(cat) + allowed=$(sed -n '/"\(.*\)" \[style=solid\];/{s//\1/;H};${x;s/\n//;s/\n/\\|/gp}' <<<"${all}") + sed -n '/"\('"${allowed}"'\)" -> "\('"${allowed}"'\)"/p' <<<"${all}" + else + cat + fi +} + +echo "digraph G {" +if test $short -eq 0; then + echo "node [style=dashed];" +fi +( + for file in $files; do + if ! test -e $file; then + error "file $file not found"; exit 1 + fi + sed -n ' + /^ *m4_define(x_package_name, */ {s//"/;s/ *).*/"/;h;s/.*/& [style=solid];/p} + /^ *AX_REQUIRE_QT/ {s/.*/"qt" -> /;G;s/\n//;s/.*/&;/p} + /^ *AX_PKG_REQUIRE(\[\?\([^],)]\+\)\]\?, \[\?\([^],)]\+\)\]\?.*/ {s//"\2" -> /;G;s/\n//;s/.*/&;/p} + /^ *AX_PKG_REQUIRE(\[\?\([^],)]\+\)\]\?.*/ {s//"\1" -> /;G;s/\n//;s/.*/&;/p} + /^ *AX_CHECK_QT/ {s/.*/"qt" -> /;G;s/\n//;s/.*/& [style=dashed];/p} + /^ *AX_PKG_CHECK(\[\?\([^],)]\+\)\]\?, \[\?\([^],)]\+\)\]\?.*/ {s//"\2" -> /;G;s/\n//;s/.*/& [style=dotted];/p} + /^ *AX_PKG_CHECK(\[\?\([^],)]\+\)\]\?.*/ {s//"\1" -> /;G;s/\n//;s/.*/& [style=dotted];/p} + ' $file + done +) | filter +echo "}" diff --git a/mac-create-app-bundle.sh b/mac-create-app-bundle.sh index d1f41a6..1b8f511 100755 --- a/mac-create-app-bundle.sh +++ b/mac-create-app-bundle.sh @@ -38,6 +38,7 @@ executablefile=$(ls -1 ${1}/Contents/MacOS/ | head -1) ! test -d ${3}/share || rmdir ${3}/share ! test -d ${3} || \ find ${3} -mindepth 1 -maxdepth 1 -exec mv {} ${1}/Contents/Resources/ \; +! test -d ${3}/include || rm -r ${3}/include ! test -d ${3} || rmdir ${3} ! test -d ${1}/tmp || rm -r ${1}/tmp diff --git a/scripts/mac-create-app-bundle.sh b/scripts/mac-create-app-bundle.sh index d1f41a6..1b8f511 100755 --- a/scripts/mac-create-app-bundle.sh +++ b/scripts/mac-create-app-bundle.sh @@ -38,6 +38,7 @@ executablefile=$(ls -1 ${1}/Contents/MacOS/ | head -1) ! test -d ${3}/share || rmdir ${3}/share ! test -d ${3} || \ find ${3} -mindepth 1 -maxdepth 1 -exec mv {} ${1}/Contents/Resources/ \; +! test -d ${3}/include || rm -r ${3}/include ! test -d ${3} || rmdir ${3} ! test -d ${1}/tmp || rm -r ${1}/tmp diff --git a/template.sh b/template.sh new file mode 100755 index 0000000..f800880 --- /dev/null +++ b/template.sh @@ -0,0 +1,160 @@ +#!/bin/bash -e + +########################################################################################## +#### template for bash scripts #### START BELOW ########################################## +########################################################################################## + +############################################################################ begin logging +# check if stdout is a terminal... +if test -t 1; then + + # see if it supports colors... + ncolors=$(tput colors) + + if test -n "$ncolors" && test $ncolors -ge 8; then + bold="$(tput bold)" + underline="$(tput smul)" + standout="$(tput smso)" + normal="$(tput sgr0)" + black="$(tput setaf 0)" + red="$(tput setaf 1)" + green="$(tput setaf 2)" + yellow="$(tput setaf 3)" + blue="$(tput setaf 4)" + magenta="$(tput setaf 5)" + cyan="$(tput setaf 6)" + white="$(tput setaf 7)" + fi +fi + +append_msg() { + if test $# -ne 0; then + echo -n ": ${bold}$*" + fi + echo "${normal}" +} + +# write a message +message() { + if test $# -eq 0; then + return + fi + echo "${bold}${while}$*${normal}" 1>&2 +} + +# write a success message +success() { + echo -n "${bold}${green}success" 1>&2 + append_msg $* 1>&2 +} + +# write a notice +notice() { + echo -n "${bold}${yellow}notice" 1>&2 + append_msg $* 1>&2 +} + +# write a warning message +warning() { + echo -en "${bold}${red}warning" 1>&2 + append_msg $* 1>&2 +} + +# write error message +error() { + echo -en "${bold}${red}error" 1>&2 + append_msg $* 1>&2 +} + +# run a command, print the result and abort in case of error +# option: --ignore: ignore the result, continue in case of error +run() { + ignore=1 + while test $# -gt 0; do + case "$1" in + (--ignore) ignore=0;; + (*) break;; + esac + shift; + done + echo -n "${bold}${yellow}running:${white} $*${normal} … " + set +e + result=$($* 2>&1) + res=$? + set -e + if test $res -ne 0; then + if test $ignore -eq 1; then + error "failed with return code: $res" + if test -n "$result"; then + echo "$result" + fi + exit 1 + else + warning "ignored return code: $res" + fi + else + success + fi +} + +############################################################################ error handler +function traperror() { + set +x + local err=($1) # error status + local line="$2" # LINENO + local linecallfunc="$3" + local command="$4" + local funcstack="$5" + IFS=" " + for e in ${err[@]}; do + if test -n "$e" -a "$e" != "0"; then + error "line $line - command '$command' exited with status: $e (${err[@]})" + if [ "${funcstack}" != "main" -o "$linecallfunc" != "0" ]; then + echo -n " ... error at ${funcstack} " 1>&2 + if [ "$linecallfunc" != "" ]; then + echo -n "called at line $linecallfunc" 1>&2 + fi + echo + fi + exit $e + fi + done + success + exit 0 +} + +# catch errors +trap 'traperror "$? ${PIPESTATUS[@]}" $LINENO $BASH_LINENO "$BASH_COMMAND" "${FUNCNAME[@]}" "${FUNCTION}"' ERR SIGINT INT TERM EXIT + + + +########################################################################################## +#### START HERE ########################################################################## +########################################################################################## + +######################################################### commandline parameter evaluation +while test $# -gt 0; do + case "$1" in + (--help|-h) less <