Browse code

Improve mulle-brew to work with deferred repositories. Improve usage and some other output for mulle-brew. Do not create default files for mulle-init anymore. Change caches_path to search_path.

Nat! authored on 22-04-2017 16:40:07
Showing 26 changed files
... ...
@@ -1,8 +1,13 @@
1 1
 
2
-### 3.4.1
2
+### 3.5.0
3
+
4
+#### `caches_path`renamed to more sensible `search_path`
3 5
 
4 6
 * experimentally, don't kill so hard anymore when failing (mostly for
5 7
 mulle-builds sake)
8
+* Because `mulle-bootstrap setting` now works, init by default does not
9
+create demo files any more. Inverted meaning of -d flag.
10
+* Various improvements to mulle-brew handling
6 11
 
7 12
 ### 3.4.0
8 13
 
... ...
@@ -98,7 +98,7 @@ Setting Name                      |  Description
98 98
 Setting Name                      |  Description                                  | Default
99 99
 ----------------------------------|-----------------------------------------------|--------------
100 100
 `absolute_symlinks`               | Use absolute symlinks instead of relatives    | NO
101
-`caches_path`                     | PATH to search for repositories, before cloning |
101
+`search_path`                     | PATH to search for repositories, before cloning |
102 102
 `embedded_symlinks`               | mulle-bootstrap will attempt to symlink regular repositories       | NO (ignored on MINGW)
103 103
 `symlinks`                        | mulle-bootstrap will attempt to symlink embedded repositories       | NO (ignored on MINGW)
104 104
 `update_gitignore`                | add cleanable directories to .gitignore       | YES
... ...
@@ -28,9 +28,10 @@
28 28
 #   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 29
 #   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 30
 #   POSSIBILITY OF SUCH DAMAGE.
31
+#
31 32
 MULLE_EXECUTABLE_VERSION_MAJOR=3
32
-MULLE_EXECUTABLE_VERSION_MINOR=4
33
-MULLE_EXECUTABLE_VERSION_PATCH=1
33
+MULLE_EXECUTABLE_VERSION_MINOR=5
34
+MULLE_EXECUTABLE_VERSION_PATCH=0
34 35
 
35 36
 MULLE_EXECUTABLE_VERSION="${MULLE_EXECUTABLE_VERSION_MAJOR}.${MULLE_EXECUTABLE_VERSION_MINOR}.${MULLE_EXECUTABLE_VERSION_PATCH}"
36 37
 
... ...
@@ -96,8 +97,10 @@ mulle_bootstrap_usage()
96 97
    local  verbose="${1:-NO}"
97 98
 
98 99
    cat <<EOF
99
-usage: mulle-bootstrap [flags] [command] [options]
100
- Flags:
100
+Usage:
101
+   ${MULLE_BOOTSTAP_EXECUTABLE} [flags] [command] [options]
102
+
103
+Flags:
101 104
    -a -y     : default answer to questions (scripts wont be checked)
102 105
                -a (clone preferred) -y (local copy/symlink preferred)
103 106
    -f        : force operation
... ...
@@ -112,7 +115,7 @@ EOF
112 115
 
113 116
    cat <<EOF
114 117
 
115
- Commands:
118
+Commands:
116 119
 EOF
117 120
 
118 121
    print_commands "${verbose}" | sort
... ...
@@ -126,7 +129,7 @@ EOF
126 129
    fi
127 130
 
128 131
    cat <<EOF
129
- Options are command specific. Use mulle-bootstrap <command> -h for help.
132
+Options are command specific. Use mulle-bootstrap <command> -h for help.
130 133
 EOF
131 134
 
132 135
    exit 1
... ...
@@ -236,7 +239,7 @@ bootstrap_init()
236 239
    libexecpath="`bootstrap_libexec_path "$0"`"
237 240
    if [ -z "${libexecpath}" ]
238 241
    then
239
-      echo "Fatal Error: Could not find libexec for mulle-bootstrap" >&2
242
+      echo "Fatal Error: Could not find libexec for ${MULLE_EXECUTABLE}" >&2
240 243
       exit 1
241 244
    fi
242 245
 
... ...
@@ -387,17 +390,6 @@ bootstrap_main()
387 390
    #
388 391
    command="${1:-bootstrap}"
389 392
 
390
-   case "${MULLE_FLAG_MAGNUM_FORCE}" in
391
-      "BOTH")
392
-         set_fetch_needed
393
-         set_build_needed
394
-      ;;
395
-
396
-      "BUILD-ONLY")
397
-         set_build_needed
398
-      ;;
399
-   esac
400
-
401 393
    case "${command}" in
402 394
       help|init|uname)
403 395
       ;;
... ...
@@ -416,7 +408,12 @@ bootstrap_main()
416 408
 
417 409
             if [ "$PWD" = "${old}" ]
418 410
             then
419
-               fail "There is no ${BOOTSTRAP_DIR} or ${BOOTSTRAP_DIR}.local folder here ($orgpwd), can't continue"
411
+               if [ "${command}" = "seting" ]
412
+               then
413
+                  cd "${orgpwd}"
414
+               else
415
+                  fail "There is no ${BOOTSTRAP_DIR} or ${BOOTSTRAP_DIR}.local folder here ($orgpwd), can't continue"
416
+               fi
420 417
             fi
421 418
          done
422 419
       ;;
... ...
@@ -438,14 +435,24 @@ bootstrap_main()
438 435
    # some commands are only valid, if the fetch went through
439 436
    # defer/emancipate clean, so that's ok
440 437
    #
441
-   if [ "${MULLE_FLAG_MAGNUM_FORCE}" = "NONE" ]
442
-   then
443
-      case "${command}" in
444
-         bootstrap|build|systeminstall|tag|update|upgrade)
445
-            bootstrap_ensure_consistency
446
-         ;;
447
-      esac
448
-   fi
438
+   case "${MULLE_FLAG_MAGNUM_FORCE}" in
439
+      "BOTH")
440
+         set_fetch_needed
441
+         set_build_needed
442
+      ;;
443
+
444
+      "BUILD-ONLY")
445
+         set_build_needed
446
+      ;;
447
+
448
+      "NONE")
449
+         case "${command}" in
450
+            bootstrap|build|systeminstall|tag|update|upgrade)
451
+               bootstrap_ensure_consistency
452
+            ;;
453
+         esac
454
+      ;;
455
+   esac
449 456
 
450 457
    MULLE_EXECUTABLE_FAIL_PREFIX="${MULLE_EXECUTABLE} ${command}"
