From 118b53690a49dead67f39e3bf38c54643bff9dd1 Mon Sep 17 00:00:00 2001 From: Chris Koeritz Date: Tue, 11 Sep 2012 11:30:23 -0400 Subject: [PATCH] removed last places the TMP variables was getting deranged. now there's no spurious log in the wrong place. sheesh. --- .../applications/bundler/bundle_creator.cpp | 4 ++++ .../application_configuration.cpp | 24 ++++++++++++++++++- production/setup_src/bundle_example/makefile | 2 +- .../setup_src/whole_build_package/makefile | 2 ++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/nucleus/applications/bundler/bundle_creator.cpp b/nucleus/applications/bundler/bundle_creator.cpp index c537aa4f..8212edc3 100644 --- a/nucleus/applications/bundler/bundle_creator.cpp +++ b/nucleus/applications/bundler/bundle_creator.cpp @@ -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"); diff --git a/nucleus/library/configuration/application_configuration.cpp b/nucleus/library/configuration/application_configuration.cpp index 3b70e553..d4b7aca8 100644 --- a/nucleus/library/configuration/application_configuration.cpp +++ b/nucleus/library/configuration/application_configuration.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -323,11 +324,28 @@ printf("%s", (char *)a_sprintf("got log dir with %s value\n", log_dir.s()).s()); } // now we make sure the directory exists. + filename testing(log_dir); + if (!testing.exists()) { + bool okay = directory::make_directory(log_dir); + if (!okay) { + LOG(astring("failed to create logging directory: ") + log_dir); + // return a directory almost guaranteed to exist; best we can do in this case. +#ifdef __UNIX__ + return "/tmp"; +#endif +#ifdef __WIN32__ + return "c:/"; +#endif + } + } + +#if 0 struct stat to_fill; int stat_ret = stat(log_dir.observe(), &to_fill); if (stat_ret || !(to_fill.st_mode & S_IFDIR) ) { // if it's not anything yet or if it's not a directory, then we need // to create it. + //if it's something besides a directory... should it be deleted? #ifdef __UNIX__ int mk_ret = mkdir(log_dir.s(), 0777); @@ -335,9 +353,13 @@ printf("%s", (char *)a_sprintf("got log dir with %s value\n", log_dir.s()).s()); #ifdef __WIN32__ int mk_ret = mkdir(log_dir.s()); #endif - if (mk_ret) return ""; + if (mk_ret) { +printf("creating logging directory failed with outcome %d.\n", mk_ret); + return ""; //can't have a log file if we can't make the directory successfully??? + } } +#endif return log_dir; } diff --git a/production/setup_src/bundle_example/makefile b/production/setup_src/bundle_example/makefile index bf92bb25..c1f29c96 100644 --- a/production/setup_src/bundle_example/makefile +++ b/production/setup_src/bundle_example/makefile @@ -4,8 +4,8 @@ PROJECT = example_bundle TYPE = hierarchy FIRST_TARGETS = build_bundle CLEANUPS = $(FEISTY_MEOW_DIR)/install/example_bundle$(EXE_END) +# set the unix bin variable so the bundle finds the apps. export UNIX_BIN = /bin -#hmmm: is UNIX_BIN used anywhere? include cpp/rules.def diff --git a/production/setup_src/whole_build_package/makefile b/production/setup_src/whole_build_package/makefile index 36e6a1b7..834b0209 100644 --- a/production/setup_src/whole_build_package/makefile +++ b/production/setup_src/whole_build_package/makefile @@ -4,11 +4,13 @@ PROJECT = Whole_Build_Pack FIRST_TARGETS = create_package CLEANUPS = $(PRODUCTION_DIR)/install/whole_build* TYPE = hierarchy +export TARGET=$(TMP) include cpp/rules.def create_package: ifeq "$(NO_BUILD_PACK)" "" + $(HIDE)mkdir $(TARGET)/waste $(HIDESH)create_whole_build_pack.sh "$(major).$(minor).$(revision).$(build)" endif -- 2.34.1