Browse code

Some minor improvements for building. Fix dry run some more.

Turn off tracing by default ? (Just a test)

Improve log_filename generation.
Less output during dispensal, when not using -v.
Reduce usage output to 24 lines.

Rename movie scripts, less output for -a.
Movie scripts are now working as a script, but
the session.html is borked :-/

Nat! authored on 16-10-2015 14:38:17
Showing 10 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,102 @@
1
+cd /tmp
2
+chown -R `id -u` mulle-bootstrap 2> /dev/null
3
+rm -rf mulle-bootstrap 2> /dev/null
4
+
5
+# sudo pip install TermRecord
6
+# brew install ttyrec
7
+
8
+TermRecord -o /tmp/session.html || exit 1
9
+
10
+set -x
11
+set -e
12
+echo "#" > /dev/null
13
+echo "# clone mulle-bootstrap from www.mulle-kybernetik.com" > /dev/null
14
+echo "#" > /dev/null
15
+
16
+git clone /Volumes/Source/srcM/mulle-bootstrap
17
+# git clone http://www.mulle-kybernetik.com/repositories/mulle-bootstrap
18
+
19
+echo "#" > /dev/null
20
+echo "# now install it, you can install it with itself, but you get" > /dev/null
21
+echo "# the developer environment too, which you may not want for now" > /dev/null
22
+echo "#" > /dev/null
23
+cd mulle-bootstrap
24
+./install.sh
25
+set +e
26
+mulle-bootstrap -h
27
+set -e
28
+sleep 4
29
+
30
+echo "#" > /dev/null
31
+echo "# lets try out a simple demo, that shows Xcode, cmake and configure" > /dev/null
32
+echo "# repositories being checked out and built" > /dev/null
33
+echo "#" > /dev/null
34
+cd demo
35
+ls -FAG
36
+sleep 1
37
+ls -FARG .bootstrap
38
+sleep 1
39
+cat .bootstrap/settings/zlib/dispense_headers_path
40
+cat .bootstrap/settings/Finch/xcode_public_headers
41
+cat .bootstrap/gits
42
+sleep 2
43
+
44
+echo "#" > /dev/null
45
+echo "# lets make a dry run, to see what would happen" > /dev/null
46
+echo "#" > /dev/null
47
+mulle-bootstrap -n fetch
48
+ls -FAG
49
+sleep 2
50
+
51
+echo "#" > /dev/null
52
+echo "# ok lets fetch them for real" > /dev/null
53
+echo "# the -a always chooses the default, which means clone" > /dev/null
54
+echo "#" > /dev/null
55
+
56
+mulle-bootstrap -a fetch
57
+ls -FAG
58
+sleep 2
59
+
60
+echo "#" > /dev/null
61
+echo "# time to build stuff, mulle-bootstrap w/o a command" > /dev/null
62
+echo "# does fetch and build in one step" > /dev/null
63
+echo "#" > /dev/null
64
+
65
+mulle-bootstrap -n build
66
+sleep 2
67
+
68
+echo "#" > /dev/null
69
+echo "# ok now for real" > /dev/null
70
+echo "#" > /dev/null
71
+mulle-bootstrap build
72
+ls -FARG dependencies
73
+sleep 1
74
+ls -FAG
75
+sleep 2
76
+
77
+
78
+echo "#"
79
+echo "# remove intermediate build files, but how ?" > /dev/null
80
+echo "# ask mulle-bootstrap"  > /dev/null
81
+echo "#"  > /dev/null
82
+set +e
83
+mulle-bootstrap -h
84
+mulle-bootstrap clean -h
85
+sleep 1
86
+set -e
87
+
88
+echo "#"  > /dev/null
89
+echo "# ok clean those intermediates, use -v to get more output"  > /dev/null
90
+echo "#"  > /dev/null
91
+mulle-bootstrap -v clean
92
+ls -FAG
93
+sleep 2
94
+
95
+echo "#" > /dev/null
96
+echo "# now get rid of repos and dependencies too, everything like" > /dev/null
97
+echo "# before. Use an environment variable to get even more output"  > /dev/null
98
+echo "#" > /dev/null
99
+MULLE_BOOTSTRAP_VERBOSE=FULL mulle-bootstrap clean dist
100
+ls -FAG
101
+
102
+exit
0 103
similarity index 54%
1 104
rename from TermRecord/tutorial.drehbuch
2 105
rename to ConsoleMovies/tutorial.drehbuch
... ...
@@ -1,38 +1,45 @@
1
-cd mulle-bootstrap/
1
+set -e
2
+set -x
3
+[ -d tutorial ] || exit 1
4
+[ -d /tmp/tut ] && chmod -R u+wX /tmp/tut && rm -rf /tmp/tut
5
+
2 6
 cp -R tutorial /tmp/tut
