Browse code

Fix some log output. Fix ALL/NONE answers. Fix /usr/local/include checks. Fix CMake path generation. Add -tp to reduce trace output. Fix redirection file creation in dry run mode. Add support for the more optimistic mulle-build.

Nat! authored on 27-09-2016 17:23:16
Showing 15 changed files
... ...
@@ -11,23 +11,53 @@ repositories were always placed into the project root. Now you can
11 11
 specify the subdirectory like "src/embedded/foo" (relative to project root).
12 12
 
13 13
 Better fetch and build code checks, that dependencies, that are
14
-installed in /usr/local already need not be fetched again. This can
14
+installed in `/usr/local` already need not be fetched again. This can
15 15
 be helpful, when building brew packages (for example).
16 16
 
17
-* fixed a problem in the parsing of the repositories file
18
-* embedded repositories can now be placed at an arbitrary position within your project tree
19
-* changes in deeply embedded repositories are now better tracked
20
-* fixed some as of yet unknown bugs, by improving some path functions
21
-* new -c switch to enable checking `/usr/local/include for dependency libraries conveniently from the command line. Fix build to add /usr/local/include to build, if check_usr_local_include is YES.
17
+Support for `mulle-build` which has an in general more optimistic approach to
18
+life.
19
+
20
+
21
+### Commands
22
+
23
+* started on `mulle-bootstrap config`. First implemented setting is
24
+`warn_scripts`. You can turn off scripts warning, with
25
+`mulle-bootstrap config -on dont_warn_scripts`
26
+* renamed hidden option **-r** to **-l** (sorry)
27
+* **-f** option removed from build/fetch options, as it didn't do anything. The
28
+**-f** for mulle-bootstrap is still there though.
29
+* new **-c** switch to enable checking `/usr/local/include` for dependency libraries
30
+conveniently from the command line. Fix build to add `/usr/local/include` to
31
+build, if `check_usr_local_include` is YES.
32
+* remove obsolete `mulle-bootstrap-project.sh` and `mulle-bootstrap project`.
33
+The idea behind that has been moved to `mulle-build`.
34
+
35
+### Features
36
+
37
+* embedded repositories can now be placed at an arbitrary position within your
38
+project tree
22 39
 * allow build and fetch options to be passed to `bootstrap`
23 40
 * improved comments in repositories` and `embedded_repositories` templates
24 41
 * pass ADDICTIONS_DIR to build systems
25
-* renamed hidden option -r to -l (sorry)
26
-* remove obsolete mulle-bootstrap-project.sh
27
-* call warn scripts earlier, when bootstrapping
28
-* started on mulle-bootstrap config, first settings "warn_scripts"
29
-* turn off scripts warning, with `mulle-bootstrap config -on dont_warn_scripts`
42
+* improve optimistic support, by memorizing if a fetch, refresh, build went
43
+thru successfully
44
+
45
+### Cmake
46
+
47
+* fixed multiple path settings for cmake
48
+* a project can indicate its preferred CC or CXX compiler by files .CC and .CXX
49
+in it's project root. e.g. `echo "mulle-clang" > .CC`. This can be overridden
50
+by settings. It's there because I have problems when not specifying the compiler
51
+on the command line.
52
+
53
+### Bugfixes
30 54
 
55
+* fixed a problem in the parsing of the repositories file
56
+* fixed some as of yet unknown bugs, by improving some path functions
57
+* changes in deeply embedded repositories are now better tracked
58
+* call warn scripts earlier, when bootstrapping
59
+* fix dry run for commands with output redirection
60
+* fix ALL/NONE in yes no answers to work again
31 61
 
32 62
 2.0.1
33 63
 ===
... ...
@@ -120,6 +120,8 @@ bootstrap_nomagic_main()
120 120
    . mulle-bootstrap-build.sh
121 121
    . mulle-bootstrap-warn-scripts.sh
122 122
 
123
+   [ -z "${MULLE_BOOTSTRAP_REFRESH_SH}" ] && . mulle-bootstrap-refresh.sh
124
+
123 125
    # used for option handling only
124 126
    MULLE_BOOTSTRAP_WILL_BUILD="YES"
125 127
 
... ...
@@ -174,6 +176,7 @@ bootstrap_main()
174 176
    # logging and UNAME
175 177
 
176 178
    . mulle-bootstrap-logging.sh
179
+   . mulle-bootstrap-local-environment.sh
177 180
 
178 181
    trap trap_fail INT
179 182
 
... ...
@@ -227,6 +230,10 @@ bootstrap_main()
227 230
             MULLE_BOOTSTRAP_SETTINGS_FLIP_X="YES"
228 231
          ;;
229 232
 
233
+         -tp|--trace-ignores-paths)
234
+            MULLE_BOOTSTRAP_PATHS_FLIP_X="YES"
235
+         ;;
236
+
230 237
          -t|--trace)
231 238
             MULLE_BOOTSTRAP_TRACE="1848"
232 239
             COPYMOVEFLAGS="-v"
... ...
@@ -355,8 +362,20 @@ bootstrap_main()
355 362
       esac
356 363
    fi
357 364
 
365
+   local do_refresh
366
+
367
+   do_refresh="YES"
368
+
369
+   if [ "${MULLE_BOOTSTRAP_OPTIMISTIC}" = "YES" ]
370
+   then
371
+      if [ -e "${CLONESFETCH_SUBDIR}/.refresh_done" ]
372
+      then
373
+         do_refresh="NO"
374
+      fi
375
+   fi
376
+
358 377
    # some commands refresh before execution
359
-   if [ "${MULLE_BOOTSTRAP_OPTIMISTIC}" != "YES" ]
378
+   if [ "${do_refresh}" = "YES" ]
360 379
    then
361 380
       case "${command}" in
362 381
          bootstrap|nomagic|fetch)
... ...
@@ -89,7 +89,7 @@ bootstrap_auto_update_merge()
89 89
          log_fluff "Merging \"${settingname}\" from \"${srcfile}\""
90 90
 
91 91
          exekutor mv "${dstfile}" "${tmpfile}" || exit 1
92
-         exekutor merge_settings_in_front "${srcfile}" "${tmpfile}" > "${dstfile}"  || exit 1
92
+         redirect_exekutor "${dstfile}" exekutor merge_settings_in_front "${srcfile}" "${tmpfile}"  || exit 1
93 93
          exekutor rm "${tmpfile}" || exit 1
94 94
       else
95 95
          log_fluff "Copying \"${settingname}\" from \"${srcfile}\""
... ...
@@ -50,7 +50,6 @@ build_usage()
50 50
 usage:
51 51
    mulle-bootstrap build [-ck] [repos]*
52 52
 
53
-   -f         :  override dirty harry check
54 53
    -k         :  don't clean before building $defk
55 54
    -K         :  always clean before building $defkk
56 55
    -c <name>  :  configurations to build ($defc), separate with comma
... ...
@@ -546,6 +545,7 @@ find_compiler()
546 545
 {
547 546
    local compiler_name
548 547
    local name
548
+   local file
549 549
 
550 550
    name="$1"
551 551
    compiler_name="$2"
... ...
@@ -553,6 +553,15 @@ find_compiler()
553 553
    local compiler
554 554
 
555 555
    compiler="`read_build_setting "${name}" "${compiler_name}"`"
556
+   if [ -z "${compiler}" ]
557
+   then
558
+      file="${CLONESFETCH_SUBDIR}/${name}/.${compiler_name}"
559
+      compiler="`cat "${file}" 2>/dev/null`"
560
+      if [  ! -z "${compiler}" ]
561
+      then
562
+         log_verbose "Compiler ${C_RESET_BOLD}${compiler_name}${C_VERBOSE} set to ${C_MAGENTA}${C_BOLD}${compiler}${C_VERBOSE} found in \"${file}\""
563
+      fi
564
+   fi
556 565
 
557 566
    case "${UNAME}" in
558 567
       mingw)
... ...
@@ -783,35 +792,35 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
783 792
 
784 793
       if [ ! -z "${suffixsubdir}" ]
785 794
       then
786
-         frameworklines="`add_path "${frameworklines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}${suffixsubdir}/${FRAMEWORK_DIR_NAME}"`"
787
-         librarylines="`add_path "${librarylines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}${suffixsubdir}/${LIBRARY_DIR_NAME}"`"
795
+         frameworklines="`add_cmake_path "${frameworklines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}${suffixsubdir}/${FRAMEWORK_DIR_NAME}"`"
796
+         librarylines="`add_cmake_path "${librarylines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}${suffixsubdir}/${LIBRARY_DIR_NAME}"`"
788 797
       fi
789 798
 
790 799
       if [ ! -z "${mappedsubdir}" -a "${mappedsubdir}" != "${suffixsubdir}" ]
791 800
       then
792
-         frameworklines="`add_path "${frameworklines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}${mappedsubdir}/${FRAMEWORK_DIR_NAME}"`"
793
-         librarylines="`add_path "${librarylines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}${mappedsubdir}/${LIBRARY_DIR_NAME}"`"
801
+         frameworklines="`add_cmake_path "${frameworklines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}${mappedsubdir}/${FRAMEWORK_DIR_NAME}"`"
802
+         librarylines="`add_cmake_path "${librarylines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}${mappedsubdir}/${LIBRARY_DIR_NAME}"`"
794 803
       fi
795 804
 
796 805
       if [ ! -z "${fallbacksubdir}" -a "${fallbacksubdir}" != "${suffixsubdir}" -a "${fallbacksubdir}" != "${mappedsubdir}" ]
797 806
       then
798
-         frameworklines="`add_path "${frameworklines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}${fallbacksubdir}/${FRAMEWORK_DIR_NAME}"`"
799
-         librarylines="`add_path "${librarylines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}${fallbacksubdir}/${LIBRARY_DIR_NAME}"`"
807
+         frameworklines="`add_cmake_path "${frameworklines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}${fallbacksubdir}/${FRAMEWORK_DIR_NAME}"`"
808
+         librarylines="`add_cmake_path "${librarylines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}${fallbacksubdir}/${LIBRARY_DIR_NAME}"`"
800 809
       fi
801 810
 
802
-      includelines="`add_path "${includelines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}/${HEADER_DIR_NAME}"`"
803
-      includelines="`add_path "${includelines}" "${nativewd}/${REFERENCE_ADDICTION_SUBDIR}/${HEADER_DIR_NAME}"`"
811
+      includelines="`add_cmake_path "${includelines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}/${HEADER_DIR_NAME}"`"
812
+      includelines="`add_cmake_path "${includelines}" "${nativewd}/${REFERENCE_ADDICTION_SUBDIR}/${HEADER_DIR_NAME}"`"
804 813
 
805
-      librarylines="`add_path "${librarylines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}/${LIBRARY_DIR_NAME}"`"
806
-      librarylines="`add_path "${librarylines}" "${nativewd}/${REFERENCE_ADDICTION_SUBDIR}/${LIBRARY_DIR_NAME}"`"
814
+      librarylines="`add_cmake_path "${librarylines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}/${LIBRARY_DIR_NAME}"`"
815
+      librarylines="`add_cmake_path "${librarylines}" "${nativewd}/${REFERENCE_ADDICTION_SUBDIR}/${LIBRARY_DIR_NAME}"`"
807 816
 
808
-      frameworklines="`add_path "${frameworklines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}/${FRAMEWORK_DIR_NAME}"`"
809
-      frameworklines="`add_path "${frameworklines}" "${nativewd}/${REFERENCE_ADDICTION_SUBDIR}/${FRAMEWORK_DIR_NAME}"`"
817
+      frameworklines="`add_cmake_path "${frameworklines}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}/${FRAMEWORK_DIR_NAME}"`"
818
+      frameworklines="`add_cmake_path "${frameworklines}" "${nativewd}/${REFERENCE_ADDICTION_SUBDIR}/${FRAMEWORK_DIR_NAME}"`"
810 819
 
811 820
       if [ "${CHECK_USR_LOCAL_INCLUDE}" = "YES" ]
812 821
       then
813
-         includelines="`add_path "${includelines}" "${USR_LOCAL_INCLUDE}"`"
814
-         librarylines="`add_path "${librarylines}" "${USR_LOCAL_LIB}"`"
822
+         includelines="`add_cmake_path "${includelines}" "${USR_LOCAL_INCLUDE}"`"
823
+         librarylines="`add_cmake_path "${librarylines}" "${USR_LOCAL_LIB}"`"
815 824
       fi
816 825
 
817 826
       local relative_srcdir
... ...
@@ -822,9 +831,9 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
822 831
 
823 832
       relative_srcdir="`relative_path_between "${owd}/${srcdir}" "${PWD}"`"
824 833
 