451 458
    [ $# -eq 0 ] || shift
... ...
@@ -28,9 +28,10 @@
28 28
 #   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 29
 #   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 30
 #   POSSIBILITY OF SUCH DAMAGE.
31
+#
31 32
 MULLE_EXECUTABLE_VERSION_MAJOR=3
32
-MULLE_EXECUTABLE_VERSION_MINOR=4
33
-MULLE_EXECUTABLE_VERSION_PATCH=1
33
+MULLE_EXECUTABLE_VERSION_MINOR=5
34
+MULLE_EXECUTABLE_VERSION_PATCH=0
34 35
 
35 36
 MULLE_EXECUTABLE_VERSION="${MULLE_EXECUTABLE_VERSION_MAJOR}.${MULLE_EXECUTABLE_VERSION_MINOR}.${MULLE_EXECUTABLE_VERSION_PATCH}"
36 37
 
... ...
@@ -48,23 +49,25 @@ trap_fail()
48 49
 mulle_brew_usage()
49 50
 {
50 51
    cat <<EOF
51
-usage: mulle-brew [flags] [command] [options]
52
- Flags:
53
-   -n        : do nothing creative or destructive
54
-   -v        : -v to be more verbose (-vv or -vvv for more verbosity)
52
+Usage:
53
+   ${MULLE_BOOTSTAP_EXECUTABLE} [flags] [command] [options]
54
+
55
+Flags:
56
+   -n   : do nothing creative or destructive
57
+   -v   : -v to be more verbose (-vv or -vvv for more verbosity)
55 58
 EOF
56 59
 
57 60
    bootstrap_technical_option_usage
58 61
 
59 62
    cat <<EOF
60 63
 
61
- Commands:
64
+Commands:
62 65
    install   : fetches brews
63 66
    update    : update brew
64 67
    upgrade   : upgrade brew fomulae
65 68
    init      : initializes a bootstrap project
66 69
 
67
- Options are command specific. Use mulle-brew <command> -h for help.
70
+Options are command specific. Use mulle-brew <command> -h for help.
68 71
 EOF
69 72
 
70 73
    if [ "${UNAME}" = 'darwin' ]
... ...
@@ -139,7 +142,7 @@ bootstrap_init()
139 142
    libexecpath="`bootstrap_libexec_path "$0"`"
140 143
    if [ -z "${libexecpath}" ]
141 144
    then
142
-      echo "could not find libexec for mulle-bootstrap" >&2
145
+      echo "could not find libexec for ${MULLE_EXECUTABLE}" >&2
143 146
       exit 1
144 147
    fi
145 148
 
... ...
@@ -344,6 +347,13 @@ brew_main()
344 347
          paths_main "$@" || exit 1
345 348
       ;;
346 349
 
350
+      setting)
351
+         . mulle-bootstrap-settings.sh
352
+
353
+         setting_main "$@" || exit 1
354
+      ;;
355
+
356
+
347 357
       show)
348 358
          . mulle-bootstrap-show.sh
349 359
 
... ...
@@ -381,7 +391,7 @@ brew_main()
381 391
 
382 392
       *)
383 393
          log_error "${MULLE_EXECUTABLE_FAIL_PREFIX}: Unknown command \"${command}\""
384
-         mulle_bootstrap_usage
394
+         mulle_brew_usage
385 395
       ;;
386 396
    esac
387 397
 }
... ...
@@ -213,6 +213,8 @@ _bootstrap_auto_create()
213 213
    rmdir_safer "${dst}"
214 214
    mkdir_if_missing "${dst}"
215 215
 
216
+   redirect_exekutor "${dst}/.creator" echo "${MULLE_EXCUTABLE}"
217
+
216 218
    #
217 219
    # Copy over .local with config
218 220
    #
... ...
@@ -35,13 +35,14 @@ MULLE_BOOTSTRAP_BREW_SH="included"
35 35
 _brew_usage()
36 36
 {
37 37
    cat <<EOF >&2
38
-usage:
39
-   mulle-brew ${COMMAND} [options] [repositories]
40
-
41
-   Options
42
-      -cs   :  check /usr/local for duplicates
38
+Usage:
39
+   ${MULLE_BOOTSTAP_EXECUTABLE}  ${COMMAND} [options] [repositories]
43 40
 
44 41
    You can specify the names of the formulae to ${COMMAND}.
42
+
43
+Options:
44
+   -cs   :  check /usr/local for duplicates
45
+
45 46
 EOF
46 47
    exit 1
47 48
 }
... ...
@@ -151,7 +152,7 @@ _brew_action()
151 152
             log_info "Force linking it, in case it was keg-only"
152 153
             exekutor "${BREW}" link --force "${formula}" || exit 1
153 154
          else
154
-            log_info "\"${formula}\" is already installed."
155
+            log_info "${C_MAGENTA}${C_BOLD}${formula}${C_INFO} is already installed."
155 156
          fi
156 157
       ;;
157 158
 
... ...
@@ -170,11 +171,6 @@ find_brews()
170 171
    brews="`read_root_setting "brews" | sort | sort -u`"
171 172
    if [ ! -z "${brews}" ]
172 173
    then
173
-      if [ "${MULLE_EXECUTABLE}" != "mulle-bootstrap" ]
174
-      then
175
-         log_info "Setting read from .bootstrap.auto folder. \
176
-You might want to use mulle-bootstrap instead of mulle-brew."
177
-      fi
178 174
       echo "${brews}"
179 175
       return
180 176
    fi
... ...
@@ -239,6 +235,23 @@ brew_install_brews()
239 235
 }
240 236
 
241 237
 
238
+brew_fetch_loop()
239
+{
240
+   [ -z "${MULLE_BOOTSTRAP_AUTO_UPDATE_SH}" ] && . mulle-bootstrap-auto-update.sh
241
+
242
+   bootstrap_auto_create
243
+
244
+   if is_master_bootstrap_project
245
+   then
246
+      log_info "Extracting minions' brews ..."
247
+
248
+      [ -z "${MULLE_BOOTSTRAP_FETCH_SH}" ] && . mulle-bootstrap-fetch.sh
249
+
250
+      extract_minion_precis
251
+   fi
252
+}
253
+
254
+
242 255
 _brew_common_install()