3 7
 cd /tmp/tut
4 8
 ls -FARG
5 9
 
6 10
 cd B
7
-mulle-bootstrap init
8
-echo "A" > .bootstrap/gits 
11
+mulle-bootstrap -a init
12
+echo "A" > .bootstrap/gits
9 13
 ls -FARG .bootstrap/
10 14
 rm -rf .bootstrap/brews .bootstrap/settings/MulleScion.example/
11 15
 ls -FARG .bootstrap/
12
-mulle-bootstrap 
16
+set +e
17
+mulle-bootstrap -y || echo "OK "
18
+
13 19
 ls dependencies/include
14
-cat ../B/src/B.h 
20
+cat ../B/src/B.h
15 21
 mkdir .bootstrap/settings/A
16 22
 echo "/usr/local/include/A" > .bootstrap/settings/A/xcode_public_headers
17
-mulle-bootstrap -v
18
-ls dependencies/include/A/A.h 
19
-xcodebuild 
20
-mulle-bootstrap xcode add
21
-xcodebuild 
23
+
24
+mulle-bootstrap -y
25
+ls dependencies/include/A/A.h
26
+xcodebuild
27
+mulle-bootstrap -y xcode add
28
+xcodebuild
22 29
 
23 30
 git init
24
-git add .bootstrap/gits .bootstrap/settings/A/xcode_public_headers src/B.? B.xcodeproj/.pbxproj CMakeLists.txt 
31
+git add .bootstrap/gits .bootstrap/settings/A/xcode_public_headers src/B.? B.xcodeproj/project.pbxproj CMakeLists.txt
25 32
 git commit -m "mercyful release"
26 33
 
27 34
 cd ../C
28
-cat src/C.h 
29
-mulle-bootstrap init
30
-echo "B" > .bootstrap/gits 
35
+cat src/C.h
36
+mulle-bootstrap -a init
37
+echo "B" > .bootstrap/gits
31 38
 rm -rf .bootstrap/brews .bootstrap/settings/MulleScion.example/
32 39
 mkdir -p .bootstrap/settings/B
33 40
 echo "/usr/local/include/B" > .bootstrap/settings/B/xcode_public_headers
34
-mulle-bootstrap 
41
+mulle-bootstrap -y
35 42
 ls -FARG  dependencies/include/
36 43
 ls -FARG .bootstrap.auto
37
-cat .bootstrap.auto/gits 
38
-cat .bootstrap.auto/settings/A/xcode_public_headers 
39 44
\ No newline at end of file
45
+cat .bootstrap.auto/gits
46
+cat .bootstrap.auto/settings/A/xcode_public_headers
40 47
\ No newline at end of file
... ...
@@ -1,3 +1,8 @@
1
+0.9.4
2
+===
3
+   Don't trace environment reads of MULLE_BOOTSTRAP_ANSWER and
4
+   MULLE_BOOTSTRAP_VERBOSE.
5
+
1 6
 0.9.3
2 7
 ===
3 8
    Ahem, problems with the new release script...