825
-      prefixbuild="`add_path "${prefixbuild}" "${nativewd}/${BUILD_DEPENDENCY_SUBDIR}"`"
826
-      dependenciesdir="`add_path "${dependenciesdir}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}"`"
827
-      addictionsdir="`add_path "${addictionsdir}" "${nativewd}/${REFERENCE_ADDICTION_SUBDIR}"`"
834
+      prefixbuild="`add_cmake_path "${prefixbuild}" "${nativewd}/${BUILD_DEPENDENCY_SUBDIR}"`"
835
+      dependenciesdir="`add_cmake_path "${dependenciesdir}" "${nativewd}/${REFERENCE_DEPENDENCY_SUBDIR}"`"
836
+      addictionsdir="`add_cmake_path "${addictionsdir}" "${nativewd}/${REFERENCE_ADDICTION_SUBDIR}"`"
828 837
 
829 838
 #      cmakemodulepath="\${CMAKE_MODULE_PATH}"
830 839
 #      if [ ! -z "${CMAKE_MODULE_PATH}" ]
... ...
@@ -863,7 +872,8 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
863 872
 
864 873
       memo="${IFS}"
865 874
 
866
-      IFS="${PATH_SEPARATOR}"
875
+      # cmake separator
876
+      IFS=";"
867 877
       for path in ${includelines}
868 878
       do
869 879
          other_cflags="`concat "${other_cflags}" "${includeprefix}${path}"`"
... ...
@@ -897,7 +907,7 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
897 907
       oldpath="$PATH"
898 908
       PATH="${BUILDPATH}"
899 909
 
900
-      logging_exekutor "${CMAKE}" -G "${CMAKE_GENERATOR}" \
910
+      logging_redirekt_exekutor "${logfile1}" "${CMAKE}" -G "${CMAKE_GENERATOR}" \
901 911
 "-DCMAKE_BUILD_TYPE=${mapped}" \
902 912
 "-DDEPENDENCIES_DIR=${dependenciesdir}" \
903 913
 "-DADDICTIONS_DIR=${addictionsdir}" \
... ...
@@ -914,7 +924,7 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
914 924
 "${cxx_compiler_line}" \
915 925
 ${localcmakeflags} \
916 926
 ${CMAKE_FLAGS} \
917
-"${relative_srcdir}" > "${logfile1}"
927
+"${relative_srcdir}"
918 928
       rval=$?
919 929
 
920 930
       if [ $rval -ne 0 ]
... ...
@@ -923,7 +933,7 @@ ${CMAKE_FLAGS} \
923 933
          build_fail "${logfile1}" "cmake"
924 934
       fi
925 935
 
926
-      logging_exekutor "${MAKE}" ${MAKE_FLAGS} ${local_make_flags} install > "${logfile2}"
936
+      logging_redirekt_exekutor "${logfile2}" "${MAKE}" ${MAKE_FLAGS} ${local_make_flags} install
927 937
       rval=$?
928 938
 
929 939
       PATH="${oldpath}"
... ...
@@ -1143,8 +1153,8 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
1143 1153
       CFLAGS="${other_cflags}" \
1144 1154
       CXXFLAGS="${other_cflags} ${other_cxxflags}" \
1145 1155
       LDFLAGS="${other_ldflags}" \
1146
-      logging_exekutor "${owd}/${srcdir}/configure" ${configureflags} \
1147
-          --prefix "${prefixbuild}" >> "${logfile1}" \
1156
+      logging_redirekt_exekutor "${logfile1}" "${owd}/${srcdir}/configure" ${configureflags} \
1157
+          --prefix "${prefixbuild}"
1148 1158
       rval=$?
1149 1159
 
1150 1160
       if [ $rval -ne 0 ]
... ...
@@ -1153,7 +1163,7 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
1153 1163
          build_fail "${logfile1}" "configure"
1154 1164
       fi
1155 1165
 
1156
-      logging_exekutor "${MAKE}" ${MAKE_FLAGS} install > "${logfile2}"
1166
+      logging_redirekt_exekutor "${logfile2}" "${MAKE}" ${MAKE_FLAGS} install
1157 1167
       rval=$?
1158 1168
 
1159 1169
       PATH="${oldpath}"
... ...
@@ -1439,7 +1449,7 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO}${info} in \
1439 1449
    mkdir_if_missing "${BUILDLOG_SUBDIR}"
1440 1450
 
1441 1451
    logfile="`build_log_name "${toolname}" "${name}" "${configuration}" "${targetname}" "${schemename}" "${sdk}"`"
1442
-   log_verbose "Build log will be in: ${C_RESET_BOLD}${logfile}${C_INFO}"
1452
+   log_verbose "Build log will be in: ${C_RESET_BOLD}${logfile}${C_VERBOSE}"
1443 1453
 
1444 1454
    set -f
1445 1455
 
... ...
@@ -1607,7 +1617,7 @@ HEADER_SEARCH_PATHS='${dependencies_header_search_path}' \
1607 1617
 LIBRARY_SEARCH_PATHS='${dependencies_lib_search_path}' \
1608 1618
 FRAMEWORK_SEARCH_PATHS='${dependencies_framework_search_path}'"
1609 1619
 
1610
-      logging_eval_exekutor "${cmdline}" > "${logfile}"
1620
+      logging_redirect_eval_exekutor "${logfile}" "${cmdline}"
1611 1621
       rval=$?
1612 1622
 
1613 1623
       PATH="${oldpath}"
... ...
@@ -2090,10 +2100,6 @@ get_source_dir()
2090 2100
 build_clones()
2091 2101
 {
2092 2102
    local clone
2093
-   local xdone
2094
-   local name
2095
-   local srcdir
2096
-   local srcsubdir
2097 2103
    local old
2098 2104
 
2099 2105
    old="${IFS:-" "}"
... ...
@@ -2108,12 +2114,21 @@ build_clones()
2108 2114
 
2109 2115
    run_build_root_settings_script "pre-build" "$@"
2110 2116
 
2117
+   # _parse_clone
2118
+   local name
2119
+   local url
2120
+   local branch
2121
+   local scm
2122
+   local tag
2123
+
2111 2124
    #
2112 2125
    # build order is there, because we want to have gits
2113 2126
    # and maybe later hgs
2114 2127
    #
2115 2128
    BUILT="`read_build_root_setting "build_ignore"`"
2116 2129
 
2130
+   local srcdir
2131
+
2117 2132
    if [ "$#" -eq 0 ]
2118 2133
    then
2119 2134
       clones="`read_fetch_setting "repositories"`"
... ...
@@ -2125,16 +2140,15 @@ build_clones()
2125 2140
          do
2126 2141
             IFS="$old"
2127 2142
 
2128
-            clone="`expanded_setting "${clone}"`"
2143
+            __parse_clone "${clone}"
2129 2144
 
2130
-            name="`canonical_name_from_clone "${clone}"`"
2131 2145
             srcdir="`get_source_dir "${name}"`"
2132 2146
 
2133 2147
             if [ -d "${srcdir}" ]
2134 2148
             then
2135 2149
                build_if_alive "${name}" "${srcdir}" || exit  1
2136 2150
             else
2137
-               if has_usr_local_include "${name}"
2151
+               if [ "${CHECK_USR_LOCAL_INCLUDE}" = "YES" ] && has_usr_local_include "${name}"
2138 2152
                then
2139 2153
                   :
2140 2154
                else
... ...
@@ -2152,7 +2166,7 @@ build_clones()
2152 2166
          then
2153 2167
             build_if_alive "${name}" "${srcdir}"|| exit 1
2154 2168
          else
2155
-            if has_usr_local_include "${name}"
2169
+            if [ "${CHECK_USR_LOCAL_INCLUDE}" = "YES" ] && has_usr_local_include "${name}"
2156 2170
             then
2157 2171
                :
2158 2172
             else
... ...
@@ -2229,10 +2243,6 @@ build_main()
2229 2243
             CLEAN_BEFORE_BUILD=
2230 2244
          ;;
2231 2245
 
2232
-         -f|--force)
2233
-            MULLE_BOOTSTRAP_DIRTY_HARRY="NO"
2234
-         ;;
2235
-
2236 2246
          -j|--cores)