243 256
 {
244 257
    if [ $# -ne 0 ]
... ...
@@ -247,6 +260,8 @@ _brew_common_install()
247 260
       ${USAGE}
248 261
    fi
249 262
 
263
+   brew_fetch_loop
264
+
250 265
    brew_install_brews "install" "$@"
251 266
 
252 267
    if read_yes_no_config_setting "update_gitignore" "YES"
... ...
@@ -48,9 +48,25 @@ build_usage()
48 48
    fi
49 49
 
50 50
    cat <<EOF >&2
51
-usage:
52
-   mulle-bootstrap build [-ck] [repos]*
51
+Usage:
52
+   ${MULLE_BOOTSTAP_EXECUTABLE} build [options] [repos]*
53
+EOF
54
+
55
+   cat <<EOF >&2
56
+   You may specify the names of the repositories to build.
57
+EOF
58
+
59
+   local  repositories
60
+
61
+   repositories="`all_repository_stashes`"
62
+   if [ -z "${repositories}" ]
63
+   then
64
+      echo "Currently available repositories are:"
65
+      echo "${repositories}" | sed 's/^/   /'
66
+   fi
53 67
 
68
+   cat <<EOF >&2
69
+Options:
54 70
    -k             :  don't clean before building $defk
55 71
    -K             :  always clean before building $defkk
56 72
    -c <name>      :  configurations to build ($defc), separate with comma
... ...
@@ -69,18 +85,7 @@ EOF
69 85
       ;;
70 86
    esac
71 87
 
72
-   cat << EOF >&2
73
-   You can optionally specify the names of the repositories to build.
74
-EOF
75
-
76
-   local  repositories
77
-
78
-   repositories="`all_repository_stashes`"
79
-   if [ -z "${repositories}" ]
80
-   then
81
-      echo "Currently available repositories are:"
82
-      echo "${repositories}" | sed 's/^/   /'
83
-   fi
88
+   echo >&2
84 89
 
85 90
    exit 1
86 91
 }
... ...
@@ -32,6 +32,39 @@
32 32
 MULLE_BOOTSTRAP_CLEAN_SH="included"
33 33
 
34 34
 
35
+clean_usage()
36
+{
37
+   setup_clean_environment
38
+
39
+   cat <<EOF >&2
40
+Usage:
41
+   ${MULLE_EXECUTABLE} clean [command]
42
+
43
+Commands:
44
+   build : remove intermediate build files to conserve space. It deletes
45
+`echo "${BUILD_CLEANABLE_SUBDIRS}" | sort | sed '/^$/d' | sed -e 's/^/      /'`
46
+
47
+   output : useful to rebuild. It deletes
48
+`echo "${BUILD_CLEANABLE_SUBDIRS}
49
+${OUTPUT_CLEANABLE_FILES}
50
+${OUTPUT_CLEANABLE_SUBDIRS}"  | sort| sed '/^$/d' | sed -e 's/^/      /'`
51
+
52
+   install : keep only addictions and dependencies
53
+`echo "${BUILD_CLEANABLE_SUBDIRS}
54
+${OUTPUT_CLEANABLE_FILES}
55
+${INSTALL_CLEANABLE_SUBDIRS}" | sort | sed '/^$/d' | sed -e 's/^/      /'`
56
+
57
+   dist : remove all clones, dependencies, addictions. It deletes
58
+`echo "${BUILD_CLEANABLE_SUBDIRS}
59
+${OUTPUT_CLEANABLE_SUBDIRS}
60
+${DIST_CLEANABLE_SUBDIRS}"    | sort | sed '/^$/d' | sed -e 's/^/      /'`
61
+
62
+EOF
63
+
64
+   exit 1
65
+}
66
+
67
+
35 68
 _collect_stashdir()
36 69
 {
37 70
    log_debug ":_collect_stashdir:" "$*"
... ...
@@ -165,38 +198,6 @@ ${BOOTSTRAP_DIR}.auto"`"
165 198
 }
166 199
 
167 200
 
168
-clean_usage()
169
-{
170
-   cat <<EOF >&2
171
-usage:
172
-   mulle-bootstrap clean [build|dist|install|output]
173
-
174
-EOF
175
-
176
-   setup_clean_environment
177
-
178
-   cat <<EOF >&2
179
-   build : remove intermediate build files to conserve space. It deletes
180
-`echo "${BUILD_CLEANABLE_SUBDIRS}" | sort | sed '/^$/d' | sed -e 's/^/      /'`
181
-
182
-   output : useful to rebuild. It deletes
183
-`echo "${BUILD_CLEANABLE_SUBDIRS}
184
-${OUTPUT_CLEANABLE_FILES}
185
-${OUTPUT_CLEANABLE_SUBDIRS}"  | sort| sed '/^$/d' | sed -e 's/^/      /'`
186
-
187
-   install : keep only addictions and dependencies
188
-`echo "${BUILD_CLEANABLE_SUBDIRS}
189
-${OUTPUT_CLEANABLE_FILES}
190
-${INSTALL_CLEANABLE_SUBDIRS}" | sort | sed '/^$/d' | sed -e 's/^/      /'`
191
-
192
-   dist : remove all clones, dependencies, addictions. It deletes
193
-`echo "${BUILD_CLEANABLE_SUBDIRS}
194
-${OUTPUT_CLEANABLE_SUBDIRS}
195
-${DIST_CLEANABLE_SUBDIRS}"    | sort | sed '/^$/d' | sed -e 's/^/      /'`
196
-EOF
197
-
198
-   exit 1
199
-}
200 201
 
201 202
 
202 203
 clean_asserted_folder()
... ...
@@ -35,10 +35,12 @@ MULLE_BOOTSTRAP_DEFER_SH="included"
35 35
 emancipate_usage()
36 36
 {
37 37
     cat <<EOF >&2
38
-usage:
39
-   mulle-bootstrap emancipate
38
+Usage:
39
+   ${MULLE_EXECUTABLE} emancipate
40
+
41
+   Emancipate from master. ${MULLE_EXECUTABLE} will make local dependencies
42
+   again.
40 43
 
41
-   Emancipate from master. mulle-bootstrap will produce local builds again.
42 44
 EOF
43 45
   exit 1
44 46
 }
... ...
@@ -47,12 +49,13 @@ EOF
47 49
 defer_usage()
48 50
 {
49 51
     cat <<EOF >&2
50
-usage:
51
-   mulle-bootstrap defer
52
+Usage:
53
+   ${MULLE_EXECUTABLE} defer
52 54
 
53 55
    Share and defer builds to master. The master will be used
54
-   to fetch dependencies and build them. Use mulle-bootstrap paths
56
+   to fetch dependencies and build them. Use ${MULLE_EXECUTABLE} paths
55 57
    to get paths to addictions and dependencies.
58
+
56 59
 EOF
57 60
   exit 1
58 61
 }
... ...
@@ -56,25 +56,27 @@ MULLE_BOOTSTRAP_FETCH_SH="included"
56 56
 fetch_usage()
57 57
 {
58 58
    cat <<EOF >&2
59
-usage:
60
-   mulle-bootstrap ${COMMAND} [options] [repositories]
59
+Usage:
60
+   ${MULLE_EXECUTABLE} ${COMMAND} [options] [repositories]
61 61
 
62
-   Options
63
-      --caches            :  use CACHES_PATH to locate local repositories
64
-      --check-usr-local   :  check /usr/local for duplicates
65
-      --embedded-only     :  fetch embedded repositories only
66
-
67
-      --symlinks          :  allow symlinking instead of cloning
68
-      --embedded-symlinks :  allow embedded symlinks (very experimental)
69
-      --follow-symlinks   :  follow symlinks when updating (not recommended)
70
-      --no-caches         :  don't use caches. Useful to counter flag -y
71
-      --no-symlinks       :  don't create symlinks. Useful to counter flag -y
62
+   You can specify the names of the repositories to update.
72 63
 
64
+Commands:
73 65
    install  :  clone or symlink non-exisiting repositories and other resources
74 66
    update   :  execute a "fetch" in already fetched repositories
75 67
    upgrade  :  execute a "pull" in fetched repositories
76 68
 
77
-   You can specify the names of the repositories to update.
69
+Options:
70
+   --caches            :  use CACHES_PATH to locate local repositories
71
+   --check-usr-local   :  check /usr/local for duplicates
72
+   --embedded-only     :  fetch embedded repositories only
73
+
74
+   --symlinks          :  allow symlinking instead of cloning
75
+   --embedded-symlinks :  allow embedded symlinks (very experimental)
76
+   --follow-symlinks   :  follow symlinks when updating (not recommended)
77
+   --no-caches         :  don't use caches. Useful to counter flag -y
78
+   --no-symlinks       :  don't create symlinks. Useful to counter flag -y
79
+
78 80
 EOF
79 81
 
80 82
    local  repositories
... ...
@@ -199,10 +201,10 @@ link_command()
199 201
 
200 202
    if [ "${branch}" != "master" ]
201 203
    then
202
-      log_warning "The intended ${branchlabel} ${C_RESET_BOLD}${branch}${C_WARNING} will be ignored, because"
203
-      log_warning "the repository is symlinked."
204
-      log_warning "If you want to checkout this ${branchlabel} do:"
205
-      log_warning "${C_RESET_BOLD}(cd ${stashdir}; git checkout ${GITOPTIONS} \"${branch}\" )${C_WARNING}"
204
+      log_warning "The intended ${branchlabel} ${C_RESET_BOLD}${branch}${C_WARNING} \
205
+will be ignored, because the repository is symlinked.
206
+If you want to checkout this ${branchlabel} do:
207
+   ${C_RESET_BOLD}(cd ${stashdir}; git checkout ${GITOPTIONS} \"${branch}\" )${C_WARNING}"
206 208
    fi
207 209
 }
208 210
 
... ...
@@ -327,7 +329,7 @@ search_for_git_repository_in_caches()
327 329
       realdir="`realpath "${directory}"`"
328 330
       if [ "${realdir}" = "${curdir}" ]
329 331
       then
330
-         fail "config setting \"caches_path\" mistakenly contains \"${directory}\", which is the current directory"
332
+         fail "config setting \"search_path\" mistakenly contains \"${directory}\", which is the current directory"
331 333
       fi
332 334
 
333 335
       found="`_search_for_git_repository_in_cache "${realdir}" "$@"`" || exit 1
... ...
@@ -636,7 +638,7 @@ clone_repository()
636 638
             is_minion_bootstrap_project "${stashdir}" || fail "\"${stashdir}\" \
637 639
 should be a minion but it isn't.
638 640
 Suggested fix:
639
-   ${C_RESET}${C_BOLD}cd \"${stashdir}\" ; mulle-bootstrap defer \"\
641
+   ${C_RESET}${C_BOLD}cd \"${stashdir}\" ; ${MULLE_EXECUTABLE} defer \"\
640 642
 `symlink_relpath "${PWD}" "${stashdir}"`\
641 643
 \""
642 644
             log_info "${C_MAGENTA}${C_BOLD}${name}${C_INFO} is a minion, so cloning is skipped"
... ...
@@ -1178,7 +1178,7 @@ remove_file_if_present()
1178 1178
    then
1179 1179
       log_fluff "Removing \"$1\""
1180 1180
       exekutor chmod u+w "$1"  >&2 || fail "Failed to make $1 writable"
1181
-      exekutor rm -f "$1"  >&2 || fail "failed to remove \"$1\""
1181
+      exekutor rm -f "$1"  >&2     || fail "failed to remove \"$1\""
1182 1182
    fi
1183 1183
 }
1184 1184
 
... ...
@@ -35,13 +35,13 @@ MULLE_BOOTSTRAP_INIT_SH="included"
35 35
 init_usage()
36 36
 {
37 37
     cat <<EOF >&2
38
-usage:
39
-  mulle-bootstrap init [options]
38
+Usage:
39
+  ${MULLE_EXECUTABLE} init [options]
40
+
41
+Options
42
+   -d : create default files
43
+   -n : don't ask for editor
40 44
 
41
-  Options
42
-    -d :  don't create default files
43
-    -e :  create example files
44
-    -n :  don't ask for editor
45 45
 EOF
46 46
   exit 1
47 47
 }
... ...
@@ -108,10 +108,8 @@ init_main()
108 108
    [ -z "${MULLE_BOOTSTRAP_FUNCTIONS_SH}" ]         && . mulle-bootstrap-functions.sh
109 109
 
110 110
    local OPTION_CREATE_DEFAULT_FILES
111
-   local OPTION_CREATE_EXAMPLE_FILES
112 111
 
113
-   OPTION_CREATE_DEFAULT_FILES="`read_config_setting "create_default_files" "YES"`"
114
-   OPTION_CREATE_EXAMPLE_FILES="`read_config_setting "create_example_files" "NO"`"
112
+   OPTION_CREATE_DEFAULT_FILES="`read_config_setting "create_default_files" "NO"`"
115 113
 
116 114
    while [ $# -ne 0 ]
117 115
    do
... ...
@@ -125,11 +123,7 @@ init_main()
125 123
          ;;
126 124
 
127 125
          -d)
128
-            OPTION_CREATE_DEFAULT_FILES=
129
-         ;;
130
-
131
-         -e)
132
-            OPTION_CREATE_EXAMPLE_FILES="YES"
126
+            OPTION_CREATE_DEFAULT_FILES="YES"
133 127
          ;;