4 9
deleted file mode 100644
... ...
@@ -1,74 +0,0 @@
1
-cd /tmp
2
-rm -rf mulle-bootstrap 2> /dev/null
3
-TermRecord -o /tmp/session.html 
4
-
5
-#
6
-# clone mulle-bootstrap from www.mulle-kybernetik.com
7
-#
8
-git clone http://www.mulle-kybernetik.com/repositories/mulle-bootstrap
9
-
10
-#
11
-# now install it, you can install it with itself, but you get
12
-# the developer environment too, which you may not want for now
13
-#
14
-cd mulle-bootstrap
15
-./install.sh
16
-
17
-#
18
-# lets try out a simple demo, that shows Xcode, cmake and configure
19
-# repositories being checked out and built
20
-#
21
-cd demo
22
-ls -FAG
23
-ls -FARG .bootstrap
24
-cat .bootstrap/settings/zlib/dispense_headers_path
25
-cat .bootstrap/settings/Finch/xcode_public_headers
26
-cat .bootstrap/gits
27
-
28
-#
29
-# lets make a dry run, to see what would happen
30
-#
31
-mulle-bootstrap -n fetch
32
-ls -FAG
33
-
34
-#
35
-# ok lets fetch them for real
36
-# the -a always chooses the default, which means clone
37
-# 
38
-mulle-bootstrap -a fetch
39
-ls -FAG
40
-
41
-#
42
-# time to build stuff, mulle-bootstrap w/o a command
43
-# does fetch and build in one step
44
-#
45
-mulle-bootstrap -n build
46
-
47
-#
48
-# ok now for real
49
-#
50
-mulle-bootstrap build
51
-ls -FARG dependencies
52
-ls -FAG
53
-
54
-#
55
-# remove intermediate build files, but how ?
56
-# ask mulle-bootstrap
57
-#
58
-mulle-bootstrap -h
59
-mulle-bootstrap clean -h
60
-
61
-#
62
-# ok clean those intermediates, use -v to get more output
63
-#
64
-mulle-bootstrap -v clean 
65
-ls -FAG
66
-
67
-#
68
-# now get rid of repos and dependencies too, everything like 
69
-# before. Use an environment variable to get even more output
70
-#
71
-MULLE_BOOTSTRAP_VERBOSE=FULL mulle-bootstrap clean dist
72
-ls -FAG
73
-
74
-exit
... ...
@@ -1,4 +1,4 @@
1
-#! /bin/sh
1
+#! /bin/sh +x
2 2
 #
3 3
 #   Copyright (c) 2015 Nat! - Mulle kybernetiK
4 4
 #   All rights reserved.
... ...
@@ -70,6 +70,8 @@ then
70 70
    MULLE_BOOTSTRAP_TRACE="1848"
71 71
    export MULLE_BOOTSTRAP_TRACE
72 72
 
73
+   COPYMOVEFLAGS="-v"
74
+   export COPYMOVEFLAGS
73 75
    GITFLAGS="-v"
74 76
    export GITFLAGS
75 77
    shift
... ...
@@ -81,6 +83,9 @@ else
81 83
          MULLE_BOOTSTRAP_TRACE="VERBOSE"
82 84
          export MULLE_BOOTSTRAP_TRACE
83 85
       fi
86
+
87
+      COPYMOVEFLAGS="-v"
88
+      export COPYMOVEFLAGS
84 89
       GITFLAGS="-v"
85 90
       export GITFLAGS
86 91
       shift
... ...
@@ -92,6 +97,9 @@ else
92 97
             MULLE_BOOTSTRAP_TRACE="ALL"
93 98
             export MULLE_BOOTSTRAP_TRACE
94 99
          fi
100
+
101
+         COPYMOVEFLAGS="-v"
102
+         export COPYMOVEFLAGS
95 103
          GITFLAGS="-v"
96 104
          export GITFLAGS
97 105
          shift
