using std::cerr;
using std::cout;
-using std::function;
using std::ifstream;
using std::list;
using std::make_pair;
using std::pair;
-using std::runtime_error;
-using std::shared_ptr;
using std::string;
using std::vector;
using std::wstring;
Drive::unmount ()
{
for (auto i: _mount_points) {
- PrivilegeEscalator esc;
int const r = umount(i.string().c_str());
LOG_DISK("Tried to unmount %1 and got %2 and %3", i.string(), r, errno);
if (r == -1) {
}
-void
-unprivileged ()
-{
- uid_t ruid, euid, suid;
- if (getresuid(&ruid, &euid, &suid) == -1) {
- cerr << "getresuid() failed.\n";
- }
- if (seteuid(ruid) == -1) {
- cerr << "seteuid() failed.\n";
- }
-}
-
-
-bool PrivilegeEscalator::test = false;
-
-
-PrivilegeEscalator::~PrivilegeEscalator ()
-{
- if (!test) {
- unprivileged ();
- }
-}
-
-
-PrivilegeEscalator::PrivilegeEscalator ()
-{
- if (!test) {
- int const r = seteuid(0);
- if (r < 0) {
- throw PrivilegeError (String::compose("seteuid() call failed with %1", errno));
- }
- }
-}
-
-
boost::filesystem::path
config_path ()
{
return path;
}
+
+bool
+show_in_file_manager (boost::filesystem::path dir, boost::filesystem::path)
+{
+ int r = system ("which nautilus");
+ if (WEXITSTATUS(r) == 0) {
+ r = system (String::compose("nautilus \"%1\"", dir.string()).c_str());
+ return static_cast<bool>(WEXITSTATUS(r));
+ } else {
+ int r = system ("which konqueror");
+ if (WEXITSTATUS(r) == 0) {
+ r = system (String::compose("konqueror \"%1\"", dir.string()).c_str());
+ return static_cast<bool>(WEXITSTATUS(r));
+ }
+ }
+
+ return true;
+}
+