X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=nucleus%2Fapplications%2Fbundler%2Fbundle_creator.cpp;h=04c5b1730f9c3a69d2b34735af1ac8ae1fe249c3;hb=d7e8a05960951d8ce67e36c587726a851e2f5165;hp=52affc8f6bfe87109278e3f3b12cdfc35d9768d4;hpb=393c5d16bddb0ffef914699d2294ca2204dd16d7;p=feisty_meow.git diff --git a/nucleus/applications/bundler/bundle_creator.cpp b/nucleus/applications/bundler/bundle_creator.cpp index 52affc8f..04c5b173 100644 --- a/nucleus/applications/bundler/bundle_creator.cpp +++ b/nucleus/applications/bundler/bundle_creator.cpp @@ -103,7 +103,7 @@ public: bundle_creator() : application_shell(), _app_name(filename(_global_argv[0]).basename()), - _bundle(NIL), _stub_size(0), _keyword() {} + _bundle(NULL_POINTER), _stub_size(0), _keyword() {} virtual ~bundle_creator() { WHACK(_bundle); @@ -239,6 +239,10 @@ Abandoning bundling process.\n", _app_name.s())); environment::set("DLL_START", ""); environment::set("DLL_END", ".dll"); #endif + // specify a target variable on the source side so that we can operate in there, + // even if the bundle doesn't specify one. otherwise we can't run source side commands + // properly if the paths are based on TARGET (like TMP often is). + environment::set("TARGET", environment::TMP()); int ret = 0; if ( (ret = read_manifest()) ) FAIL_RETURN(ret, "reading manifest"); @@ -324,7 +328,7 @@ int bundle_creator::add_files_here(directory &dirndl, const astring &source, int bundle_creator::recurse_into_dir(const astring &source, const astring &target, int manifest_index) { -// FUNCDEF("recurse_into_dir"); + FUNCDEF("recurse_into_dir"); //LOG(astring("src=") + source + " dest=" + target); // we won't include the subversion folder. @@ -362,7 +366,7 @@ int bundle_creator::recurse_into_dir(const astring &source, int bundle_creator::patch_recursive_target(const astring &source, const astring &target, int manifest_index) { -// FUNCDEF("patch_recursive_target"); + FUNCDEF("patch_recursive_target"); //LOG(astring("patch recurs src=") + source + " targ=" + target); return recurse_into_dir(source, target, manifest_index); } @@ -370,7 +374,7 @@ int bundle_creator::patch_recursive_target(const astring &source, int bundle_creator::patch_wildcard_target(const astring &source, const astring &target, int manifest_index) { -// FUNCDEF("patch_wildcard_target"); + FUNCDEF("patch_wildcard_target"); // find the last slash. the rest is our wildcard component. int src_end = source.end(); int slash_indy = source.find('/', src_end, true); @@ -465,7 +469,7 @@ int bundle_creator::read_manifest() BASE_LOG(astring("will set ") + _manifest_list[i]._payload + " = " + _manifest_list[i]._parms); astring new_value = parser_bits::substitute_env_vars(_manifest_list[i]._parms); -///why oh why are we allowing them to overwrite our actual environment just because they're bundling something? environment::set(_manifest_list[i]._payload, new_value); + environment::set(_manifest_list[i]._payload, new_value); #ifdef DEBUG_BUNDLER BASE_LOG(astring("** variable ") + _manifest_list[i]._payload + " should have value=" + new_value); @@ -744,7 +748,7 @@ astring bundle_creator::determine_stub_file_and_validate() #ifdef __WIN32__ astring stub_filename("unpacker_stub.exe"); #endif - astring repo_dir = "$PRODUCTION_DIR"; + astring repo_dir = "$RUNTIME_PATH"; astring stub_file = parser_bits::substitute_env_vars (repo_dir + "/binaries/" + stub_filename, false); if (!filename(stub_file).exists()) { @@ -918,7 +922,7 @@ int bundle_creator::finalize_file() int bundle_creator::write_offset() { -// FUNCDEF("write_offset"); + FUNCDEF("write_offset"); byte_filer bun(_output_file, "r+b"); // open the file for updating. astring magic_string("muftiloc"); // our sentinel string.