134 128
 
135 129
          -*)
... ...
@@ -148,8 +142,7 @@ init_main()
148 142
 
149 143
    if [ -d "${BOOTSTRAP_DIR}" ]
150 144
    then
151
-      log_warning "\"${BOOTSTRAP_DIR}\" already exists"
152
-      exit 1
145
+      fail "\"${BOOTSTRAP_DIR}\" already exists"
153 146
    fi
154 147
 
155 148
    log_fluff "Create \"${BOOTSTRAP_DIR}\""
... ...
@@ -160,9 +153,24 @@ init_main()
160 153
 ${MULLE_EXECUTABLE_VERSION_MAJOR}.0.0
161 154
 EOF
162 155
 
163
-   if [ "${OPTION_CREATE_DEFAULT_FILES}" = "YES" ]
156
+   if [ "${OPTION_CREATE_DEFAULT_FILES}" = "NO" ]
164 157
    then
165
-      log_fluff "Create default files"
158
+      if [ "${MULLE_EXECUTABLE}" = "mulle-bootstrap" ]
159
+      then
160
+         log_info "${BOOTSTRAP_DIR} has been created. Use
161
+   ${C_RESET}${C_BOLD}${MULLE_EXECUTABLE} setting -g -r -a repositories <url>${C_INFO}
162
+to specify dependencies and then install them with
163
+   ${C_RESET}${C_BOLD}${MULLE_EXECUTABLE}${C_INFO}"
164
+      else
165
+         log_info "${BOOTSTRAP_DIR} has been created. Use
166
+   ${C_RESET}${C_BOLD}${MULLE_EXECUTABLE} setting -g -r -a brews <name>${C_INFO}
167
+to specify brew formula to fetch and then install them with
168
+   ${C_RESET}${C_BOLD}${MULLE_EXECUTABLE}${C_INFO}"
169
+      fi
170
+      return
171
+   fi
172
+
173
+   log_fluff "Create default files"
166 174
 