... ...
@@ -114,19 +122,12 @@ usage()
114 122
 {
115 123
    cat <<EOF
116 124
 usage: mulle-bootstrap [-a|-y][-n][-v|-s|-t] [command] [--help]
117
-       version ${VERSION}
118
-
119
- Specify the -h or --help option after each command to get more help.
120
-
121 125
  Flags (-n must be first, if present)
122
-   -a        : always chose default answer to questions
123
-   -y        : always say yes to questions (scripts wont be checked)
124
-
126
+   -a -y     : default answer to questions (scripts wont be checked)
127
+               -a (clone preferred) -y (symlink preferred)
125 128
    -n        : do nothing creative or destructive
126
-
127
-   -v        : be more verbose (-V even more verbose)
128
-   -s        : be more terse
129
-   -t        : turns on shell tracing for development
129
+   -v -s -t  : -v be more verbose (-V even more verbose), -s be more terse
130
+               -t turns on shell tracing for development
130 131
 
131 132
  Common user commands:
132 133
    bootstrap : does fetch and build recursively [default]
... ...
@@ -142,6 +143,8 @@ usage: mulle-bootstrap [-a|-y][-n][-v|-s|-t] [command] [--help]
142 143
    build     : builds fetched repositories
143 144
    fetch     : fetches required repositories recursively.
144 145
    update    : updates repositories (pull).
146
+
147
+ Specify the -h or --help option after each command to get more help.
145 148
 EOF
146 149
 }
147 150
 
... ...
@@ -86,10 +86,10 @@ dispense_headers()
86 86
 
87 87
          log_fluff "Copying ${C_WHITE}${src}${C_FLUFF} to ${C_WHITE}${dst}${C_FLUFF}"
88 88
          exekutor find -x "${src}" ! -path "${src}" -depth 1 -type d -print0 | \
89
-            exekutor xargs -0 -J % mv -v -n % "${dst}"
89
+            exekutor xargs -0 -J % mv ${COPYMOVEFLAGS} -n % "${dst}"
90 90
          [ $? -eq 0 ]  || exit 1
91 91
          exekutor find -x "${src}" ! -path "${src}" -depth 1 \( -type f -o -type l \) -print0 | \
92
-            exekutor xargs -0 -J % mv -v -n % "${dst}"
92
+            exekutor xargs -0 -J % mv ${COPYMOVEFLAGS} -n % "${dst}"
93 93
          [ $? -eq 0 ]  || exit 1
94 94
 
95 95
          rmdir_safer "${src}"
... ...
@@ -131,7 +131,7 @@ dispense_binaries()
131 131
          log_fluff "Copying ${C_WHITE}${src}${C_FLUFF} to ${C_WHITE}${dst}${C_FLUFF}"
132 132
          mkdir_if_missing "${dst}"
133 133
          exekutor find -x "${src}" ! -path "${src}" \( -type "${findtype}" -o -type "${findtype2}" \) -depth 1 -print0 | \
134
-            exekutor xargs -0 -J % mv -v -n % "${dst}"
134
+            exekutor xargs -0 -J % mv ${COPYMOVEFLAGS} -n % "${dst}"
135 135
          [ $? -eq 0 ]  || exit 1
136 136
       else
137 137
          log_fluff "But threre are none"
... ...
@@ -162,7 +162,7 @@ collect_and_dispense_product()
162 162
       return 0
163 163
    fi
164 164
 
165
-   log_info "Collecting and dispensing ${C_WHITE}{name}${C_INFO} ${C_MAGENTA}`basename "${subdir}"`${C_INFO} products "
165
+   log_info "Collecting and dispensing ${C_WHITE}${name}${C_INFO} ${C_MAGENTA}`basename "${subdir}"`${C_INFO} products "
166 166
    #
167 167
    # probably should use install_name_tool to hack all dylib paths that contain .ref
168 168
    # (will this work with signing stuff ?)
... ...
@@ -356,7 +356,6 @@ create_dummy_dirs_against_warnings()
356 356
 }
357 357
 
358 358
 
