~singpolyma/biboumi

ref: ffb402f0adb9f808c7b8bc9616e71f7b3f8931ac biboumi/src/utils/xdg.cpp -rw-r--r-- 704 bytes
ffb402f0 — louiz’ Drop support for botan < 2.0 5 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");
}