167 175
 
168 176
 #cat <<EOF > "${BOOTSTRAP_DIR}/pips"
... ...
@@ -171,16 +179,15 @@ EOF
171 179
 # mod-pbxproj
172 180
 #EOF
173 181
 
174
-      init_add_brews
182
+   init_add_brews
175 183
 
176
-      if [ "${MULLE_EXECUTABLE}" = "mulle-bootstrap" ]
177
-      then
178
-         mainfile="repositories"
179
-         _init_add_repositories "repositories"
180
-         _init_add_repositories "embedded_repositories"
181
-      else
182
-         mainfile="brews"
183
-      fi
184
+   if [ "${MULLE_EXECUTABLE}" = "mulle-bootstrap" ]
185
+   then
186
+      mainfile="repositories"
187
+      _init_add_repositories "repositories"
188
+      _init_add_repositories "embedded_repositories"
189
+   else
190
+      mainfile="brews"
184 191
    fi
185 192
 
186 193
    log_verbose "\"${BOOTSTRAP_DIR}\" folder has been set up."
... ...
@@ -37,12 +37,13 @@ MULLE_BOOTSTRAP_INSTALL_SH="included"
37 37
 install_usage()
38 38
 {
39 39
    cat <<EOF >&2
40
-usage:
41
-   mulle-bootstrap install [libraryprefix] [frameworkprefix]
40
+Usage:
41
+   ${MULLE_EXECUTABLE} install [libraryprefix] [frameworkprefix]
42 42
 
43 43
    You may need to run this as sudo.
44
-   The default libraryprefix is ${DEFAULT_PREFIX}
45
-   The default frameworkprefix is ${DEFAULT_FRAMEWORK_PREFIX}
44
+   The default libraryprefix is "${DEFAULT_PREFIX}
45
+   The default frameworkprefix is "${DEFAULT_FRAMEWORK_PREFIX}"
46
+
46 47
 EOF
47 48
    exit 1
48 49
 }
... ...
@@ -341,7 +342,7 @@ install_main()
341 342
    then
342 343
      fail "No dependencies have been created yet.
343 344
 Suggested fix:
344
-   mulle-bootstrap build"
345
+   ${MULLE_EXECUTABLE} build"
345 346
    fi
346 347
 
347 348
    local symlink
... ...
@@ -240,7 +240,7 @@ bootstrap_define_expansion()
240 240
 
241 241
    keyvalue="$1"
242 242
 
243
-   is_bootstrap_project || fail "This is not a mulle-bootstrap project"
243
+   is_bootstrap_project || fail "This is not a ${MULLE_EXECUTABLE} project"
244 244
 
245 245
    if [ -z "${keyvalue}" ]
246 246
    then
... ...
@@ -277,11 +277,11 @@ bootstrap_ensure_consistency()
277 277
    then
278 278
       log_error "A previous fetch or update was incomplete.
279 279
 Suggested resolution (in $PWD):
280
-    ${C_RESET_BOLD}mulle-bootstrap clean dist${C_ERROR}
281
-    ${C_RESET_BOLD}mulle-bootstrap${C_ERROR}
280
+    ${C_RESET_BOLD}${MULLE_EXECUTABLE} clean dist${C_ERROR}
281
+    ${C_RESET_BOLD}${MULLE_EXECUTABLE}${C_ERROR}
282 282
 
283 283
 Or do you feel lucky ? Then try again with
284
-   ${C_RESET_BOLD}mulle-bootstrap -f ${MULLE_ARGUMENTS}${C_ERROR}
284
+   ${C_RESET_BOLD}${MULLE_EXECUTABLE} -f ${MULLE_ARGUMENTS}${C_ERROR}
285 285
 But you've gotta ask yourself one question: Do I feel lucky ?
286 286
 Well, do ya, punk?"
287 287
       exit 1
... ...
@@ -564,6 +564,20 @@ fetch_needed()
564 564
       return 0
565 565
    fi
566 566
 
567
+   local creator
568
+
569
+   creator="`cat "${BOOTSTRAP_DIR}.auto/.creator" 2> /dev/null`"
570
+   if [ "${creator}" != "${MULLE_EXECUTABLE}" ]
571
+   then
572
+      if [ -d "${BOOTSTRAP_DIR}.auto" ]
573
+      then
574
+         log_verbose "Need fetch because ${BOOTSTRAP_DIR}.auto was created by ${creator}."
575
+      else
576
+         log_verbose "Need fetch because ${BOOTSTRAP_DIR}.auto does not exist."
577
+      fi
578
+      return 0
579
+   fi
580
+
567 581
    local bootstrapdir="${BOOTSTRAP_DIR}"
568 582
 