359
-
360 359
 build_fail()
361 360
 {
362 361
    if [ -f "${1}" ]
... ...
@@ -370,6 +369,31 @@ build_fail()
370 369
 }
371 370
 
372 371
 
372
+build_log_name()
373
+{
374
+   local tool
375
+   local name
376
+
377
+   tool="$1"
378
+   shift
379
+   name="$1"
380
+   shift
381
+
382
+   local logfile
383
+   logfile="${BUILDLOG_SUBDIR}/${name}"
384
+
385
+   while [ $# -gt 0 ]
386
+   do
387
+      if [ ! -z "${1}" ]
388
+      then
389
+         logfile="${logfile}-${1}"
390
+      fi
391
+      shift
392
+   done
393
+
394
+   echo "${logfile}.${tool}.log"
395
+}
396
+
373 397
 #
374 398
 # remove old builddir, create a new one
375 399
 # depending on configuration cmake with flags
... ...
@@ -417,8 +441,9 @@ ${C_MAGENTA}${name}${C_INFO} for SDK ${C_MAGENTA}${sdk}${C_INFO} ..."
417 441
    local logfile2
418 442
 
419 443
    mkdir_if_missing "${BUILDLOG_SUBDIR}"
420
-   logfile1="${BUILDLOG_SUBDIR}/${name}-${configuration}-${sdk}.cmake.log"
421
-   logfile2="${BUILDLOG_SUBDIR}/${name}-${configuration}-${sdk}.make.log"
444
+
445
+   logfile1="`build_log_name "${name}" "cmake" "${configuration}" "${sdk}"`"
446
+   logfile2="`build_log_name "${name}" "make" "${configuration}" "${sdk}"`"
422 447
 
423 448
    log_info "Build logs will be in ${C_WHITE}${logfile1}${C_INFO} and ${C_WHITE}${logfile2}${C_INFO}"
424 449
 
... ...
@@ -476,7 +501,6 @@ ${sdk}" \
476 501
 }
477 502
 
478 503
 
479
-
480 504
 #
481 505
 # remove old builddir, create a new one
482 506
 # depending on configuration cmake with flags
... ...
@@ -524,8 +548,9 @@ ${C_MAGENTA}${name}${C_INFO} for SDK ${C_MAGENTA}${sdk}${C_INFO} ..."
524 548
    local logfile2
525 549
 
526 550
    mkdir_if_missing "${BUILDLOG_SUBDIR}"
527
-   logfile1="${BUILDLOG_SUBDIR}/${name}-${configuration}-${sdk}.configure.log"
528
-   logfile2="${BUILDLOG_SUBDIR}/${name}-${configuration}-${sdk}.make.log"
551
+
552
+   logfile1="`build_log_name "${name}" "configure" "${configuration}" "${sdk}"`"
553
+   logfile2="`build_log_name "${name}" "make" "${configuration}" "${sdk}"`"
529 554
 
530 555
    log_info "Build logs will be in ${C_WHITE}${logfile1}${C_INFO} and ${C_WHITE}${logfile2}${C_INFO}"
531 556
 
... ...
@@ -607,6 +632,12 @@ ${sdk}" \
607 632
 }
608 633
 
609 634
 
635
+_xcode_get_setting()
636
+{
637
+   eval_exekutor "xcodebuild -showBuildSettings $*" || fail "failed to read xcode settings"
638
+}
639
+
640
+
610 641
 xcode_get_setting()
611 642
 {
612 643
    local key
... ...
@@ -614,9 +645,7 @@ xcode_get_setting()
614 645
    key="$1"
615 646
    shift
616 647
 
617
-   eval "xcodebuild -showBuildSettings $*" | \
618
-   egrep "^[ ]*${key}" | \
619
-   sed 's/^[^=]*=[ ]*\(.*\)/\1/' || exit 1
648
+   _xcode_get_setting "$@" | egrep "^[ ]*${key}" | sed 's/^[^=]*=[ ]*\(.*\)/\1/'
620 649
 }
