crun-cli v1.4.0
C-based project scaffolding CLI
Loading...
Searching...
No Matches
crun.h
Go to the documentation of this file.
1
11
12#ifndef __CRUN_H__
13#define __CRUN_H__
14
15// #########################################
16// ### HEADERS & MACROS DECLARATION PART ###
17// #########################################
18
19#include <cjson/cJSON.h>
20#include <stdio.h>
21
22#ifdef _WIN32
23#include <direct.h>
24#include <process.h>
25#define __get_current_dir _getcwd
26#define __get_pid _getpid
27
28#else
29#include <unistd.h>
30#define __get_current_dir getcwd
31#define __get_pid getpid
32#endif
33
34// ################################
35// ### STRUCTS DECLARATION PART ###
36// ################################
37
39 char *name;
40}; // CrunLanguage Structure
41
43 char *name, *description, *url;
44}; // CrunPackage Structure
45
49 const char *json_root_buffer;
50 const char *stacks_path;
51 const char *workspace_path;
52 cJSON *json_root;
53}; // CrunRuntimeContext Structure
54
55// ##################################
56// ### FUNCTIONS DECLARATION PART ###
57// ##################################
58
62void crun();
63
67void crun_version();
68
72void crun_help();
73
79int crun_update();
80
86void crun_stacks_json_checker(const char *);
87
95void get_user_choice(int *, const char *, const int);
96
103const char *download_crun_package(const struct CrunPackage *);
104
111char *get_language_buffer(cJSON *);
112
120char *get_packages_buffer(cJSON *, const char *);
121
128void free_all(void **, const size_t);
129
130#endif // __CRUN_H__
void crun_version()
Print app version.
Definition crun.c:315
char * get_language_buffer(cJSON *)
Build selectable language menu buffer from JSON root.
Definition crun.c:577
void crun()
Main CLI flow entrypoint.
Definition crun.c:356
void free_all(void **, const size_t)
Release language/package maps and additional owned pointers.
Definition crun.c:730
void crun_help()
Print command-line usage/help.
Definition crun.c:319
char * get_packages_buffer(cJSON *, const char *)
Build selectable package menu buffer for one language.
Definition crun.c:627
const char * download_crun_package(const struct CrunPackage *)
Resolve package archive from cache or download it.
Definition crun.c:488
void crun_stacks_json_checker(const char *)
Ensure stacks metadata file exists locally.
Definition crun.c:565
void get_user_choice(int *, const char *, const int)
Prompt for menu choice with validation.
Definition crun.c:547
int crun_update()
Refresh local stacks metadata from remote source.
Definition crun.c:323
Definition crun.h:38
char * name
Definition crun.h:39
Definition crun.h:42
char * description
Definition crun.h:43
char * name
Definition crun.h:43
char * url
Definition crun.h:43
Definition crun.h:46
char * packages_buffer
Definition crun.h:48
const char * workspace_path
Definition crun.h:51
cJSON * json_root
Definition crun.h:52
const char * stacks_path
Definition crun.h:50
char * languages_buffer
Definition crun.h:47
const char * json_root_buffer
Definition crun.h:49