569 583
    [ -z "${bootstrapdir}" ] && internal_fail "BOOTSTRAP_DIR undefined"
... ...
@@ -651,7 +665,7 @@ assert_mulle_bootstrap_version()
651 665
       return
652 666
    fi
653 667
 
654
-   fail "This ${BOOTSTRAP_DIR} requires mulle-bootstrap version ${version} at least, you have ${MULLE_EXECUTABLE_VERSION}"
668
+   fail "This ${BOOTSTRAP_DIR} requires ${MULLE_EXECUTABLE} version ${version} at least, you have ${MULLE_EXECUTABLE_VERSION}"
655 669
 }
656 670
 
657 671
 
... ...
@@ -266,7 +266,7 @@ logging_initialize()
266 266
 
267 267
       exedir="`dirname "${BASH_SOURCE}"`"
268 268
       exedirpath="`( cd "${exedir}" ; pwd -P )`" || fail "failed to get pwd"
269
-      echo "mulle-bootstrap libexec: ${exedirpath}" >&2
269
+      echo "${MULLE_EXECUTABLE} libexec: ${exedirpath}" >&2
270 270
    fi
271 271
 }
272 272
 
... ...
@@ -34,30 +34,42 @@ MULLE_BOOTSTRAP_PATHS_SH="included"
34 34
 paths_usage()
35 35
 {
36 36
     cat <<EOF >&2
37
-usage:
38
-   mulle-bootstrap paths [options] <type>+
39
-
40
-   Options:
41
-      -1             : output is a one-liner
42
-      -m             : emit regardless of directory existence
43
-      -l             : emit link directives for libraries
44
-      -f             : emit link directives for Frameworks
45
-
46
-   Output paths for various tool types. You can specify multiple types.
47
-
48
-   Types:
49
-      addictions     : output "addictions" path
50
-      binpath        : output paths for binaries
51
-      cppflags       : output CPPFLAGS
52
-      cmakeflags     : output cmake flag definitions
53
-      cmakepaths     : output cmake paths definitions
54
-      dependencies   : output "dependencies" path
55
-      environment*   : output CPPFLAGS, LDFLAGS (default)
56
-      frameworkpath  : output framework search paths PATH style
57
-      headerpath     : output framework search paths PATH style
58
-      ldflags        : output LDFLAGS
59
-      librarypath    : output library search paths PATH style
60
-      path           : output PATH
37
+Usage:
38
+   ${MULLE_EXECUTABLE} paths [options] <types>
39
+
40
+Output paths for various tool types. You can specify multiple types.
41
+
42
+Options:
43
+   -1             : output is a one-liner
44
+   -f             : emit link directives for Frameworks
45
+   -l             : emit link directives for libraries
46
+   -m             : emit regardless of directory existence
47
+   -q <char>      : specify quote character
48
+   -s <char>      : specify PATH seperator character
49
+
50
+Types:
51
+   addictions     : output "addictions" path
52
+   binpath        : output paths for binaries
53
+   cppflags       : output CPPFLAGS
54
+   cmakeflags     : output cmake flag definitions
55
+   cmakepaths     : output cmake paths definitions
56
+EOF
57
+
58
+   if [ "${MULLE_EXECUTABLE}" = "mulle-bootstrap" ]
59
+   then
60
+       cat <<EOF >&2
61
+   dependencies   : output "dependencies" path
62
+EOF
63
+   fi
64
+
65
+   cat <<EOF >&2
66
+   environment*   : output CPPFLAGS, LDFLAGS (default)
67
+   frameworkpath  : output framework search paths PATH style
68
+   headerpath     : output framework search paths PATH style
69
+   ldflags        : output LDFLAGS
70
+   librarypath    : output library search paths PATH style
71
+   path           : output PATH
72
+
61 73
 EOF
62 74
   exit 1
63 75
 }
... ...
@@ -532,20 +544,6 @@ paths_main()
532 544
             OPTION_LINE_SEPERATOR=" "
533 545
          ;;
534 546
 
535
-         -q|--quote)
536
-            shift
537
-            [ $# -eq 0 ] && fail "quote missing"
538
-
539
-            OPTION_QUOTE="$1"
540
-         ;;
541
-
542
-         -s|--separator)
543
-            shift
544
-            [ $# -eq 0 ] && fail "separator missing"
545
-
546
-            OPTION_PATH_SEPARATOR="$1"
547
-         ;;
548
-
549 547
          -d|--dependencies)
550 548
             OPTION_WITH_DEPENDENCIES="YES"
551 549
          ;;
... ...
@@ -576,6 +574,10 @@ paths_main()
576 574
             OPTION_SUPPRESS_FRAMEWORK_LDFLAGS="YES"
577 575
          ;;
578 576
 
577
+         -nf|--no-framework-paths)
578
+            OPTION_WITH_FRAMEWORKPATHS="NO"
579
+         ;;
580
+
579 581
          -nh|--no-header-paths)
580 582
             OPTION_WITH_HEADERPATHS="NO"
581 583
          ;;
... ...
@@ -584,8 +586,18 @@ paths_main()
584 586
             OPTION_WITH_LIBRARYPATHS="NO"
585 587
          ;;
586 588
 
587
-         -nf|--no-framework-paths)
588
-            OPTION_WITH_FRAMEWORKPATHS="NO"
589
+         -q|--quote)
590
+            shift
591
+            [ $# -eq 0 ] && fail "quote missing"
592
+
593
+            OPTION_QUOTE="$1"
594
+         ;;
595
+
596
+         -s|--separator)
597
+            shift
598
+            [ $# -eq 0 ] && fail "separator missing"
599
+
600
+            OPTION_PATH_SEPARATOR="$1"
589 601
          ;;
590 602
 
591 603
          -*)
... ...
@@ -875,7 +875,7 @@ scm_initialize()
875 875
    #
876 876
    # "repository" caches can and usually are outside the project folder
877 877
    # this can be multiple paths!
878
-   CACHES_PATH="`read_config_setting "caches_path" "${MULLE_BOOTSTRAP_CACHES_PATH}"`"
878
+   CACHES_PATH="`read_config_setting "search_path" "${MULLE_BOOTSTRAP_CACHES_PATH}"`"
879 879
 
880 880
    # stuff clones get intermediate saved too, default empty
881 881
    CLONE_CACHE="`read_config_setting "clone_cache"`"
... ...
@@ -35,17 +35,17 @@ MULLE_BOOTSTRAP_SETTINGS_SH="included"
35 35
 config_usage()
