*
**************************************************************************/
-#include <cstdlib> // atexit, getenv
+#include "../config.h"
+
+#include <cstdlib> // atexit
#include <exception>
#include <functional>
#include <iostream>
#include <string>
-#include <unistd.h> // access
+
+#include <stlplus/portability/file_system.hpp>
+#include <stlplus/portability/subprocesses.hpp>
#include <moof/log.hh>
#include <moof/modal_dialog.hh>
#include "GameLayer.hh"
#include "Main.hh"
#include "TitleLayer.hh"
-
-#include "../config.h"
#include "version.h"
// 1. YOINK_DATADIR (environment)
// 2. YOINK_DATADIR (configure)
- std::string path;
+ std::string path;
+ stlplus::env_vector environment;
- char* dataDir = getenv("YOINK_DATADIR");
- if (dataDir)
+ std::string datadir = environment["YOINK_DATADIR"];
+ if (!datadir.empty())
{
- path += dataDir;
+ path += datadir;
path += ":";
}
path += YOINK_DATADIR;
std::string path("yoinkrc");
moof::resource::find(path);
+ stlplus::env_vector environment;
+
#if !defined(_WIN32)
path += ":/etc/yoinkrc";
#endif
path += ":$HOME/.yoinkrc";
- char* configFile = getenv("YOINKRC");
- if (configFile)
+ std::string rc_file = environment["YOINKRC"];
+ if (!rc_file.empty())
{
path += ":";
- path += configFile;
+ path += rc_file;
}
return path;
void Main::printInfo(int argc, char* argv[])
{
- std::string assets;
- std::string datadir;
- std::string config;
+ stlplus::env_vector environment;
+ std::string assets;
assets.assign(YOINK_DATADIR);
- int accessible = access(assets.c_str(), R_OK);
- if (accessible != 0) assets += " (no access)";
+ if (!stlplus::file_readable(assets)) assets += " (no access)";
- char* temp = getenv("YOINK_DATADIR");
- if (temp)
+ std::string datadir = environment["YOINK_DATADIR"];
+ if (!datadir.empty())
{
- datadir = temp;
- accessible = access(temp, R_OK);
- if (accessible != 0) datadir += " (no access)";
+ if (!stlplus::folder_readable(datadir)) datadir += " (no access)";
}
- temp = getenv("YOINKRC");
- if (temp)
+ std::string rc_file = environment["YOINKRC"];
+ if (!rc_file.empty())
{
- config = temp;
- accessible = access(temp, R_OK);
- if (accessible != 0) config += " (no access)";
+ if (!stlplus::file_readable(rc_file)) rc_file += " (no access)";
}
std::cout << " Executable: " << argv[0] << std::endl
<< "-"
#endif
<< "threads" << std::endl
- << " YOINKRC: " << config << std::endl
+ << " YOINKRC: " << rc_file << std::endl
<< "YOINK_DATADIR: " << datadir << std::endl;
}
if (asset) asset->cool();
else moof::log_warning("no asset obtained!!");
- moof::timer reloadTimer(
- boost::bind(&moof::resource::reload_as_needed),
- SCALAR(2.0),
- moof::timer::repeat);
+ //moof::timer reloadTimer(
+ //boost::bind(&moof::resource::reload_as_needed),
+ //SCALAR(2.0),
+ //moof::timer::repeat);
- //for (;;)
- //{
- //myAsset.get()->cool();
- //moof::resource::reload_as_needed();
- //sleep(1);
- //}
-
- //return 0;
-
- moof::resolver_task task("4950", "lappy");
- task.run();
-
- int i = task.wait();
- moof::log_warning("task ended with code:", i);
-
- std::vector<moof::socket::address>::const_iterator it;
- for (it = task.addresses().begin(); it != task.addresses().end(); ++it)
+ for (;;)
{
- moof::socket::address addr = *it;
-
- moof::log_info("address:", addr, "(", addr.type(), ")");
+ if (myAsset) myAsset.get()->cool();
+ moof::resource::reload_as_needed();
+ sleep(1);
}
-
- //ASSERT(5 == 8 && "uh oh that's not right");
-
-
- std::vector<uint8_t> hi;
- for (int a = 0; a < 4000; a++)
- {
- hi.push_back(a);
- }
-
- moof::log_info("array size:", hi.size());
- moof::packet packet;
- packet << hi;
-
- //for (it = task.addresses().begin(); it != task.addresses().end(); ++it)
- //{
- //moof::socket sock(*it);
- moof::socket sock(moof::socket::address::broadcast("4950"));
- //moof::socket sock("4950", "lappy", SOCK_DGRAM);
- sock.set(SO_BROADCAST, 1);
- sock.connect();
-
- //if (sock.isConnected())
- //{
- moof::packet pack;
- pack << "hello world";
- sock.write(pack);
- //sock.write(pack, sock.address());
- moof::log_info("sent", pack.size(), "bytes");
-
- const char* data = pack.bytes();
- for (unsigned i = 0; i < pack.size(); ++i)
- {
- moof::log_warning("meh:", data[i]);
- }
-
- char data2[56];
- pack.read(data2, 13);
- for (int i = 0; i < 13; ++i)
- {
- moof::log_warning("meh:", data2[i]);
- }
- //}
- //else
- //{
- //moof::log_error("NOT CONNECTED");
- //}
- //}
-
-
- //return 0;
if (argc > 1)