621 650
 
622 651
 
... ...
@@ -638,7 +667,7 @@ create_mangled_header_path()
638 667
    local headers
639 668
    local prefix
640 669
 
641
-   headers=`xcode_get_setting "${key}" $*`
670
+   headers=`xcode_get_setting "${key}" $*` || exit 1
642 671
    log_fluff "${key} read as \"${headers}\""
643 672
 
644 673
    case "${headers}" in
... ...
@@ -892,17 +921,7 @@ ${info} ..."
892 921
 
893 922
    mkdir_if_missing "${BUILDLOG_SUBDIR}"
894 923
 
895
-   logfile="${BUILDLOG_SUBDIR}/${name}-${configuration}-${sdk}-"
896
-   if [ ! -z "${targetname}" -o ! -z "${schemename}" ]
897
-   then
898
-      logfile="${logfile}-${targetname}${schemename}"
899
-   fi
900
-   if [ ! -z "${sdk}" ]
901
-   then
902
-      logfile="${logfile}-${sdk}"
903
-   fi
904
-
905
-   logfile="${logfile}.xcodebuild.log"
924
+   logfile="`build_log_name "${name}" "xcodebuild" "${configuration}" "${targetname}" "${schemename}" "${sdk}"`"
906 925
    log_info "Build log will be in ${C_WHITE}${logfile}${C_INFO}"
907 926
 
908 927
    set -f
... ...
@@ -934,6 +953,10 @@ ${info} ..."
934 953
 
935 954
 
936 955
       logfile="${owd}/${logfile}"
956
+      if [ "$MULLE_BOOTSTRAP_DRY_RUN" = "YES" ]
957
+      then
958
+         logfile="/dev/null"
959
+      fi
937 960
 
938 961
       # manually point xcode to our headers and libs
939 962
       # this is like manually doing xcode-setup
... ...
@@ -947,7 +970,7 @@ ${info} ..."
947 970
       #
948 971
       # TODO: need to figure out the correct mapping here
949 972
       #
950
-      inherited="`xcode_get_setting HEADER_SEARCH_PATHS ${arguments}`"
973
+      inherited="`xcode_get_setting HEADER_SEARCH_PATHS ${arguments}`" || exit 1
951 974
       path=`combined_escaped_search_path \
952 975
 "${owd}/${REFERENCE_DEPENDENCY_SUBDIR}/${HEADER_DIR_NAME}" \
953 976
 "/usr/local/include"`
... ...
@@ -958,7 +981,7 @@ ${info} ..."
958 981
          dependencies_header_search_path="${path} ${inherited}"
959 982
       fi
960 983
 
961
-      inherited="`xcode_get_setting LIBRARY_SEARCH_PATHS ${arguments}`"
984
+      inherited="`xcode_get_setting LIBRARY_SEARCH_PATHS ${arguments}`" || exit 1
962 985
       path=`combined_escaped_search_path \
963 986
 "${owd}/${REFERENCE_DEPENDENCY_SUBDIR}/${LIBRARY_DIR_NAME}/${mapped}" \
964 987
 "${owd}/${REFERENCE_DEPENDENCY_SUBDIR}/${LIBRARY_DIR_NAME}" \
... ...
@@ -976,7 +999,7 @@ ${info} ..."
976 999
       fi
977 1000
 
978 1001
 
979
-      inherited="`xcode_get_setting FRAMEWORK_SEARCH_PATHS ${arguments}`"
1002
+      inherited="`xcode_get_setting FRAMEWORK_SEARCH_PATHS ${arguments}`" || exit 1
980 1003
       path=`combined_escaped_search_path \
981 1004
 "${owd}/${REFERENCE_DEPENDENCY_SUBDIR}/${FRAMEWORK_DIR_NAME}/${mapped}" \
