diff --git a/Package/Python/dist/bellande_format-0.1.1.tar.gz b/Package/Python/dist/bellande_format-0.1.1.tar.gz new file mode 100644 index 0000000..257b0c8 Binary files /dev/null and b/Package/Python/dist/bellande_format-0.1.1.tar.gz differ diff --git a/Package/Python/publish.sh b/Package/Python/publish.sh new file mode 100755 index 0000000..48934a9 --- /dev/null +++ b/Package/Python/publish.sh @@ -0,0 +1,2 @@ +python setup.py sdist +twine upload dist/* diff --git a/Package/Python/setup.py b/Package/Python/setup.py new file mode 100644 index 0000000..c15691b --- /dev/null +++ b/Package/Python/setup.py @@ -0,0 +1,40 @@ +from setuptools import setup, find_packages + +with open("README.md", "r", encoding="utf-8") as fh: + long_description = fh.read() + +setup( + name="bellande_format", + version="0.1.1", + description="Bellande Format is a file format type", + long_description=long_description, + long_description_content_type="text/markdown", + author="RonaldsonBellande", + author_email="ronaldsonbellande@gmail.com", + packages=find_packages(where="src"), + package_dir={"": "src"}, + include_package_data=True, + install_requires=[ + "numpy", + ], + classifiers=[ + "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", + "Programming Language :: Python", + ], + keywords=["package", "setuptools"], + python_requires=">=3.0", + extras_require={ + "dev": ["pytest", "pytest-cov[all]", "mypy", "black"], + }, + entry_points={ + 'console_scripts': [ + 'Bellande_Format = bellande_parser:Bellande_Format', + ], + }, + project_urls={ + "Home": "https://github.com/RonaldsonBellande/bellande_format", + "Homepage": "https://github.com/RonaldsonBellande/bellande_format", + "documentation": "https://github.com/RonaldsonBellande/bellande_format", + "repository": "https://github.com/RonaldsonBellande/bellande_format", + }, +) diff --git a/Package/Rust/publish.sh b/Package/Rust/publish.sh new file mode 100755 index 0000000..f23334d --- /dev/null +++ b/Package/Rust/publish.sh @@ -0,0 +1,2 @@ +cargo package +cargo publish diff --git a/Package/Rust/src/Cargo.toml b/Package/Rust/src/Cargo.toml new file mode 100644 index 0000000..30b64e9 --- /dev/null +++ b/Package/Rust/src/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "bellande_parser" +version = "0.0.1" +edition = "2021" +authors = ["Ronaldson Bellande ronaldsonbellande@gmail.com"] +description = "Bellande File Format" +license = "GNU" + +[lib] +path = "bellande_parser.rs" + +[dependencies] +std = { version = "1.65", features = ["collections", "fs", "path"] } diff --git a/git_scripts/fix_errors.sh b/git_scripts/fix_errors.sh new file mode 100755 index 0000000..2ebdbee --- /dev/null +++ b/git_scripts/fix_errors.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Get the URL from .git/config +git_url=$(git config --get remote.origin.url) + +# Check if a URL is found +if [ -z "$git_url" ]; then + echo "No remote URL found in .git/config." + exit 1 +fi + +# Clone the repository into a temporary folder +git clone "$git_url" tmp_clone + +# Check if the clone was successful +if [ $? -eq 0 ]; then + # Remove the existing .git directory if it exists + if [ -d ".git" ]; then + rm -rf .git + fi + + # Copy the .git directory from the clone to the current repository + cp -r tmp_clone/.git . + + # Remove the clone directory + rm -rf tmp_clone + + echo "Repository cloned and .git directory copied successfully." +else + echo "Failed to clone the repository." +fi diff --git a/git_scripts/push.sh b/git_scripts/push.sh new file mode 100755 index 0000000..c1ede8b --- /dev/null +++ b/git_scripts/push.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Git push what is already in the repository +git pull --no-edit; git fetch; + +# Exclude specific files and directories +EXCLUDES=("executable") + +# Find all non-hidden files and directories, excluding any hidden files and directories +find . -type f ! -path '*/.*' -print0 | while IFS= read -r -d '' file; do + # Check if the file is in the exclude list + should_exclude=false + for exclude in "${EXCLUDES[@]}"; do + if [[ "$(basename "$file")" == "$exclude" ]]; then + should_exclude=true + break + fi + done + + # Add file to staging area if it's not excluded + if [ "$should_exclude" = false ]; then + git add -f "$file" + fi +done +git commit -am "latest pushes"; git push diff --git a/git_scripts/repository_recal.sh b/git_scripts/repository_recal.sh new file mode 100755 index 0000000..4c7fd4f --- /dev/null +++ b/git_scripts/repository_recal.sh @@ -0,0 +1,110 @@ +#!/bin/bash + +# Git push what is already in the repository +git pull --no-edit; git fetch; git add .; git commit -am "latest pushes"; git push + +# Get the current directory +current_dir=$(pwd) + +# Read the remote repository URL from .git/config +remote_repo_url=$(git -C "$current_dir" config --get remote.origin.url) + +# Create a temporary directory for cloning the repository +temp_dir=$(mktemp -d) + +# Clone the repository into the temporary directory without using local references +git clone --no-local "$current_dir" "$temp_dir" + +# Switch to the temporary directory +cd "$temp_dir" + +# Create a temporary file to store the file list +tmp_file=$(mktemp) +# Create a temporary file to store the processed commits +processed_commits_file=$(mktemp) + +# Function to check if a commit has already been processed +is_commit_processed() { + local commit="$1" + + # Check if the commit is already processed + grep -Fxq "$commit" "$processed_commits_file" +} + +# Function to mark a commit as processed +mark_commit_processed() { + local commit="$1" + + # Mark the commit as processed + echo "$commit" >> "$processed_commits_file" +} + +# Function to check if a file or folder exists in the repository +file_exists_in_repo() { + local file_path="$1" + + # Check if the file or folder exists in the repository + git ls-tree --name-only -r HEAD | grep -Fxq "$file_path" +} + +# Function to process the files and folders in each commit +process_commit_files() { + local commit="$1" + + # Check if the commit has already been processed + if is_commit_processed "$commit"; then + echo "Commit $commit already processed. Skipping..." + return + fi + + # Get the list of files and folders in the commit (including subfolders) + git ls-tree --name-only -r "$commit" >> "$tmp_file" + + # Process each file or folder in the commit + while IFS= read -r line + do + # Check if the file or folder exists in the current push + if file_exists_in_repo "$line"; then + echo "Keeping: $line" + else + echo "Deleting: $line" + git filter-repo --path "$line" --invert-paths + fi + done < "$tmp_file" + + # Mark the commit as processed + mark_commit_processed "$commit" + + # Clear the temporary file + > "$tmp_file" +} + +# Iterate over each commit in the repository +git rev-list --all | while IFS= read -r commit +do + process_commit_files "$commit" +done + +# Push the filtered changes to the original repository +git remote add origin "$remote_repo_url" +git push --force origin main + +# Perform a history rewrite to remove the filtered files +git filter-repo --force + +# Fetch the changes from the remote repository +git -C "$current_dir" fetch origin + +# Merge the remote changes into the local repository +git -C "$current_dir" merge origin/main --no-edit + +# Update the local repository and reduce the size of .git if needed +git -C "$current_dir" gc --prune=now +git -C "$current_dir" reflog expire --expire=now --all +git -C "$current_dir" repack -ad + +# Clean up temporary files and directories +cd "$current_dir" +rm -rf "$temp_dir" +rm "$tmp_file" +rm "$processed_commits_file"