code_scanner/common/cmd.h

93 lines
3.1 KiB
C
Raw Normal View History

2023-02-18 03:26:43 +00:00
#pragma once
// command line utility
//
// created on 2023-02-10
//
#include "referer.h"
#include <string>
#include <vector>
#define CONSOLE_COLOR_NONE "\033[0m"
#define CONSOLE_COLOR_FRONT_BLACK "\033[0;30m"
#define CONSOLE_COLOR_FRONT_DARK_GRAY "\033[1;30m"
#define CONSOLE_COLOR_FRONT_RED "\033[0;31m"
#define CONSOLE_COLOR_FRONT_LIGHT_RED "\033[1;31m"
#define CONSOLE_COLOR_FRONT_GREEN "\033[0;32m"
#define CONSOLE_COLOR_FRONT_LIGHT_GREEN "\033[1;32m"
#define CONSOLE_COLOR_FRONT_BROWN "\033[0;33m"
#define CONSOLE_COLOR_FRONT_YELLOW "\033[1;33m"
#define CONSOLE_COLOR_FRONT_BLUE "\033[0;34m"
#define CONSOLE_COLOR_FRONT_LIGHT_BLUE "\033[1;34m"
#define CONSOLE_COLOR_FRONT_PURPLE "\033[0;35m"
#define CONSOLE_COLOR_FRONT_LIGHT_PURPLE "\033[1;35m"
#define CONSOLE_COLOR_FRONT_CYAN "\033[0;36m"
#define CONSOLE_COLOR_FRONT_LIGHT_CYAN "\033[1;36m"
#define CONSOLE_COLOR_FRONT_LIGHT_GRAY "\033[0;37m"
#define CONSOLE_COLOR_FRONT_WHITE "\033[1;37m"
#define CONSOLE_COLOR_BACK_BLACK "\033[0;40m"
#define CONSOLE_COLOR_BACK_DARK_GRAY "\033[1;40m"
#define CONSOLE_COLOR_BACK_RED "\033[0;41m"
#define CONSOLE_COLOR_BACK_LIGHT_RED "\033[1;41m"
#define CONSOLE_COLOR_BACK_GREEN "\033[0;42m"
#define CONSOLE_COLOR_BACK_LIGHT_GREEN "\033[1;42m"
#define CONSOLE_COLOR_BACK_BROWN "\033[0;43m"
#define CONSOLE_COLOR_BACK_YELLOW "\033[1;43m"
#define CONSOLE_COLOR_BACK_BLUE "\033[0;44m"
#define CONSOLE_COLOR_BACK_LIGHT_BLUE "\033[1;44m"
#define CONSOLE_COLOR_BACK_PURPLE "\033[0;45m"
#define CONSOLE_COLOR_BACK_LIGHT_PURPLE "\033[1;45m"
#define CONSOLE_COLOR_BACK_CYAN "\033[0;46m"
#define CONSOLE_COLOR_BACK_LIGHT_CYAN "\033[1;46m"
#define CONSOLE_COLOR_BACK_LIGHT_GRAY "\033[0;47m"
#define CONSOLE_COLOR_BACK_WHITE "\033[1;47m"
namespace console
{
// special effects:
// \033[0m close all attributes
// \033[1m set high-light
// \033[4m underline
// \033[5m blink
// \033[7m reverse(反显)
// \033[8m blanking(消隐)
// \033[30m -- \033[37m set foreground color
// \033[40m -- \033[47m set background color
//
// cursor position:
// \033[nA move up n lines
// \033[nB move down n lines
// \033[nC move right n cols
// \033[nD move left n cols
// \033[y;xH set cursor position
// \033[2J clear screen
// \033[K clear the line after cursor position
// \033[s save cursor position
// \033[u restore cursor position
// \033[?25l hide cursor
// \033[?25h show cursor
};
class cmd_line : public refer
{
std::string cmd_line_;
std::vector<std::string> arguments_;
protected:
cmd_line();
~cmd_line();
public:
static cmd_line* from_console(const char* tips);
static cmd_line* from_command_line(const char* cmdl);
public:
size_t count(void);
const char* parameter(int ind);
const char* parameter(const char* key);
};