--version implementation

This commit is contained in:
Linus Dierheimer 2021-02-22 20:36:25 +01:00
parent 7cbe1c2359
commit fea8e371e4
4 changed files with 43 additions and 7 deletions

View File

@ -2,12 +2,30 @@ cmake_minimum_required(VERSION 3.0)
project(fastfetch)
execute_process(
COMMAND git rev-list --count HEAD
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
OUTPUT_VARIABLE GIT_REV_LIST
OUTPUT_STRIP_TRAILING_WHITESPACE
)
execute_process(
COMMAND git rev-parse --short HEAD
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
OUTPUT_VARIABLE GIT_REV_PARSE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(PROJECT_VERSION "r${GIT_REV_LIST}.${GIT_REV_PARSE}")
include (${CMAKE_ROOT}/Modules/FindX11.cmake)
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -march=native -O3 -pipe -fno-plt") # for testing
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -march=native -O3 -pipe -fno-plt") # for testing
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -march=native -O3 -pipe -fno-plt")
add_executable(fastfetch
configure_file(src/fastfetch_config.h.in fastfetch_config.h)
include_directories(${PROJECT_BINARY_DIR})
add_executable(${PROJECT_NAME}
src/fastfetch.c
src/break.c
src/logo.c
@ -34,7 +52,7 @@ add_executable(fastfetch
src/colors.c
)
target_link_libraries(fastfetch
target_link_libraries(${PROJECT_NAME}
${X11_LIBRARIES}
pci
)

View File

@ -1,4 +1,5 @@
#include "fastfetch.h"
#include "fastfetch_config.h"
#include <string.h>
#include <sys/types.h>
@ -8,7 +9,7 @@
void ffPrintKey(FFstate* state, const char* key)
{
printf("%s"FASTFETCH_TEXT_MODIFIER_BOLT"%s"FASTFETCH_TEXT_MODIFIER_RESET": ", state->color, key);
printf(FASTFETCH_TEXT_MODIFIER_BOLT"%s%s"FASTFETCH_TEXT_MODIFIER_RESET": ", state->color, key);
}
void ffPrintLogoAndKey(FFstate* state, const char* key)
@ -176,6 +177,7 @@ static void printHelp()
"\n"
" -h, --help: shows this message and exits\n"
" -h <command>, --help <command>: shows help for a specific command and exits\n"
" -v --version prints the version of fastfetch and exits\n"
" -l <name>, --logo <name>: sets the shown logo. Also changes the main color accordingly\n"
" -c <color>, --color <color>: sets the color of the keys. Must be a linux console color code\n"
" -s <width>, --seperator <width>: sets the distance between logo and text\n"
@ -226,7 +228,7 @@ static void parseArguments(int argc, char** argv, FFstate* state)
{
for(int i = 1; i < argc; i++)
{
if(strcmp(argv[i], "--help") == 0 || strcmp(argv[i], "-h") == 0)
if(strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0)
{
if(i == argc - 1)
printHelp();
@ -235,6 +237,11 @@ static void parseArguments(int argc, char** argv, FFstate* state)
exit(0);
}
else if(strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "--version") == 0)
{
puts(FASTFETCH_PROJECT_NAME" "FASTFETCH_PROJECT_VER);
exit(0);
}
else if(strcmp(argv[i], "--list-logos") == 0)
{
ffListLogos();
@ -249,7 +256,7 @@ static void parseArguments(int argc, char** argv, FFstate* state)
{
state->showErrors = true;
}
else if(strcmp(argv[i], "--logo") == 0 || strcmp(argv[i], "-l") == 0)
else if(strcmp(argv[i], "-l") == 0 || strcmp(argv[i], "--logo") == 0)
{
if(i == argc - 1)
{

11
src/fastfetch_config.h.in Normal file
View File

@ -0,0 +1,11 @@
#ifndef FASTFETCH_INDLUDED_fastfetch_config_h_in
#define FASTFETCH_INDLUDED_fastfetch_config_h_in
#define FASTFETCH_PROJECT_NAME "@PROJECT_NAME@"
#define FASTFETCH_PROJECT_VER "@PROJECT_VERSION@"
// #define FASTFETCH_PROJECT_VER_MAJOR "@PROJECT_VERSION_MAJOR@"
// #define FASTFETCH_PROJECT_VER_MINOR "@PROJECT_VERSION_MINOR@"
// #define FASTFETCH_PTOJECT_VER_PATCH "@PROJECT_VERSION_PATCH@"
#endif // FASTFETCH_INDLUDED_fastfetch_config_h_in

View File

@ -11,7 +11,7 @@ void ffPrintTitle(FFstate* state)
ffPrintLogoLine(state);
printf("%s"FASTFETCH_TEXT_MODIFIER_BOLT"%s"FASTFETCH_TEXT_MODIFIER_RESET"@%s"FASTFETCH_TEXT_MODIFIER_BOLT"%s"FASTFETCH_TEXT_MODIFIER_RESET"\n",
printf(FASTFETCH_TEXT_MODIFIER_BOLT"%s%s"FASTFETCH_TEXT_MODIFIER_RESET"@"FASTFETCH_TEXT_MODIFIER_BOLT"%s%s"FASTFETCH_TEXT_MODIFIER_RESET"\n",
state->color, state->passwd->pw_name, state->color, hostname
);
}