using System;
using System.IO;
using System.Reflection;

public static class Paths
{
    static readonly string ExeDir =
        Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

    public static readonly string DataDir = Resolve();

    const string Probe = "homepageall.glade";

    static string Resolve()
    {
        string[] candidates = {
            Environment.GetEnvironmentVariable("EARS_DATADIR"),
            ExeDir,
            Path.Combine(ExeDir, "data"),
            Path.Combine(ExeDir, "..", "data"),   // make run from bin/linux
            "/usr/lib/ears",
            "/usr/local/lib/ears",
        };

        foreach (var c in candidates)
            if (!string.IsNullOrEmpty(c) && File.Exists(Path.Combine(c, Probe)))
                return Path.GetFullPath(c);

        return ExeDir;
    }

    public static string Get(string name) => Path.Combine(DataDir, name);
}