2237 2247
             case "${UNAME}" in
2238 2248
                mingw)
... ...
@@ -2289,10 +2299,13 @@ build_main()
2289 2299
    build_complete_environment
2290 2300
 
2291 2301
    [ -z "${MULLE_BOOTSTRAP_GCC_SH}" ] && . mulle-bootstrap-gcc.sh
2302
+   [ -z "${MULLE_BOOTSTRAP_REPOSITORIES_SH}" ] && . mulle-bootstrap-repositories.sh
2292 2303
    [ -z "${MULLE_BOOTSTRAP_SCRIPTS_SH}" ] && . mulle-bootstrap-scripts.sh
2293 2304
 
2294 2305
    CHECK_USR_LOCAL_INCLUDE="`read_config_setting "check_usr_local_include" "NO"`"
2295 2306
 
2307
+   remove_file_if_present "${CLONESFETCH_SUBDIR}/.build_done"
2308
+
2296 2309
    if [ $# -eq 0 ]
2297 2310
    then
2298 2311
       log_fluff "Setting up dependencies directory as \"${DEPENDENCY_SUBDIR}\""
... ...
@@ -2326,6 +2339,8 @@ build_main()
2326 2339
       log_fluff "No dependencies have been generated"
2327 2340
    fi
2328 2341
 
2342
+   create_file_if_missing "${CLONESFETCH_SUBDIR}/.build_done"
2343
+
2329 2344
    log_fluff "::: build end :::"
2330 2345
 }
2331 2346
 
... ...
@@ -39,6 +39,8 @@ setup_clean_environment()
39 39
 
40 40
    CLEAN_EMPTY_PARENTS="`read_config_setting "clean_empty_parent_folders" "YES"`"
41 41
 
42
+   BUILD_CLEANABLE_FILES="${CLONESFETCH_SUBDIR}/.build_done"
43
+
42 44
    BUILD_CLEANABLE_SUBDIRS="`read_sane_config_path_setting "clean_folders" "${CLONESBUILD_SUBDIR}
43 45
 ${DEPENDENCY_SUBDIR}/tmp"`"
44 46
    OUTPUT_CLEANABLE_SUBDIRS="`read_sane_config_path_setting "output_clean_folders" "${DEPENDENCY_SUBDIR}"`"
... ...
@@ -65,11 +67,13 @@ _clean_usage()
65 67
    build   : useful to remove intermediate build files. it cleans
66 68
 ---
67 69
 ${BUILD_CLEANABLE_SUBDIRS}
70
+${BUILD_CLEANABLE_FILES}
68 71
 ---
69 72
 
70 73
    output  : useful to rebuild. It cleans
71 74
 ---
72 75
 ${BUILD_CLEANABLE_SUBDIRS}
76
+${BUILD_CLEANABLE_FILES}
73 77
 ${OUTPUT_CLEANABLE_SUBDIRS}
74 78
 ---
75 79
 
... ...
@@ -114,6 +118,20 @@ clean_asserted_folder()
114 118
 }
115 119
 
116 120
 
121
+clean_asserted_file()
122
+{
123
+   if [ -f "$1" ]
124
+   then
125
+      log_info "Deleting \"$1\""
126
+
127
+      remove_file_if_present "$1"
128
+   else
129
+      log_fluff "\"$1\" doesn't exist"
130
+   fi
131
+}
132
+
133
+
134
+
117 135
 clean_parent_folders_if_empty()
118 136
 {
119 137
    local dir
... ...
@@ -147,6 +165,30 @@ clean_parent_folders_if_empty()
147 165
 }
148 166
 
149 167
 
168
+clean_files()
169
+{
170
+   local files
171
+
172
+   files="$1"
173
+
174
+   local file
175
+   local old
176
+
177
+   old="${IFS:-" "}"
178
+
179
+   IFS="
180
+"
181
+   for file in ${files}
182
+   do
183
+      IFS="${old}"
184
+
185
+      clean_asserted_file "${file}"
186
+   done
187
+
188
+   IFS="${old}"
189
+}
190
+
191
+
150 192
 clean_directories()
151 193
 {
152 194
    local directories
... ...
@@ -161,9 +203,9 @@ clean_directories()
161 203
    old="${IFS:-" "}"
162 204
    IFS="
163 205
 "
164
-
165 206
    for directory in ${directories}
166 207
    do
208
+      IFS="${old}"
167 209
       clean_asserted_folder "${directory}"
168 210
       clean_parent_folders_if_empty "${directory}" "${PWD}"
169 211
       flag="YES"
... ...
@@ -193,18 +235,23 @@ _clean_execute()
193 235
    flag="NO"
194 236
    CLEAN_EMPTY_PARENTS="`read_config_setting "clean_empty_parent_folders" "YES"`"
195 237
 
238
+
196 239
    case "${COMMAND}" in
197 240
       build)
198 241
          BUILD_CLEANABLE_SUBDIRS="`read_sane_config_path_setting "clean_folders" "${CLONESBUILD_SUBDIR}
199 242
 ${DEPENDENCY_SUBDIR}/tmp"`"
243
+         BUILD_CLEANABLE_FILES="${CLONESFETCH_SUBDIR}/.build_done"
200 244
          clean_directories "${BUILD_CLEANABLE_SUBDIRS}" "${flag}"
