Metadata-Version: 2.4
Name: fzx2
Version: 1.0.0
Summary: 507EX executable format version 2.0
Author-email: Wyatt Brashear <admin@wyattb.dev>
License: MIT
Requires-Python: >=3.10
Requires-Dist: flask~=3.1.2
Requires-Dist: requests>=2.32.5
Description-Content-Type: text/markdown

# 507ex 2.0 (FZX2)
## What is 507ex, and why is there a 2.0?
A while back, I created a executable format called 507ex (507 Being my brand that I like to put things under). I made one
mistake on the first time. I used AI in my code. That completely ruined my code. So I decided it was time to rewrite it.
Introducing 507ex 2.0 (Abbreviated as FZX2).
### What's New?
- AI was not used to write code (yay)
- Enhanced metadata that stores more information
- Auto Dependency Manager. Uses a list embedded in the metadata to ensure the application has the correct dependencies.
- All operations are accessible through one module.
- CAR (Central Application Repository) now supports authentication.
## CAR (Central Application Repository)
CAR is a server system that allows seamless execution of applications from the command line.
Example:
~~~bash
python3 fzx2.py exec http://127.0.0.1:5000/pull/955d7c5f-5b21-428f-94e4-8e13f1e7223c
~~~
Easy as that! All CAR operations are authenticated by a random "secret code" generated by the server.
### Endpoint Documentation
POST: /push. Push an executable to the server. Accepts form data in the following form: {'file_id': STR}, and accepts file data in this form: {'file': FILE}.
Returns:
```json
{
  "status": "success",
  "secret_code": "secret_code",
  "url": "request.url_root/pull/filename"
}
```
POST: /pull/<file_id>. Pull an executable from the server. Accepts form data in the following form: {'secret_code': STR}
Returns:
The file requested or an error message. Files are sent using flask's send_from_directory function.
### Running the server
Source Code Method:
~~~bash
python3 fzx2.py start_server
~~~
Compiled Executable Method:
~~~bash
./fzx2 start_server
~~~
## Installation
### Method 1 (Compiled Executable)
1. Download the latest release from the releases page.
2. Run the executable. (Recommended to be done in a terminal)
### Method 2 (Source Code)
1. Clone the Repository using `git clone https://github.com/WyattBrashear/507ex-utils2.git`
2. Run: `pip install -r requirements.txt` in order to install the dependencies.
3. Run the main script using `python3 fzx2.py`
## CLI Usage
`python3 fzx2.py <operation> <path>`
All operations are listed below:
1. exec: Executes an executable
2. start_server: Starts the CAR server
3. build: Builds an executable
4. unpack: Unpacks an executable
5. upload: Uploads an executable
## 507ex's required files
All directories that are going to be turned into a 507ex requires 2 files:
1. runfile (contains the command to run the script)
2. dependfile
Dependfile is in this format
~~~text
!{name}|{command}
!PLATFORM {platform}
{dependencies}
~~~
## Demo Video
https://drive.google.com/file/d/1QfDZL2Spc7WKqbfCU_m7xSnRLbJdnfNd/view?usp=sharing
## AI Usage
As per usual, I am against using AI in my code. All the code in this repository was human written. The instances of AI 
usage was autocomplete and AI Assistant when I was stuck, pointing me in the right direction (fzx2.py).