36 36
 {
37 37
     cat <<EOF >&2
38
-usage:
39
-   mulle-bootstrap config [options] [key][=][value]
38
+Usage:
39
+   ${MULLE_EXECUTABLE} config [options] [key][=][value]
40 40
 
41
-   Options:
42
-      -d   : delete config setting
43
-      -g   : use ~/.mulle-bootstrap folder instead of .bootstrap-local
44
-      -l   : list config values
41
+   Use ${MULLE_EXECUTABLE} config <key> to read
42
+   and ${MULLE_EXECUTABLE} config <key> <value> to write
43
+
44
+Options:
45
+   -d   : delete config setting
46
+   -u   : use user ~/.mulle-bootstrap folder instead of .bootstrap-local
47
+   -l   : list config values
45 48
 
46
-   Use:
47
-      mulle-bootstrap config <key> to read
48
-      mulle-bootstrap config <key> <value> to write
49 49
 EOF
50 50
   exit 1
51 51
 }
... ...
@@ -54,17 +54,17 @@ EOF
54 54
 expansion_usage()
55 55
 {
56 56
     cat <<EOF >&2
57
-usage:
58
-   mulle-bootstrap expansion [options] [key][=][value]
57
+Usage:
58
+   ${MULLE_EXECUTABLE} expansion [options] [key][=][value]
59
+
60
+   Use ${MULLE_EXECUTABLE} expansion <key> to read
61
+   and ${MULLE_EXECUTABLE} expansion <key> <value> to write
59 62
 
60
-   Options:
61
-      -d   : delete setting
62
-      -g   : use global .bootstrap folder instead of local
63
-      -l   : list expansion values
63
+Options:
64
+   -d   : delete setting
65
+   -g   : use global .bootstrap folder instead of local
66
+   -l   : list expansion values
64 67
 
65
-   Use:
66
-      mulle-bootstrap expansion <key> to read
67
-      mulle-bootstrap expansion <key> <value> to write
68 68
 EOF
69 69
   exit 1
70 70
 }
... ...
@@ -73,21 +73,21 @@ EOF
73 73
 setting_usage()
74 74
 {
75 75
     cat <<EOF >&2
76
-usage:
77
-   mulle-bootstrap setting [options] [key][=][value]
78
-
79
-   Options:
80
-      -a              : append value to setting
81
-      -b <repository> : specify repository for build setting
82
-      -d              : delete setting
83
-      -g              : use global .bootstrap folder instead of local
84
-      -o              : use overrides settings
85
-      -p              : show current setting value
86
-      -r              : use root settings
87
-
88
-   Use:
89
-      mulle-bootstrap setting <key> to read settings
90
-      mulle-bootstrap setting <key> <value> to write settings
76
+Usage:
77
+   ${MULLE_EXECUTABLE} setting [options] [key][=][value]
78
+
79
+   Use ${MULLE_EXECUTABLE} setting <key> to read settings
80
+   and ${MULLE_EXECUTABLE} setting <key> <value> to write settings
81
+
82
+Options:
83
+   -a              : append value to setting
84
+   -b <repository> : specify repository for build setting
85
+   -d              : delete setting
86
+   -g              : use global .bootstrap folder instead of local
87
+   -o              : use overrides settings
88
+   -p              : show current setting value
89
+   -r              : use root settings
90
+
91 91
 EOF
92 92
   exit 1
93 93
 }
... ...
@@ -112,7 +112,7 @@ brew_permissions
112 112
 build_dir
113 113
 build_log_dir
114 114
 build_preferences
115
-caches_path
115
+search_path
116 116
 clone_cache
117 117
 check_usr_local_include
118 118
 clean_before_build
... ...
@@ -481,7 +481,7 @@ list_build_directories()
481 481
       IFS="${DEFAULT_IFS}"
482 482
 
483 483
       name="`basename -- "${filename}" ".build"`"
484
-      echo "# mulle-bootstrap setting -r '${name}' -l"
484
+      echo "# ${MULLE_EXECUTABLE} setting -r '${name}' -l"
485 485
    done
486 486
 
487 487
    IFS="${DEFAULT_IFS}"
... ...
@@ -986,7 +986,7 @@ _setting_list()
986 986
 
987 987
       log_info ".bootstrap ($PWD):"
988 988
       list_dir_settings "${BOOTSTRAP_DIR}" "${SETTING_KEY_REGEXP}" | \
989
-                        sed "s/^/mulle-bootstrap setting -r -g/" | \
989
+                        sed "s/^/mulle-bootstrap setting -r -g /" | \
990 990
                         _unescape_linefeeds
991 991
 
992 992
       log_info "Available repository settings:"
... ...
@@ -1178,7 +1178,7 @@ _config_list()
1178 1178
    list_local_config_settings | sed "s/^/mulle-bootstrap config /" | _unescape_linefeeds
1179 1179
 
1180 1180
    log_info "~/.mulle-bootstrap:"
1181
-   list_home_config_settings | sed "s/^/mulle-bootstrap config -h /" | _unescape_linefeeds
1181
+   list_home_config_settings | sed "s/^/mulle-bootstrap config -u /" | _unescape_linefeeds
1182 1182
 }
1183 1183
 
1184 1184
 
... ...
@@ -35,20 +35,21 @@ MULLE_BOOTSTRAP_SHOW_SH="included"
35 35
 show_usage()