245
+         clean_files "${BUILD_CLEANABLE_FILES}"
201 246
          return
202 247
       ;;
203 248
 
204 249
       dist|output|install)
205 250
          BUILD_CLEANABLE_SUBDIRS="`read_sane_config_path_setting "clean_folders" "${CLONESBUILD_SUBDIR}
206 251
 ${DEPENDENCY_SUBDIR}/tmp"`"
252
+         BUILD_CLEANABLE_FILES="${CLONESFETCH_SUBDIR}/.build_done"
207 253
          flag="`clean_directories "${BUILD_CLEANABLE_SUBDIRS}" "${flag}"`"
254
+         clean_files "${BUILD_CLEANABLE_FILES}"
208 255
       ;;
209 256
    esac
210 257
 
... ...
@@ -212,12 +259,14 @@ ${DEPENDENCY_SUBDIR}/tmp"`"
212 259
       output)
213 260
          OUTPUT_CLEANABLE_SUBDIRS="`read_sane_config_path_setting "output_clean_folders" "${DEPENDENCY_SUBDIR}"`"
214 261
          clean_directories "${OUTPUT_CLEANABLE_SUBDIRS}" "${flag}"
262
+         clean_files "${OUTPUT_CLEANABLE_FILES}"
215 263
          return
216 264
       ;;
217 265
 
218 266
       dist)
219 267
          OUTPUT_CLEANABLE_SUBDIRS="`read_sane_config_path_setting "output_clean_folders" "${DEPENDENCY_SUBDIR}"`"
220 268
          flag="`clean_directories "${OUTPUT_CLEANABLE_SUBDIRS}" "${flag}"`"
269
+         clean_files "${OUTPUT_CLEANABLE_FILES}"
221 270
       ;;
222 271
    esac
223 272
 
... ...
@@ -226,6 +275,7 @@ ${DEPENDENCY_SUBDIR}/tmp"`"
226 275
          INSTALL_CLEANABLE_SUBDIRS="`read_sane_config_path_setting "install_clean_folders" "${CLONES_SUBDIR}
227 276
 .bootstrap.auto"`"
228 277
          clean_directories "${INSTALL_CLEANABLE_SUBDIRS}" "${flag}"
278
+         clean_files "${INSTALL_CLEANABLE_FILES}"
229 279
          return
230 280
       ;;
231 281
    esac
... ...
@@ -243,6 +293,7 @@ ${ADDICTION_SUBDIR}
243 293
 ${EMBEDDED}"
244 294
          fi
245 295
          clean_directories "${DIST_CLEANABLE_SUBDIRS}" "${flag}"
296
+         clean_files "${DIST_CLEANABLE_FILES}"
246 297
       ;;
247 298
    esac
248 299
 }
... ...
@@ -45,7 +45,6 @@ usage:
45 45
    mulle-bootstrap ${COMMAND} [options] [repositories]
46 46
 
47 47
    Options
48
-      -f    :  override dirty harry check
49 48
       -u    :  try to update symlinked folders as well (not recommended)
50 49
       -nr   :  ignore .bootstrap folders of fetched repositories
51 50
       -e    :  fetch embedded repositories only
... ...
@@ -683,43 +682,36 @@ clone_repository()
683 682
 
684 683
    local tag
685 684
    local dstdir
686
-   local doit
687 685
 
688 686
    log_verbose "Clone ${name} if needed ..."
689 687
 
690 688
    tag="`read_repo_setting "${name}" "tag"`" #repo (sic)
691 689
    dstdir="${CLONESFETCH_SUBDIR}/${name}"
692 690
 
693
-   doit=1
694
-   if [ "${CHECK_USR_LOCAL_INCLUDE}" = "YES" ]
691
+   if [ "${CHECK_USR_LOCAL_INCLUDE}" = "YES" ] && has_usr_local_include "${name}"
695 692
    then
696
-      has_usr_local_include "${name}"
697
-      doit=$?
693
+      log_info "${C_MAGENTA}${C_BOLD}${name}${C_INFO} is a system library, so not fetching it"
694
+      return 1
698 695
    fi
699 696
 
700 697
    local stop
701 698
 
702 699
    stop=1
703 700
 
704
-   if [ $doit -ne 0 ]
705
-   then
706
-      log_fetch_action "${url}" "${dstdir}"
707
-
708
-      # mark the checkout progress, so that we don't do incomplete fetches and
709
-      # later on happily build
701
+   log_fetch_action "${url}" "${dstdir}"
710 702
 
711
-      create_file_if_missing "${CLONESFETCH_SUBDIR}/.fetch_update_started"
703
+   # mark the checkout progress, so that we don't do incomplete fetches and
704
+   # later on happily build
712 705
 
713
-      if checkout_repository "${name}" "${url}" "${dstdir}" "${branch}" "${tag}" "${scm}"
714
-      then
715
-         stop=0
716
-      fi
706
+   create_file_if_missing "${CLONESFETCH_SUBDIR}/.fetch_update_started"
717 707
 
718
-      remove_file_if_present "${CLONESFETCH_SUBDIR}/.fetch_update_started"
719
-   else
720
-      log_info "${C_MAGENTA}${C_BOLD}${name}${C_INFO} is a system library, so not fetching it"
708
+   if checkout_repository "${name}" "${url}" "${dstdir}" "${branch}" "${tag}" "${scm}"
709
+   then
710
+      stop=0
721 711
    fi
722 712
 
713
+   remove_file_if_present "${CLONESFETCH_SUBDIR}/.fetch_update_started"
714
+
723 715
    return $stop
724 716
 }
725 717
 
... ...
@@ -1096,7 +1088,7 @@ append_dir_to_gitignore_if_needed()
1096 1088
    fgrep -s -x "${directory}" .gitignore > /dev/null 2>&1
1097 1089
    if [ $? -ne 0 ]
1098 1090
    then
1099
-      exekutor echo "${directory}" >> .gitignore || fail "Couldn\'t append to .gitignore"
1091
+      redirect_exekutor .gitignore echo "${directory}"  || fail "Couldn\'t append to .gitignore"
1100 1092
       log_info "Added \"${directory}\" to \".gitignore\""
1101 1093
    fi
1102 1094
 }
... ...
@@ -1131,7 +1123,14 @@ ${url}"
1131 1123
 
1132 1124
    # dont't use symlinks anymore
1133 1125
    log_fluff "Remember embedded repository \"${name}\" via \"${embeddeddir}/${name}\""
