aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOxbian <oxbian@mailbox.org>2025-02-08 14:56:35 -0500
committerOxbian <oxbian@mailbox.org>2025-02-08 14:56:35 -0500
commit27564303b4c0e0b569141afcf6c6513c74b17ff7 (patch)
tree2e8c4dc58abda7d603567fda5b52e539230942f6
parentece2583cee34ad19e3b3458e9c884638c8f8b73c (diff)
downloadcoding-style-main.tar.gz
coding-style-main.zip
feat: improving C setup, adding Python setupmain
-rw-r--r--C/.gitignore52
-rw-r--r--C/README.md1
-rwxr-xr-xC/setup.sh37
-rw-r--r--Python/.gitignore174
-rw-r--r--Python/requirements_dev.txt1
-rwxr-xr-xPython/setup.sh40
6 files changed, 304 insertions, 1 deletions
diff --git a/C/.gitignore b/C/.gitignore
new file mode 100644
index 0000000..c6127b3
--- /dev/null
+++ b/C/.gitignore
@@ -0,0 +1,52 @@
+# Prerequisites
+*.d
+
+# Object files
+*.o
+*.ko
+*.obj
+*.elf
+
+# Linker output
+*.ilk
+*.map
+*.exp
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Libraries
+*.lib
+*.a
+*.la
+*.lo
+
+# Shared objects (inc. Windows DLLs)
+*.dll
+*.so
+*.so.*
+*.dylib
+
+# Executables
+*.exe
+*.out
+*.app
+*.i*86
+*.x86_64
+*.hex
+
+# Debug files
+*.dSYM/
+*.su
+*.idb
+*.pdb
+
+# Kernel Module Compile Results
+*.mod*
+*.cmd
+.tmp_versions/
+modules.order
+Module.symvers
+Mkfile.old
+dkms.conf
diff --git a/C/README.md b/C/README.md
index 0cd1d57..3a38e07 100644
--- a/C/README.md
+++ b/C/README.md
@@ -74,4 +74,3 @@ So once the Makefile is made, just run `make all; bear -- make`
## Folder and filename
-Folder name MUST start with an uppercase, and filename
diff --git a/C/setup.sh b/C/setup.sh
new file mode 100755
index 0000000..d53c8f5
--- /dev/null
+++ b/C/setup.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env sh
+# Setup a C environment using ArKa coding style
+
+vcs=true
+project_name="$1"
+script_dir="$(cd "$(dirname "$0")" && pwd)"
+
+# Parsing args
+for arg in "$@"; do
+ if [ "$arg" = "--no-vcs" ]; then
+ vcs=false
+ else
+ project_name="$arg"
+ fi
+done
+
+if [ -n "$project_name" ]; then
+ printf "Installing your environment...\n"
+ mkdir -p "$project_name" || exit
+ cd "$project_name"
+
+ # If vcs is true, init git in the project
+ if [ "$vcs" = true ]; then
+ printf "Setting up git in %s\n" "$project_name"
+ git init
+ cp "$script_dir"/.gitignore .gitignore
+ fi
+
+ printf "Setting up C environment + clangd config\n"
+ cp "$script_dir"/.clang-format .clang-format
+ # copy linters, formatters config
+ printf "Your C environment is now ready, enjoy :)\n"
+else
+ printf "Usage:\n\t%s [--no-vcs] {dirname}\n\n\t--no-vcs: git vcs not added to the project\n" "$0"
+fi
+
+
diff --git a/Python/.gitignore b/Python/.gitignore
new file mode 100644
index 0000000..0a19790
--- /dev/null
+++ b/Python/.gitignore
@@ -0,0 +1,174 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+# For a library or package, you might want to ignore these files since the code is
+# intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# UV
+# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
+# This is especially recommended for binary packages to ensure reproducibility, and is more
+# commonly ignored for libraries.
+#uv.lock
+
+# poetry
+# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
+# This is especially recommended for binary packages to ensure reproducibility, and is more
+# commonly ignored for libraries.
+# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
+#poetry.lock
+
+# pdm
+# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
+#pdm.lock
+# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
+# in version control.
+# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
+.pdm.toml
+.pdm-python
+.pdm-build/
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
+
+# PyCharm
+# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
+# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
+# and can be added to the global gitignore or merged into this file. For a more nuclear
+# option (not recommended) you can uncomment the following to ignore the entire idea folder.
+#.idea/
+
+# Ruff stuff:
+.ruff_cache/
+
+# PyPI configuration file
+.pypirc
diff --git a/Python/requirements_dev.txt b/Python/requirements_dev.txt
new file mode 100644
index 0000000..6b495f9
--- /dev/null
+++ b/Python/requirements_dev.txt
@@ -0,0 +1 @@
+python-lsp-server[all]
diff --git a/Python/setup.sh b/Python/setup.sh
new file mode 100755
index 0000000..f094e00
--- /dev/null
+++ b/Python/setup.sh
@@ -0,0 +1,40 @@
+#!/usr/bin/env sh
+# Setup a Python environment using ArKa coding style
+
+vcs=true
+project_name="$1"
+script_dir="$(cd "$(dirname "$0")" && pwd)"
+
+# Parsing args
+for arg in "$@"; do
+ if [ "$arg" = "--no-vcs" ]; then
+ vcs=false
+ else
+ project_name="$arg"
+ fi
+done
+
+if [ -n "$project_name" ]; then
+ printf "Installing your environment...\n"
+ mkdir -p "$project_name" || exit
+ cd "$project_name"
+
+ # If vcs is true, init git in the project
+ if [ "$vcs" = true ]; then
+ printf "Setting up git in %s\n" "$project_name"
+ git init
+ cp "$script_dir"/.gitignore .gitignore
+ fi
+
+ printf "Setting up Python virtual environment + needed dev requirements\n"
+ python3 -m venv .venv
+ source .venv/bin/activate
+ cp "$script_dir"/requirements_dev.txt requirements_dev.txt
+ pip install -r requirements_dev.txt
+ # copy linters, formatters config
+ printf "Your python environment is now ready, enjoy :)\n"
+else
+ printf "Usage:\n\t%s [--no-vcs] {dirname}\n\n\t--no-vcs: git vcs not added to the project\n" "$0"
+fi
+
+
ArKa projects. All rights to me, and your next child right arm.