982 1005
 "${owd}/${REFERENCE_DEPENDENCY_SUBDIR}/${FRAMEWORK_DIR_NAME}"`
... ...
@@ -55,7 +55,7 @@ log_error()
55 55
 C_WARNING="${C_YELLOW}"
56 56
 log_warning()
57 57
 {
58
-   if [ "$MULLE_BOOTSTRAP_TERSE" != "YES" ]
58
+   if [ "${MULLE_BOOTSTRAP_TERSE}" != "YES" ]
59 59
    then
60 60
       echo "${C_WARNING}$*${C_RESET}" >&2
61 61
    fi
... ...
@@ -65,7 +65,7 @@ log_warning()
65 65
 C_INFO="${C_CYAN}"
66 66
 log_info()
67 67
 {
68
-   if [ "$MULLE_BOOTSTRAP_TERSE" != "YES" ]
68
+   if [ "${MULLE_BOOTSTRAP_TERSE}" != "YES" ]
69 69
    then
70 70
       echo "${C_INFO}$*${C_RESET}" >&2
71 71
    fi
... ...
@@ -75,7 +75,7 @@ log_info()
75 75
 C_FLUFF="${C_GREEN}"
76 76
 log_fluff()
77 77
 {
78
-   if [ "$MULLE_BOOTSTRAP_VERBOSE" = "YES"  ]
78
+   if [ "${MULLE_BOOTSTRAP_VERBOSE}" = "YES"  ]
79 79
    then
80 80
       echo "${C_FLUFF}$*${C_RESET}" >&2
81 81
    fi
... ...
@@ -85,14 +85,14 @@ log_fluff()
85 85
 C_TRACE="${C_FLUFF}"
86 86
 log_trace()
87 87
 {
88
-  echo "${C_TRACE}$*${C_RESET}" >&2
88
+   echo "${C_TRACE}$*${C_RESET}" >&2
89 89
 }
90 90
 
91 91
 
92 92
 C_TRACE2="${C_WHITE}"
93 93
 log_trace2()
94 94
 {
95
-  echo "${C_TRACE2}$*${C_RESET}" >&2
95
+   echo "${C_TRACE2}$*${C_RESET}" >&2
96 96
 }
97 97
 
98 98
 
... ...
@@ -333,6 +333,7 @@ mkdir_if_missing()
333 333
 {
334 334
    if [ ! -d "${1}" ]
335 335
    then
336
+      log_fluff "Creating ${C_WHITE}$1${C_FLUFF} (`pwd -P`)"
336 337
       exekutor mkdir -p "$1" || fail "failed to create directory \"$1\""
337 338
    fi
338 339
 }
... ...
@@ -65,6 +65,7 @@ case "${MULLE_BOOTSTRAP_TRACE}" in
65 65
       ;;
66 66
 esac
67 67
 
68
+
68 69
 if [ "${MULLE_BOOTSTRAP_DRY_RUN}" = "YES" ]
69 70
 then
70 71
    log_trace "Dry run is active."
... ...
@@ -63,7 +63,11 @@ warn_environment_setting()
63 63
    name="$1"
64 64
    if [ "$MULLE_BOOTSTRAP_NO_WARN_ENVIRONMENT_SETTINGS" != "YES" ]
65 65
    then
66
-      log_warning "Using environment variable \"${name}\""
66
+      # don't trace some boring ones
67
+      if [ "${name}" != "MULLE_BOOTSTRAP_ANSWER" -a "${name}" != "MULLE_BOOTSTRAP_VERBOSE" ]
68
+      then
69
+         log_warning "Using environment variable \"${name}\""
70
+      fi
67 71
    fi
68 72
 }
69 73
 
... ...
@@ -30,7 +30,9 @@
30 30
 #   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 31
 #   POSSIBILITY OF SUCH DAMAGE.
32 32
 
33
-. mulle-bootstrap-local-environment.sh
33
+. mulle-bootstrap-functions.sh
34
+. mulle-bootstrap-settings.sh
35
+
34 36
 
35 37
 warn_scripts()
36 38
 {