1134
-   exekutor echo "${content}" > "${embeddeddir}/${name}"
1126
+
1127
+   # useful for old symlinks from previous version
1128
+   if [ -L "${embeddeddir}/${name}" ]
1129
+   then
1130
+      exekutor rm "${embeddeddir}/${name}"
1131
+   fi
1132
+   remove_file_if_present "${embeddeddir}/${name}"
1133
+   redirect_exekutor "${embeddeddir}/${name}" echo "${content}"
1135 1134
 }
1136 1135
 
1137 1136
 
... ...
@@ -1329,10 +1328,6 @@ _common_main()
1329 1328
             EMBEDDED_ONLY="YES"
1330 1329
          ;;
1331 1330
 
1332
-         -f)
1333
-            MULLE_BOOTSTRAP_DIRTY_HARRY="NO"
1334
-         ;;
1335
-
1336 1331
          -u|--update-symlinks)
1337 1332
             MULLE_BOOTSTRAP_UPDATE_SYMLINKS="YES"
1338 1333
          ;;
... ...
@@ -1393,6 +1388,9 @@ _common_main()
1393 1388
       fi
1394 1389
    fi
1395 1390
 
1391
+   remove_file_if_present "${CLONESFETCH_SUBDIR}/.refresh_done"
1392
+   remove_file_if_present "${CLONESFETCH_SUBDIR}/.fetch_done"
1393
+
1396 1394
    #
1397 1395
    # Run prepare scripts if present
1398 1396
    #
... ...
@@ -1438,6 +1436,7 @@ _common_main()
1438 1436
    fetch__run_fetch_settings_script "post-${COMMAND}" "$@"
1439 1437
 
1440 1438
    remove_file_if_present "${CLONESFETCH_SUBDIR}/.fetch_update_started"
1439
+   create_file_if_missing "${CLONESFETCH_SUBDIR}/.fetch_done"
1441 1440
 
1442 1441
    if read_yes_no_config_setting "update_gitignore" "YES"
1443 1442
    then
... ...
@@ -1465,7 +1464,6 @@ update_main()
1465 1464
 }
1466 1465
 
1467 1466
 
1468
-
1469 1467
 fetch_main()
1470 1468
 {
1471 1469
    log_fluff "::: fetch begin :::"
... ...
@@ -62,10 +62,39 @@ eval_exekutor()
62 62
 }
63 63
 
64 64
 
65
-logging_eval_exekutor()
65
+eval_redirect_append_exekutor()
66 66
 {
67
-   echo "==>" "$@" # to stdout
68
-   eval_exekutor "$@"
67
+   local output
68
+
69
+   output="$1"
70
+   shift
71
+
72
+   if [ "${MULLE_EXECUTOR_DRY_RUN}" = "YES" -o "${MULLE_EXECUTOR_TRACE}" = "YES" ]
73
+   then
74
+      if [ -z "${MULLE_LOG_DEVICE}" ]
75
+      then
76
+         echo "==>" "$@" ">" "${output}" >&2
77
+      else
78
+         echo "==>" "$@" ">" "${output}" > "${MULLE_LOG_DEVICE}"
79
+      fi
80
+   fi
81
+
82
+   if [ "${MULLE_EXECUTOR_DRY_RUN}" != "YES" ]
83
+   then
84
+      eval "$@" >> "${output}"
85
+   fi
86
+}
87
+
88
+
89
+logging_redirect_eval_exekutor()
90
+{
91
+   local output
92
+
93
+   output="$1"
94
+   shift
95
+
96
+   echo "==>" "$@" > "${output}" # to stdout
97
+   eval_redirect_append_exekutor "$1" "$@"
69 98
 }
70 99
 
71 100
 
... ...
@@ -88,10 +117,63 @@ exekutor()
88 117
 }
89 118
 
90 119
 
91
-logging_exekutor()
120
+redirect_exekutor()
92 121
 {
93
-   echo "==>" "$@" # to stdout
94
-   exekutor "$@"
122
+   local output
123
+
124
+   output="$1"
125
+   shift
126
+
127
+   if [ "${MULLE_EXECUTOR_DRY_RUN}" = "YES" -o "${MULLE_EXECUTOR_TRACE}" = "YES" ]
128
+   then
129
+      if [ -z "${MULLE_LOG_DEVICE}" ]
130
+      then
131
+         echo "==>" "$@" ">" "${output}"  >&2
132
+      else
133
+         echo "==>" "$@" ">" "${output}" > "${MULLE_LOG_DEVICE}"
134
+      fi
135
+   fi
136
+
137
+   if [ "${MULLE_EXECUTOR_DRY_RUN}" != "YES" ]
138
+   then
139
+      "$@" > "${output}"
140
+   fi
141
+}
142
+
143
+
144
+redirect_append_exekutor()
145
+{
146
+   local output
147
+
148
+   output="$1"
149
+   shift
150
+
151
+   if [ "${MULLE_EXECUTOR_DRY_RUN}" = "YES" -o "${MULLE_EXECUTOR_TRACE}" = "YES" ]
152
+   then
153
+      if [ -z "${MULLE_LOG_DEVICE}" ]
154
+      then
155
+         echo "==>" "$@" ">" "${output}"  >&2
156
+      else
157
+         echo "==>" "$@" ">" "${output}" > "${MULLE_LOG_DEVICE}"
158
+      fi
159
+   fi
160
+
161
+   if [ "${MULLE_EXECUTOR_DRY_RUN}" != "YES" ]
162
+   then
163
+      "$@" >> "${output}"
164
+   fi
165
+}
166
+
167
+
168
+logging_redirekt_exekutor()
169
+{
170
+   local output
171
+
172
+   output="$1"
173
+   shift
174
+
175
+   echo "==>" "$@" > "${output}"
176
+   redirect_append_exekutor "${output}" "$@"
95 177
 }
96 178
 
97 179
 
... ...
@@ -141,6 +223,23 @@ concat()
141 223
 }
142 224
 
143 225
 
226
+add_cmake_path()
227
+{
228
+   local line
229
+   local path
230
+
231
+   line="$1"
232
+   path="$2"
233
+
234
+   if [ -z "${line}" ]
235
+   then
236
+      echo "${path}"
237
+   else
238
+      echo "${line};${path}"
239
+   fi
240
+}
241
+
242
+
144 243
 add_path()
