Complete scripts/fish-completion.fish, improve scripts/ybcon.sh and add a --version argument.

This commit is contained in:
Username404-59 2021-02-26 20:28:53 +01:00
parent 528d1eb36e
commit a427010099
Signed by: Username404-59
GPG Key ID: 7AB361FBB257A5D1
5 changed files with 49 additions and 24 deletions

View File

@ -41,6 +41,7 @@ set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CMAKE_PROJECT_VERSION}-${TI
include_directories(${CMAKE_CURRENT_LIST_DIR})
add_executable(ybcon src/main.cpp resources/Yerbacon.rc src/parser/MainParse.cpp src/transpiler/MainTranspile.cpp src/etc/filefuncs.cpp src/etc/lexer.cpp src/headers/lex.hpp)
target_compile_definitions(ybcon PRIVATE YBCON_VERSION="${PROJECT_VERSION}")
# lpkg = linux package, wpkg = windows package
if (UNIX AND NOT MINGW)

View File

@ -5,7 +5,7 @@ _ybconAutoComplete() {
COMPREPLY=()
current="${COMP_WORDS[COMP_CWORD]}"
previous="${COMP_WORDS[COMP_CWORD-1]}"
options='-h -p --help --printresult'
options='-h -p --help --version --printresult'
if [[ "${current}" == -* ]]; then
COMPREPLY=("$(compgen -W "$options" -- "$current")")
return 0

View File

@ -1 +1,7 @@
set -l commands --help -p --printresult
set -l commands --help -p --printresult
complete -c ybcon -f
complete -c ybcon -s h -l help -d "Print the help screen"
complete -c ybcon -l version -d "Print the version"
complete -c ybcon -s p -l printresult -d "Enable printing the transpilation result to stdout"
complete -c ybcon -a "(__fish_complete_suffix .ybcon)"

View File

@ -8,13 +8,18 @@ EXENAME=ybcon
defaultBinLocation=/opt/bin/ybcon
usage() {
echo "$EXENAME [-h|--help] [-p|--printresult] file"
echo " -h or --help What you're seeing right now"
echo " -p or --printresult Prints the transpilation result to stdout"
if [ "$1" = false ]; then echo "Invalid arguments, usage:"; fi
echo "$EXENAME [--version] [-h|--help] [-p|--printresult] file"
if [ "$1" = true ]; then
echo " --version Print the version"
echo " -h or --help What you're seeing right now"
echo " -p or --printresult Enable printing the transpilation result to stdout"
fi
}
args="";
run=false;
skipArgsIteration=false;
newArgs() {
if [ "$args" = "" ]; then
@ -25,26 +30,34 @@ newArgs() {
}
if [ "$#" != 0 ]; then
for it in "$@"
do
case "$it" in
-h | --help )
echo "Usage:"
usage
exit 0 ;;
-p | --printresult )
newArgs "$it"
shift ;;
*.ybcon )
newArgs "$it"
run=true
break ;;
* )
usage ;;
esac
done
if [ "$#" = 1 ]; then
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
usage true
exit 0;
elif [ "$1" = "--version" ]; then
run=true
args="$1"
skipArgsIteration=false;
fi
fi
if [ $skipArgsIteration = true ]; then
for it in "$@"
do
case "$it" in
-p | --printresult )
newArgs "$it"
shift ;;
*.ybcon )
newArgs "$it"
run=true
break ;;
* )
usage false ;;
esac
done
fi
else
usage
usage false
fi
runIt() { eval "$1" " $args"; }

View File

@ -2,6 +2,10 @@
#include <memory>
using namespace std;
#ifndef YBCON_VERSION
#define YBCON_VERSION "UNKNOWN"
#endif
extern string getFileContent(const string& file);
extern void setOutputFileContent(const string& language, const string& file, const string& content);
extern string parseString(unique_ptr<string> toParse);
@ -9,6 +13,7 @@ extern string parseString(unique_ptr<string> toParse);
extern string transpile(string toTranspile, string language);
int main(int argc, char* argv[]) {
if ((argc == 2) && (((string) argv[1]) == "--version")) { cout << YBCON_VERSION << endl; exit(0); }
string fileName = (argv[argc - 1] != nullptr) ? argv[argc - 1] : "none" ;
if (fileName != "none" and fileName.ends_with(".ybcon"))
{