~singpolyma/biboumi

ref: f0f3d3d4e2fb7c02a5b2ad517632ec5071fefb45 biboumi/src/utils/xdg.cpp -rw-r--r-- 704 bytes
f0f3d3d4 — louiz’ Remove the now useless “find … touch” hack in gitlab-ci.yml 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");
}