145 244
 {
146 245
    local line
... ...
@@ -382,6 +481,11 @@ _relative_path_between()
382 481
    local a
383 482
    local b
384 483
 
484
+   if [ "${MULLE_BOOTSTRAP_PATHS_FLIP_X}" = "YES" ]
485
+   then
486
+      set +x
487
+   fi
488
+
385 489
    # remove trailing '/' it upsets the code
386 490
 
387 491
    a="`echo "$1" | sed -e 's|/$||g'`"
... ...
@@ -391,6 +495,11 @@ _relative_path_between()
391 495
    [ -z "${b}" ] && internal_fail "Empty path (\$2)"
392 496
 
393 497
    __relative_path_between "${b}" "${a}"   # flip args (historic)
498
+
499
+   if [ "${MULLE_BOOTSTRAP_PATHS_FLIP_X}" = "YES" ]
500
+   then
501
+      set -x
502
+   fi
394 503
 }
395 504
 
396 505
 
... ...
@@ -678,6 +787,11 @@ simplify_path()
678 787
 {
679 788
    local path
680 789
 
790
+   if [ "${MULLE_BOOTSTRAP_PATHS_FLIP_X}" = "YES" ]
791
+   then
792
+      set +x
793
+   fi
794
+
681 795
    path="$1"
682 796
 
683 797
    local components
... ...
@@ -690,6 +804,12 @@ simplify_path()
690 804
       final_components="`_simplify_components  "${components}"`"
691 805
       final_path="`_path_from_components "${final_components}"`"
692 806
    fi
807
+
808
+   if [ "${MULLE_BOOTSTRAP_PATHS_FLIP_X}" = "YES" ]
809
+   then
810
+      set -x
811
+   fi
812
+
693 813
    echo "${final_path}"
694 814
 }
695 815
 
... ...
@@ -810,7 +930,7 @@ create_file_if_missing()
810 930
 
811 931
 remove_file_if_present()
812 932
 {
813
-   if [ -f "$1" ]
933
+   if [ -e "$1" ]
814 934
    then
815 935
       log_fluff "Removing \"$1\" (`pwd -P`)"
816 936
       exekutor chmod u+w "$1" || fail "Failed to make $1 writable"
... ...
@@ -962,6 +1082,7 @@ has_usr_local_include()
962 1082
    local include_name
963 1083
 
964 1084
    include_name="`echo "${name}" | tr '-' '_'`"
1085
+
965 1086
    [ -d "/usr/local/include/${include_name}" ]
966 1087
 }
967 1088
 
... ...
@@ -125,7 +125,7 @@ init_main()
125 125
 # mod-pbxproj
126 126
 #EOF
127 127
 
128
-      exekutor cat <<EOF > "${BOOTSTRAP_SUBDIR}/repositories"
128
+      redirect_exekutor "${BOOTSTRAP_SUBDIR}/repositories" cat <<EOF
129 129
 #
130 130
 # Add repository URLs to this file.
131 131
 #
... ...
@@ -151,7 +151,7 @@ init_main()
151 151
 #
152 152
 EOF
153 153
 
154
-      exekutor cat <<EOF > "${BOOTSTRAP_SUBDIR}/embedded_repositories"
154
+      redirect_exekutor "${BOOTSTRAP_SUBDIR}/embedded_repositories" cat <<EOF
155 155
 #
156 156
 # Add repository URLs to this file.
157 157
 #
... ...
@@ -177,7 +177,7 @@ EOF
177 177
 #
178 178
 #
179 179
 EOF
180
-      exekutor cat <<EOF > "${BOOTSTRAP_SUBDIR}/brews"
180
+      redirect_exekutor "${BOOTSTRAP_SUBDIR}/brews" cat <<EOF
181 181
 #
182 182
 # Add homebrew packages to this file (https://brew.sh/)
183 183
 #
... ...
@@ -195,33 +195,33 @@ EOF
195 195
 
196 196
       mkdir_if_missing "${BOOTSTRAP_SUBDIR}/MulleScion.example/bin"
197 197
 
198
-      exekutor cat <<EOF > "${BOOTSTRAP_SUBDIR}/MulleScion.example/Release.map"
198
+      redirect_exekutor "${BOOTSTRAP_SUBDIR}/MulleScion.example/Release.map" cat <<EOF
199 199
 # map configuration Release in project MulleScion to DebugRelease
200 200
 # leave commented out or delete file for no mapping
201 201
 # DebugRelease
202 202
 EOF
203 203
 
204
-      exekutor cat <<EOF > "${BOOTSTRAP_SUBDIR}/MulleScion.example/project"
204
+      redirect_exekutor "${BOOTSTRAP_SUBDIR}/MulleScion.example/project" cat <<EOF
205 205
 # Specify a xcodeproj to compile in project MulleScion instead of the default
206 206
 # leave commented out or delete file for default project
207 207
 # mulle-scion
208 208
 EOF
209 209
 
210
-      exekutor cat <<EOF > "${BOOTSTRAP_SUBDIR}/MulleScion.example/scheme"
210
+      redirect_exekutor "${BOOTSTRAP_SUBDIR}/MulleScion.example/scheme" cat <<EOF
211 211
 # Specify a scheme to compile in project MulleScion instead of the default
212 212
 # Might bite itself with TARGET, so only specify one.
213 213
 # leave commented out or delete file for default scheme
214 214
 # mulle-scion
215 215
 EOF
216 216
 
217
-      exekutor cat <<EOF > "${BOOTSTRAP_SUBDIR}/MulleScion.example/target"
217
+      redirect_exekutor "${BOOTSTRAP_SUBDIR}/MulleScion.example/target" cat <<EOF
218 218
 # Specify a target to compile in project MulleScion instead of the default.
219 219
 # Might bite itself with SCHEME, so only specify one.
220 220
 # leave commented out or delete file for default scheme
221 221
 # mulle-scion
222 222
 EOF
223 223
 
224
-      exekutor cat <<EOF > "${BOOTSTRAP_SUBDIR}/MulleScion.example/bin/post-install.sh"
224
+      redirect_exekutor "${BOOTSTRAP_SUBDIR}/MulleScion.example/bin/post-install.sh" cat <<EOF
225 225
 # Run some commands after installing project MulleScion
226 226
 # leave commented out or delete file for no action
227 227
 # chmod 755 ${BOOTSTRAP_SUBDIR}/MulleScion.example/bin/post-install.sh
... ...
@@ -230,7 +230,7 @@ EOF
230 230
 EOF
231 231
 #chmod 755 "${BOOTSTRAP_SUBDIR}/MulleScion.example/bin/post-install.sh"
232 232
 
233
-      exekutor cat <<EOF > "${BOOTSTRAP_SUBDIR}/MulleScion.example/bin/post-update.sh"
233
+      redirect_exekutor "${BOOTSTRAP_SUBDIR}/MulleScion.example/bin/post-update.sh" cat <<EOF
234 234
 # Run some commands after upgrading project MulleScion
