1 ; example manifest file for application bundler.
4 set_source_temporary_dir=t
5 establish_new_temp_dir=t
6 ; we whack the temporary directory before creating it in case it was there.
7 whack_temporary_dir_before=t
13 copy_nechung_to_tempdir=t
14 copy_fortunes_to_tempdir=t
23 target_exec_sans_source=t
27 test_variable_defined=t
28 whack_temporary_dir_after=t
31 variable=TARGET=$TMP/bundle_example_yo
32 ; this is an example of setting a variable. the variables found in a section
33 ; should be the only content provided (no source or target is needed). in
34 ; this example, the variable is "TARGET" and it's being set to a folder under
36 ; "TARGET" is actually a special variable; it is the main installation root
37 ; for all bundled products. if it is going to be overridden, it should be the
38 ; first item in the table of contents; this ensures all other targets see
39 ; the chosen default target location.
42 variable=BOGUS=petunias
43 ; this is a simple variable that can be used to test overriding variables by
44 ; passing them on the command line to the unpacker exe.
46 [set_source_temporary_dir]
47 variable=SOURCE_TEMP=$TMP/tmp_nechung
48 ; provides a folder to use for testing nechung stuff.
50 [establish_new_temp_dir]
51 variable=TMP=$SOURCE_TEMP
52 ; changes the temporary directory over to a location we think we can always
56 variable=NECHUNG=$SOURCE_TEMP/example.txt
57 ; provides the nechung oracle (used later) with a datafile.
60 source=$UNIX_BIN/mkdir
67 parms="srctmp" "$SOURCE_TEMP" "EXECdir" "$EXECUTABLE_DIR" "exeend" "$EXE_END"
71 [whack_temporary_dir_before]
73 parms="-rf" "$SOURCE_TEMP"
77 ; for some reason rm is complaining about this, even though it's working.
79 ; this redundancy is an example of why we need an aliasing system for
80 ; creating multiple TOC items that actually call the same real section.
81 ; ini file format betrays us there since we cannot have two identical names
82 ; in the same section.
83 [whack_temporary_dir_after]
85 parms="-rf" "$SOURCE_TEMP"
89 ; for some reason rm is complaining about this, even though it's working.
91 ; the copy steps are preparing for running nechung. we need a place where
92 ; we should always be able to write some new files, since nechung writes its
93 ; index of the fortunes when it's first run, and that's what SOURCE_TEMP is
95 [copy_nechung_to_tempdir]
97 parms="$EXECUTABLE_DIR/nechung$EXE_END" "$SOURCE_TEMP/nechung$EXE_END"
101 [copy_fortunes_to_tempdir]
103 parms="$FEISTY_MEOW_APEX/nucleus/applications/nechung/example.txt" "$SOURCE_TEMP/example.txt"
108 source=$EXECUTABLE_DIR/bytedump$EXE_END
109 target=$TARGET/bytedunker$EXE_END
110 ; a special variable called TARGET is the default location where files will
111 ; be stored. this is basically the main installation folder. the TARGET
112 ; folder can be specified on the command line when a bundle is installed.
113 ; note the automatic variable called EXE_END; this is set to ".exe" for win32
114 ; operating systems and is blank for others (so far).
117 source=$CLAM_BINARIES/value_tagger$EXE_END
118 target=$TMP/using_varsilator$EXE_END
119 ; variables in the source get resolved at packing time.
120 ; variables in the target get resolved during unbundling time.
123 source=$EXECUTABLE_DIR/nechung$EXE_END
124 target=/tmp/spoonbender/nechung$EXE_END
125 ; simple file copy to an absolute path.
128 source=$FEISTY_MEOW_APEX/nucleus/library/test_basis/*
129 target=$TARGET/muse_files
130 ; wildcards are supported. this will put all the files from that directory
131 ; "test_basis" into the target in a folder called "muse_files".
134 source=$FEISTY_MEOW_APEX/nucleus/library/basis/*.h
135 target=$TARGET/basis_headers
136 ; this is a more specific wildcard that tests a pattern on the end, rather
137 ; than the "get everything" of a bare asterisk.
140 source=$FEISTY_MEOW_APEX/nucleus
141 target=$TARGET/srcpack/doodle_src
143 ; this shows a recursive copy of the directory "core" into a new directory
144 ; on the target called "doodle_src". this matches the last component of the
145 ; source directly to the last component of the target, so that the files
146 ; in doodle will show up under doodle_src.
147 ; the flag "recurse" must also be set in the section. if it has any contents
148 ; besides zero ("0") or "false", then it will be evaluated as enabling
149 ; recursion. it should not be an empty string (since that is equivalent to it
150 ; not being set at all).
151 ; currently, recursion and wildcards cannot be mixed.
153 [execute_source_side]
154 source=$SOURCE_TEMP/nechung$EXE_END
157 ; this is an example of having a source side file be executed (the
158 ; "exec_source" item in the section specifies this). the file will be
159 ; executed on the source side while the bundle is being packed. the "no_pack"
160 ; flag means that the source exe will not even be copied to the target
161 ; location. when this particular item is hit on the source side, nechung will
162 ; be executed and a fortune will be displayed if the database is accessible.
164 [execute_target_side]
165 source=$EXECUTABLE_DIR/bytedump$EXE_END
166 target=$TARGET/meldrick$EXE_END
168 parms="$TARGET/srcpack/doodle_src/library/basis/trap_new.addin"
169 ; this is an example of a target side executable. note that we are providing
170 ; a set of parameters to this exe, each of which should be quoted and separated
171 ; by spaces from the next parameter. note that when this bundle is unpacked,
172 ; there will be a spew of byte data from this command.
174 [target_exec_sans_source]
175 target=$TARGET/bytedunker$EXE_END
176 ; the bytedunker application is copied in a previous step.
179 parms="$TARGET/srcpack/doodle_src/library/data_struct/makefile"
180 ; this is an example of a target side executable where the source is not
181 ; specified and no_pack is used. this means that the target app must already
182 ; exist in the target location.
185 source=$EXECUTABLE_DIR/bytedump$EXE_END
186 target=$TARGET/pungentina$EXE_END
189 parms="this" "command will fail" "because it won't be created"
191 ; shows how the "error_okay" flag can be used to keep a failed run of
192 ; an executable program from stopping the unbundling process.
195 source=$PRODUCTION_STORE/feisty_meow_config.ini
196 target=$TARGET/buildonia.ini
198 ; this shows how the "no_replace" macro will avoid overwriting a file if it
199 ; already exists. this emulates the non-overwriting style of copy that most
200 ; installers support.
201 ; to test this option out, run the example app you create to a particular
202 ; directory, then edit the installed version of buildonia.ini to change it
203 ; around, and run the same app again on the same directory. the result
204 ; should be that your changes are kept.
207 source=$PRODUCTION_STORE/feisty_meow_config.ini
208 target=$TARGET/build_file_uhh
210 ; this simple example shows the backing up of a file before the packed
211 ; version gets installed. that ensures that we never clobber a file if
212 ; we know ahead of time that it could have user configured changes or
213 ; another reason not to just write on top of it.
215 [test_variable_defined]
217 ; checks that the variable is defined, so that we know the installer can
218 ; rely on them. this is really only needed if the installer is assuming
219 ; that the variable will be present, and if the install will fail without
220 ; the variable. it makes the most sense when we cannot know the variable
221 ; ahead of time or when we don't want to have to know it.