~singpolyma/biboumi

ref: 0ab40dc1ab4e689921da54080b135e1d22b1c586 biboumi/src/utils/xdg.cpp -rw-r--r-- 704 bytes
0ab40dc1 — louiz’ Refactoring louloulibs and cmake 6 years ago
                                                                                
ea0b2f2b Florent Le Coz
0ab40dc1 louiz’
ea0b2f2b Florent Le Coz
33fa1dcd Florent Le Coz
ea0b2f2b Florent Le Coz
33fa1dcd Florent Le Coz
ea0b2f2b Florent Le Coz
33fa1dcd Florent Le Coz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <utils/xdg.hpp>
#include <cstdlib>

#include "biboumi.h"

std::string xdg_path(const std::string& filename, const char* env_var)
{
  const char* xdg_home = ::getenv(env_var);
  if (xdg_home && xdg_home[0] == '/')
    return std::string{xdg_home} + "/" PROJECT_NAME "/" + filename;
  else
    {
      const char* home = ::getenv("HOME");
      if (home)
        return std::string{home} + "/" ".config" "/" PROJECT_NAME "/" + filename;
      else
        return filename;
    }
}

std::string xdg_config_path(const std::string& filename)
{
  return xdg_path(filename, "XDG_CONFIG_HOME");
}

std::string xdg_data_path(const std::string& filename)
{
  return xdg_path(filename, "XDG_DATA_HOME");
}