235 235
 # leave commented out or delete file for no action
236 236
 # chmod 755 ${BOOTSTRAP_SUBDIR}/MulleScion.example/bin/post-update.sh
... ...
@@ -38,7 +38,13 @@ user_say_yes()
38 38
    local  x
39 39
 
40 40
    x="${MULLE_BOOTSTRAP_ANSWER:-ASK}"
41
-   while [ "$x" != "Y" -a "$x" != "YES" -a  "$x" != "N"  -a  "$x" != "NO"  -a "$x" != "" ]
41
+   while [ "$x" != "Y" -a \
42
+           "$x" != "YES" -a \
43
+           "$x" != "ALL" -a \
44
+           "$x" != "N"  -a  \
45
+           "$x" != "NO"  -a \
46
+           "$x" != "NONE" -a \
47
+           "$x" != "" ]
42 48
    do
43 49
       printf "${C_WARNING}%b${C_RESET} (y/${C_GREEN}N${C_RESET}) > " "$*" >&2
44 50
       read x
... ...
@@ -106,7 +106,7 @@ setup_mingw_buildenvironment()
106 106
    then
107 107
       LD="${linker}"
108 108
       export LD
109
-      log_verbose "Environment variable ${C_INFO}LD${C_FLUFF} set to ${C_RESET}\"${LD}\""
109
+      log_verbose "Environment variable ${C_INFO}LD${C_VERBOSE} set to ${C_RESET}\"${LD}\""
110 110
    else
111 111
       log_fluff "MSVC link.exe not found"
112 112
    fi
... ...
@@ -118,7 +118,7 @@ setup_mingw_buildenvironment()
118 118
    then
119 119
       CPP="${preprocessor}"
120 120
       export CPP
121
-      log_verbose "Environment variable ${C_INFO}CPP${C_FLUFF} set to ${C_RESET}\"${CPP}\""
121
+      log_verbose "Environment variable ${C_INFO}CPP${C_VERBOSE} set to ${C_RESET}\"${CPP}\""
122 122
    else
123 123
       log_fluff "mulle-mingw-cpp.sh not found"
124 124
    fi
... ...
@@ -409,10 +409,10 @@ bury_embedded_zombies()
409 409
    fi
410 410
 }
411 411
 
412
+
412 413
 #
413 414
 # ###
414 415
 #
415
-
416 416
 refresh_repositories()
417 417
 {
418 418
    local clone
... ...
@@ -636,6 +636,8 @@ refresh_main()
636 636
       exekutor rm -rf "${BOOTSTRAP_SUBDIR}.auto"
637 637
    fi
638 638
 
639
+   remove_file_if_present "${CLONESFETCH_SUBDIR}/.refresh_done"
640
+
639 641
    bootstrap_auto_create
640 642
 
641 643
    #
... ...
@@ -662,6 +664,8 @@ refresh_main()
662 664
       fi
663 665
    fi
664 666
 
667
+   create_file_if_missing "${CLONESFETCH_SUBDIR}/.refresh_done"
668
+
665 669
    log_fluff "::: refresh end :::"
666 670
 }
667 671
 
... ...
@@ -281,6 +281,7 @@ repository_directories_from_repos()
281 281
 # this sets valuse to variables that should be declared
282 282
 # in the caller!
283 283
 #
284
+#   # __parse_expanded_clone()
284 285
 #   local name
285 286
 #   local url
286 287
 #   local branch
... ...
@@ -308,6 +309,16 @@ __parse_expanded_clone()
308 309
 }
309 310
 
310 311
 
312
+# this sets valuse to variables that should be declared
313
+# in the caller!
314
+#
315
+#   # __parse_clone()
316
+#   local name
317
+#   local url
318
+#   local branch
319
+#   local scm
320
+#   local tag
321
+#
311 322
 __parse_clone()
312 323
 {
313 324
    local clone
... ...
@@ -321,6 +332,7 @@ __parse_clone()
321 332
 # this sets values to variables that should be declared
322 333
 # in the caller!
323 334
 #
335
+#   # __parse_embedded_clone
324 336
 #   local name
325 337
 #   local url
326 338
 #   local branch
... ...
@@ -210,7 +210,7 @@ run_build_settings_script()
210 210
    # can happen, if system libs override
211 211
    if [ ! -e "$srcdir" ]
212 212
    then
213
-      log_verbose "script \"${script}\" not executed, because ${srcdir} does not exist"
213
+      log_verbose "script \"${scriptname}\" not executed, because ${srcdir} does not exist"
214 214
       return 0
215 215
    fi
216 216
 
... ...
@@ -281,7 +281,7 @@ fetch__run_build_settings_script()
281 281
    # can happen, if system libs override
282 282
    if [ ! -e "$srcdir" ]
283 283
    then
284
-      log_verbose "script \"${script}\" not executed, because ${srcdir} does not exist"
284
+      log_verbose "script \"${scriptname}\" not executed, because ${srcdir} does not exist"
285 285
       return 0
286 286
    fi
287 287
 
... ...
@@ -144,7 +144,7 @@ _read_setting()
144 144
       then
145 145
          log_fluff "Setting ${C_MAGENTA}${C_BOLD}${name}${C_FLUFF} found in \"${file}\" as ${C_MAGENTA}${C_BOLD}${value}${C_FLUFF}"
146 146
       else
147
-         log_verbose "Setting ${C_MAGENTA}${C_BOLD}${name}${C_FLUFF} found in \"${file}\" as ${C_MAGENTA}${C_BOLD}${value}${C_FLUFF}"
147
+         log_verbose "Setting ${C_MAGENTA}${C_BOLD}${name}${C_VERBOSE} found in \"${file}\" as ${C_MAGENTA}${C_BOLD}${value}${C_VERBOSE}"
148 148
       fi
149 149
    fi
150 150
 
... ...
@@ -716,7 +716,6 @@ config_delete()
716 716
 }
717 717
 
718 718
 
719
-
720 719
 config_main()
721 720
 {
722 721
    local name
... ...
@@ -46,7 +46,7 @@ warn_scripts()
46 46
    local i
47 47
    local old
48 48
 
49
-   log_info "warn_scripts $1:$2:${DONT_ASK_AFTER_WARNING}:${MULLE_BOOTSTRAP_ANSWER}"
49
+   # log_info "warn_scripts $1:$2:${DONT_ASK_AFTER_WARNING}:${MULLE_BOOTSTRAP_ANSWER}"
50 50
 
51 51
    if [ -d "${bootstrapdir}" ]
52 52
    then