36 36
 {
37 37
     cat <<EOF >&2
38
-usage:
39
-   mulle-bootstrap show [options]
38
+Usage:
39
+   ${MULLE_EXECUTABLE} show [options]
40 40
 
41
-   Options:
41
+Options:
42 42
 EOF
43 43
 
44 44
    if [ "${MULLE_EXECUTABLE}" = "mulle-bootstrap" ]
45 45
    then
46 46
       cat <<EOF >&2
47
-      -b : show brews
48
-      -d : show deeply embedded repositories
49
-      -r : show raw repository content
50
-      -u : show URL
51
-      -s : show scm, branch, tag info
47
+   -b : show brews
48
+   -d : show deeply embedded repositories
49
+   -r : show raw repository content
50
+   -u : show URL
51
+   -s : show scm, branch, tag info
52
+
52 53
 EOF
53 54
    fi
54 55
   exit 1
... ...
@@ -315,15 +316,18 @@ show_brew()
315 316
 
316 317
 show_brews()
317 318
 {
318
-   local brews
319
+   (
320
+      local brews
319 321
 
320
-   if [ "${SHOW_RAW}" = "YES" ]
321
-   then
322
-      brews="`read_raw_setting "brews"`"
323
-   else
324
-      brews="`find_brews`"
325
-   fi
326
-   walk_brews "${brews}" "show_brew"
322
+      SHOW_PREFIX="${SHOW_PREFIX}   "
323
+      if [ "${SHOW_RAW}" = "YES" ]
324
+      then
325
+         brews="`read_raw_setting "brews"`"
326
+      else
327
+         brews="`find_brews`"
328
+      fi
329
+      walk_brews "${brews}" "show_brew"
330
+   )
327 331
 }
328 332
 
329 333
 
... ...
@@ -492,13 +496,13 @@ _show_main()
492 496
    [ $# -ne 0 ] && show_usage
493 497
    _common_show "${header_only}" "$@"
494 498
 
495
-   if [ "${SHOW_RAW}" != "YES" ]
499
+   if [ "${SHOW_RAW}" != "YES" -a "${MULLE_EXECUTABLE}" = "mulle-bootstrap" ]
496 500
    then
497 501
       if [ ! -f "${REPOS_DIR}/.fetch_done" ]
498 502
       then
499
-          log_warning "mulle-bootstrap has not run fetch completly.
503
+          log_warning "${MULLE_EXECUTABLE} has not run fetch completely.
500 504
 Results may be incomplete or missing.
501
-Maybe use --raw option or run mulle-bootstrap again ?"
505
+Maybe use --raw option or run ${MULLE_EXECUTABLE} again ?"
502 506
       fi
503 507
    fi
504 508
 }
... ...
@@ -35,11 +35,12 @@ MULLE_BOOTSTRAP_STATUS_SH="included"
35 35
 status_usage()
36 36
 {
37 37
     cat <<EOF >&2
38
-usage:
39
-   mulle-bootstrap status [options]
38
+Usage:
39
+   ${MULLE_EXECUTABLE} status [options]
40 40
 
41
-      -e   : embedded directories
42
-      -nfs : don't follow symlinks
41
+Options:
42
+   -e   : embedded directories
43
+   -nfs : don't follow symlinks
43 44
 
44 45
 EOF
45 46
   exit 1
... ...
@@ -40,14 +40,15 @@ MULLE_BOOTSTRAP_TAG_SH="included"
40 40
 tag_usage()
41 41
 {
42 42
    cat <<EOF >&2
43
-usage:
44
-   mulle-bootstrap tag [options] <tag>
43
+Usage:
44
+   ${MULLE_EXECUTABLE} tag [options] <tag>
45 45
 
46
-   Options:
47
-      -d   : delete tag
48
-      -f   : force tag
46
+   Give a tag for your fetched repositories.
47
+
48
+Options:
49
+   -d   : delete tag
50
+   -f   : force tag
49 51
 
50
-      tag  : the tag for your fetched repositories
51 52
 EOF
52 53
    exit 1
53 54
 }
... ...
@@ -121,7 +121,7 @@ Abort now ?"
121 121
    then
122 122
        log_error "The bootstrap is in an inconsistent state. It would be good
123 123
 to run
124
-     ${C_RESET}mulle-bootstrap clean dist${C_ERROR}
124
+     ${C_RESET}${C_BOLD}${MULLE_EXECUTABLE} clean dist${C_ERROR}
125 125
 now."
126 126
        return 1
127 127
    fi
... ...
@@ -37,11 +37,13 @@ MULLE_BOOTSTRAP_XCODE_SH="included"
37 37
 xcode_usage()
38 38
 {
39 39
    cat <<EOF >&2
40
-usage:
41
-   mulle-bootstrap xcode <add|remove> [xcodeproj]
40
+Usage:
41
+   ${MULLE_EXECUTABLE} xcode <command> [xcodeproj]
42 42
 
43
+Commands:
43 44
    add      : add settings to Xcode project (default)
44 45
    remove   : remove settings from Xcode project
46
+
45 47
 EOF
46 48
    exit 1
47 49
 }
... ...
@@ -251,8 +253,8 @@ Release"
251 253
    local framework_search_paths
252 254
 
253 255
    # grab values from master if needed
254
-   DEPENDENCIES_DIR="`mulle-bootstrap paths dependencies`"
255
-   ADDICTIONS_DIR="`mulle-bootstrap paths addictions`"
256
+   DEPENDENCIES_DIR="`${MULLE_EXECUTABLE} paths dependencies`"
257
+   ADDICTIONS_DIR="`${MULLE_EXECUTABLE} paths addictions`"
256 258
 
257 259
    relpath="`symlink_relpath "${DEPENDENCIES_DIR}" "${projectdir}"`"
258 260
    dependencies_dir='$(PROJECT_DIR)'/"${relpath}"
... ...
@@ -366,7 +368,7 @@ Release"
366 368
          echo "If you add a configuration to your project, remember to" >&2
367 369
          echo "edit the ${C_RESET_BOLD}LIBRARY_CONFIGURATION${C_CYAN} setting for that" >&2
368 370
          echo "configuration." >&2
369
-         echo "You can rerun \"mulle-bootstrap xcode add\" at later times" >&2
371
+         echo "You can rerun \"${MULLE_EXECUTABLE} xcode add\" at later times" >&2
370 372
          echo "and it should not unduly duplicate setting contents." >&2
371 373
          printf "\n${C_RESET}" >&2
372 374
       fi
... ...
@@ -43,9 +43,10 @@ MULLE_BOOTSTRAP_ZOMBIFY_SH="included"
43 43
 refresh_usage()
44 44
 {
45 45
    cat <<EOF >&2
46
-usage:
47
-   mulle-bootstrap <refresh|nonrecursive>
46
+Usage:
47
+   ${MULLE_EXECUTABLE} <command>
48 48
 
49
+Commands:
49 50
    refresh      : update settings, remove unused repositories (default)
50 51
    nonrecursive : ignore .bootstrap folders of fetched repositories
51 52
 EOF
... ...
@@ -155,7 +155,7 @@ test_fetch()
155 155
    (
156 156
       cd Master/Minion
157 157
 
158
-      run_mulle_bootstrap config caches_path "${owd}" || exit 1
158
+      run_mulle_bootstrap config search_path "${owd}" || exit 1
159 159
       run_mulle_bootstrap -y "$@" fetch  || exit 1
160 160
 
161 161
    ) || fail "defer"
... ...
@@ -157,7 +157,7 @@ test_fetch()
157 157
    (
158 158
       cd Master
159 159
 
160
-      run_mulle_bootstrap config caches_path "${owd}" || exit 1
160
+      run_mulle_bootstrap config search_path "${owd}" || exit 1
161 161
       run_mulle_bootstrap -y "$@" fetch  || exit 1
162 162
 
163 163
    ) || fail "defer"