aboutsummaryrefslogblamecommitdiffstats
path: root/util/system/progname.cpp
blob: a7eaa82b4b1a55283019fde92fd6676dfd12ed8b (plain) (tree)
1
2
3
4
5
6
7
8
                     
                     
 


                                   
 

                                   
                                                                                  

         
                         
      
              
 
                                 
                                                     
 
 
                                        
                  
#include "execpath.h"
#include "progname.h"

#include <util/folder/dirut.h>
#include <util/generic/singleton.h>

static const char* Argv0;

namespace {
    struct TProgramNameHolder {
        inline TProgramNameHolder()
            : ProgName(GetFileNameComponent(Argv0 ? Argv0 : GetExecPath().data()))
        {
        }

        TString ProgName;
    };
} // namespace

const TString& GetProgramName() {
    return Singleton<TProgramNameHolder>()->ProgName;
}

void SetProgramName(const char* argv0) {
    Argv0 = argv0;
}