fzx2 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,10 @@
1
+ # Default ignored files
2
+ /shelf/
3
+ /workspace.xml
4
+ # Ignored default folder with query files
5
+ /queries/
6
+ # Datasource local storage ignored files
7
+ /dataSources/
8
+ /dataSources.local.xml
9
+ # Editor-based HTTP Client requests
10
+ /httpRequests/
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="PYTHON_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$" />
5
+ <orderEntry type="jdk" jdkName="Python 3.10" jdkType="Python SDK" />
6
+ <orderEntry type="sourceFolder" forTests="false" />
7
+ </component>
8
+ </module>
@@ -0,0 +1,6 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <settings>
3
+ <option name="USE_PROJECT_PROFILE" value="false" />
4
+ <version value="1.0" />
5
+ </settings>
6
+ </component>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Black">
4
+ <option name="sdkName" value="Python 3.10" />
5
+ </component>
6
+ <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
7
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/507ex-rewrite.iml" filepath="$PROJECT_DIR$/.idea/507ex-rewrite.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,310 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="AutoImportSettings">
4
+ <option name="autoReloadType" value="SELECTIVE" />
5
+ </component>
6
+ <component name="ChangeListManager">
7
+ <list default="true" id="05695684-fed8-48a8-a9dd-62bfafb4660e" name="Changes" comment="slightly move things around" />
8
+ <option name="SHOW_DIALOG" value="false" />
9
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
10
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
11
+ <option name="LAST_RESOLUTION" value="IGNORE" />
12
+ </component>
13
+ <component name="EmbeddingIndexingInfo">
14
+ <option name="cachedIndexableFilesCount" value="32" />
15
+ <option name="fileBasedEmbeddingIndicesEnabled" value="true" />
16
+ </component>
17
+ <component name="FileTemplateManagerImpl">
18
+ <option name="RECENT_TEMPLATES">
19
+ <list>
20
+ <option value="Python Script" />
21
+ </list>
22
+ </option>
23
+ </component>
24
+ <component name="FlaskConsoleOptions" custom-start-script="import sys; print('Python %s on %s' % (sys.version, sys.platform)); sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])&#10;from flask.cli import ScriptInfo, NoAppException&#10;for module in [&quot;main.py&quot;, &quot;wsgi.py&quot;, &quot;app.py&quot;]:&#10; try: locals().update(ScriptInfo(app_import_path=module, create_app=None).load_app().make_shell_context()); print(&quot;\nFlask App: %s&quot; % app.import_name); break&#10; except NoAppException: pass">
25
+ <envs>
26
+ <env key="FLASK_APP" value="app" />
27
+ </envs>
28
+ <option name="myCustomStartScript" value="import sys; print('Python %s on %s' % (sys.version, sys.platform)); sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])&#10;from flask.cli import ScriptInfo, NoAppException&#10;for module in [&quot;main.py&quot;, &quot;wsgi.py&quot;, &quot;app.py&quot;]:&#10; try: locals().update(ScriptInfo(app_import_path=module, create_app=None).load_app().make_shell_context()); print(&quot;\nFlask App: %s&quot; % app.import_name); break&#10; except NoAppException: pass" />
29
+ <option name="myEnvs">
30
+ <map>
31
+ <entry key="FLASK_APP" value="app" />
32
+ </map>
33
+ </option>
34
+ </component>
35
+ <component name="Git.Settings">
36
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
37
+ </component>
38
+ <component name="GitHubPullRequestSearchHistory">{
39
+ &quot;lastFilter&quot;: {
40
+ &quot;state&quot;: &quot;OPEN&quot;,
41
+ &quot;assignee&quot;: &quot;WyattBrashear&quot;
42
+ }
43
+ }</component>
44
+ <component name="GithubPullRequestsUISettings">{
45
+ &quot;selectedUrlAndAccountId&quot;: {
46
+ &quot;url&quot;: &quot;https://github.com/WyattBrashear/507ex-utils2.git&quot;,
47
+ &quot;accountId&quot;: &quot;a78bfd6e-d425-4806-9c4b-2bc6617ad2f4&quot;
48
+ }
49
+ }</component>
50
+ <component name="McpProjectServerCommands">
51
+ <commands />
52
+ <urls />
53
+ </component>
54
+ <component name="ProjectColorInfo">{
55
+ &quot;associatedIndex&quot;: 8
56
+ }</component>
57
+ <component name="ProjectId" id="3B22NrRxr7qF8UnAFnLOZ107HjR" />
58
+ <component name="ProjectLevelVcsManager">
59
+ <ConfirmationsSetting value="2" id="Add" />
60
+ </component>
61
+ <component name="ProjectViewState">
62
+ <option name="hideEmptyMiddlePackages" value="true" />
63
+ <option name="showLibraryContents" value="true" />
64
+ </component>
65
+ <component name="PropertiesComponent">{
66
+ &quot;keyToString&quot;: {
67
+ &quot;Flask server.Flask (server/app.py).executor&quot;: &quot;Run&quot;,
68
+ &quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;,
69
+ &quot;RunOnceActivity.MCP Project settings loaded&quot;: &quot;true&quot;,
70
+ &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
71
+ &quot;RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252&quot;: &quot;true&quot;,
72
+ &quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
73
+ &quot;RunOnceActivity.typescript.service.memoryLimit.init&quot;: &quot;true&quot;,
74
+ &quot;ai.playground.ignore.import.keys.banner.in.settings&quot;: &quot;true&quot;,
75
+ &quot;com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1&quot;: &quot;true&quot;,
76
+ &quot;git-widget-placeholder&quot;: &quot;main&quot;,
77
+ &quot;junie.onboarding.icon.badge.shown&quot;: &quot;true&quot;,
78
+ &quot;last_opened_file_path&quot;: &quot;/Users/wyattbrashear/Projects/507ex-rewrite&quot;,
79
+ &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
80
+ &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
81
+ &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
82
+ &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
83
+ &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
84
+ &quot;to.speed.mode.migration.done&quot;: &quot;true&quot;,
85
+ &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
86
+ }
87
+ }</component>
88
+ <component name="RecapSpentCounter">
89
+ <option name="endsOfQuotaMs" value="1774130412998" />
90
+ <option name="spentUsd" value="0.28590825" />
91
+ </component>
92
+ <component name="RecapUselessUpdatesCounter">
93
+ <option name="suspendCountdown" value="0" />
94
+ </component>
95
+ <component name="RunManager" selected="Flask server.Flask (server/app.py)">
96
+ <configuration name="fzx2" type="PythonConfigurationType" factoryName="Python" nameIsGenerated="true">
97
+ <module name="507ex-rewrite" />
98
+ <option name="ENV_FILES" value="" />
99
+ <option name="INTERPRETER_OPTIONS" value="" />
100
+ <option name="PARENT_ENVS" value="true" />
101
+ <envs>
102
+ <env name="PYTHONUNBUFFERED" value="1" />
103
+ </envs>
104
+ <option name="SDK_HOME" value="" />
105
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
106
+ <option name="IS_MODULE_SDK" value="true" />
107
+ <option name="ADD_CONTENT_ROOTS" value="true" />
108
+ <option name="ADD_SOURCE_ROOTS" value="true" />
109
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
110
+ <option name="RUN_TOOL" value="" />
111
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/fzx2.py" />
112
+ <option name="PARAMETERS" value="" />
113
+ <option name="SHOW_COMMAND_LINE" value="false" />
114
+ <option name="EMULATE_TERMINAL" value="false" />
115
+ <option name="MODULE_MODE" value="false" />
116
+ <option name="REDIRECT_INPUT" value="false" />
117
+ <option name="INPUT_FILE" value="" />
118
+ <method v="2" />
119
+ </configuration>
120
+ <configuration name="Flask (server/app.py)" type="Python.FlaskServer" nameIsGenerated="true">
121
+ <module name="507ex-rewrite" />
122
+ <option name="target" value="$PROJECT_DIR$/server/app.py" />
123
+ <option name="targetType" value="PATH" />
124
+ <option name="ENV_FILES" value="" />
125
+ <option name="INTERPRETER_OPTIONS" value="" />
126
+ <option name="PARENT_ENVS" value="true" />
127
+ <option name="SDK_HOME" value="" />
128
+ <option name="SDK_NAME" value="Python 3.10" />
129
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
130
+ <option name="IS_MODULE_SDK" value="false" />
131
+ <option name="ADD_CONTENT_ROOTS" value="true" />
132
+ <option name="ADD_SOURCE_ROOTS" value="true" />
133
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
134
+ <option name="RUN_TOOL" value="" />
135
+ <option name="launchJavascriptDebuger" value="false" />
136
+ <method v="2" />
137
+ </configuration>
138
+ <list>
139
+ <item itemvalue="Flask server.Flask (server/app.py)" />
140
+ <item itemvalue="Python.fzx2" />
141
+ </list>
142
+ </component>
143
+ <component name="SharedIndexes">
144
+ <attachedChunks>
145
+ <set>
146
+ <option value="bundled-js-predefined-d6986cc7102b-9b0f141eb926-JavaScript-PY-253.31033.139" />
147
+ <option value="bundled-python-sdk-2653e85de345-6d6dccd035ac-com.jetbrains.pycharm.pro.sharedIndexes.bundled-PY-253.31033.139" />
148
+ </set>
149
+ </attachedChunks>
150
+ </component>
151
+ <component name="TaskManager">
152
+ <task active="true" id="Default" summary="Default task">
153
+ <changelist id="05695684-fed8-48a8-a9dd-62bfafb4660e" name="Changes" comment="" />
154
+ <created>1773672807242</created>
155
+ <option name="number" value="Default" />
156
+ <option name="presentableId" value="Default" />
157
+ <updated>1773672807242</updated>
158
+ <workItem from="1773672808973" duration="36166000" />
159
+ <workItem from="1773783867332" duration="66000" />
160
+ <workItem from="1773783952642" duration="7000" />
161
+ <workItem from="1773791829638" duration="4908000" />
162
+ <workItem from="1773801307612" duration="744000" />
163
+ <workItem from="1773833028616" duration="247000" />
164
+ <workItem from="1773843896653" duration="271000" />
165
+ <workItem from="1773845252699" duration="157000" />
166
+ </task>
167
+ <task id="LOCAL-00001" summary="Add the build function">
168
+ <option name="closed" value="true" />
169
+ <created>1773678533280</created>
170
+ <option name="number" value="00001" />
171
+ <option name="presentableId" value="LOCAL-00001" />
172
+ <option name="project" value="LOCAL" />
173
+ <updated>1773678533280</updated>
174
+ </task>
175
+ <task id="LOCAL-00002" summary="CRAP..&#10;I accidentally lost all the code.">
176
+ <option name="closed" value="true" />
177
+ <created>1773681718075</created>
178
+ <option name="number" value="00002" />
179
+ <option name="presentableId" value="LOCAL-00002" />
180
+ <option name="project" value="LOCAL" />
181
+ <updated>1773681718075</updated>
182
+ </task>
183
+ <task id="LOCAL-00003" summary="Fixed it!!!">
184
+ <option name="closed" value="true" />
185
+ <created>1773690476406</created>
186
+ <option name="number" value="00003" />
187
+ <option name="presentableId" value="LOCAL-00003" />
188
+ <option name="project" value="LOCAL" />
189
+ <updated>1773690476406</updated>
190
+ </task>
191
+ <task id="LOCAL-00004" summary="Ok. First testing version is done. I still need to add error handling and the like.">
192
+ <option name="closed" value="true" />
193
+ <created>1773711993474</created>
194
+ <option name="number" value="00004" />
195
+ <option name="presentableId" value="LOCAL-00004" />
196
+ <option name="project" value="LOCAL" />
197
+ <updated>1773711993474</updated>
198
+ </task>
199
+ <task id="LOCAL-00005" summary="Ok. First testing version is done. I still need to add error handling and the like.">
200
+ <option name="closed" value="true" />
201
+ <created>1773712049158</created>
202
+ <option name="number" value="00005" />
203
+ <option name="presentableId" value="LOCAL-00005" />
204
+ <option name="project" value="LOCAL" />
205
+ <updated>1773712049158</updated>
206
+ </task>
207
+ <task id="LOCAL-00006" summary="Add README.md">
208
+ <option name="closed" value="true" />
209
+ <created>1773777351236</created>
210
+ <option name="number" value="00006" />
211
+ <option name="presentableId" value="LOCAL-00006" />
212
+ <option name="project" value="LOCAL" />
213
+ <updated>1773777351236</updated>
214
+ </task>
215
+ <task id="LOCAL-00007" summary="Add README.md">
216
+ <option name="closed" value="true" />
217
+ <created>1773778258692</created>
218
+ <option name="number" value="00007" />
219
+ <option name="presentableId" value="LOCAL-00007" />
220
+ <option name="project" value="LOCAL" />
221
+ <updated>1773778258692</updated>
222
+ </task>
223
+ <task id="LOCAL-00008" summary="Make pyinstaller support it better">
224
+ <option name="closed" value="true" />
225
+ <created>1773778813050</created>
226
+ <option name="number" value="00008" />
227
+ <option name="presentableId" value="LOCAL-00008" />
228
+ <option name="project" value="LOCAL" />
229
+ <updated>1773778813050</updated>
230
+ </task>
231
+ <task id="LOCAL-00009" summary="Add more stuff to the README.md. And add a requirements.txt">
232
+ <option name="closed" value="true" />
233
+ <created>1773779270294</created>
234
+ <option name="number" value="00009" />
235
+ <option name="presentableId" value="LOCAL-00009" />
236
+ <option name="project" value="LOCAL" />
237
+ <updated>1773779270294</updated>
238
+ </task>
239
+ <task id="LOCAL-00010" summary="Add more stuff to the README.md. And add a requirements.txt">
240
+ <option name="closed" value="true" />
241
+ <created>1773780051842</created>
242
+ <option name="number" value="00010" />
243
+ <option name="presentableId" value="LOCAL-00010" />
244
+ <option name="project" value="LOCAL" />
245
+ <updated>1773780051843</updated>
246
+ </task>
247
+ <task id="LOCAL-00011" summary="Add more stuff to the README.md. And add a requirements.txt">
248
+ <option name="closed" value="true" />
249
+ <created>1773791962987</created>
250
+ <option name="number" value="00011" />
251
+ <option name="presentableId" value="LOCAL-00011" />
252
+ <option name="project" value="LOCAL" />
253
+ <updated>1773791962987</updated>
254
+ </task>
255
+ <task id="LOCAL-00012" summary="Add more stuff to the README.md. And add a requirements.txt">
256
+ <option name="closed" value="true" />
257
+ <created>1773801444211</created>
258
+ <option name="number" value="00012" />
259
+ <option name="presentableId" value="LOCAL-00012" />
260
+ <option name="project" value="LOCAL" />
261
+ <updated>1773801444211</updated>
262
+ </task>
263
+ <task id="LOCAL-00013" summary="slightly move things around">
264
+ <option name="closed" value="true" />
265
+ <created>1773833156080</created>
266
+ <option name="number" value="00013" />
267
+ <option name="presentableId" value="LOCAL-00013" />
268
+ <option name="project" value="LOCAL" />
269
+ <updated>1773833156080</updated>
270
+ </task>
271
+ <task id="LOCAL-00014" summary="slightly move things around">
272
+ <option name="closed" value="true" />
273
+ <created>1773845389182</created>
274
+ <option name="number" value="00014" />
275
+ <option name="presentableId" value="LOCAL-00014" />
276
+ <option name="project" value="LOCAL" />
277
+ <updated>1773845389182</updated>
278
+ </task>
279
+ <option name="localTasksCounter" value="15" />
280
+ <servers />
281
+ </component>
282
+ <component name="TypeScriptGeneratedFilesManager">
283
+ <option name="version" value="3" />
284
+ </component>
285
+ <component name="Vcs.Log.Tabs.Properties">
286
+ <option name="TAB_STATES">
287
+ <map>
288
+ <entry key="MAIN">
289
+ <value>
290
+ <State />
291
+ </value>
292
+ </entry>
293
+ </map>
294
+ </option>
295
+ </component>
296
+ <component name="VcsManagerConfiguration">
297
+ <MESSAGE value="Add the build function" />
298
+ <MESSAGE value="CRAP..&#10;I accidentally lost all the code." />
299
+ <MESSAGE value="Fixed it!!!" />
300
+ <MESSAGE value="Ok. First testing version is done. I still need to add error handling and the like." />
301
+ <MESSAGE value="Add README.md" />
302
+ <MESSAGE value="Make pyinstaller support it better" />
303
+ <MESSAGE value="Add more stuff to the README.md. And add a requirements.txt" />
304
+ <MESSAGE value="slightly move things around" />
305
+ <option name="LAST_COMMIT_MESSAGE" value="slightly move things around" />
306
+ </component>
307
+ <component name="com.intellij.coverage.CoverageDataManagerImpl">
308
+ <SUITE FILE_PATH="coverage/507ex_rewrite$Flask__server_app_py_.coverage" NAME="Flask (server/app.py) Coverage Results" MODIFIED="1773703846501" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="" />
309
+ </component>
310
+ </project>
fzx2-1.0.0/PKG-INFO ADDED
@@ -0,0 +1,82 @@
1
+ Metadata-Version: 2.4
2
+ Name: fzx2
3
+ Version: 1.0.0
4
+ Summary: 507EX executable format version 2.0
5
+ Author-email: Wyatt Brashear <admin@wyattb.dev>
6
+ License: MIT
7
+ Requires-Python: >=3.10
8
+ Requires-Dist: flask~=3.1.2
9
+ Requires-Dist: requests>=2.32.5
10
+ Description-Content-Type: text/markdown
11
+
12
+ # 507ex 2.0 (FZX2)
13
+ ## What is 507ex, and why is there a 2.0?
14
+ A while back, I created a executable format called 507ex (507 Being my brand that I like to put things under). I made one
15
+ 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.
16
+ Introducing 507ex 2.0 (Abbreviated as FZX2).
17
+ ### What's New?
18
+ - AI was not used to write code (yay)
19
+ - Enhanced metadata that stores more information
20
+ - Auto Dependency Manager. Uses a list embedded in the metadata to ensure the application has the correct dependencies.
21
+ - All operations are accessible through one module.
22
+ - CAR (Central Application Repository) now supports authentication.
23
+ ## CAR (Central Application Repository)
24
+ CAR is a server system that allows seamless execution of applications from the command line.
25
+ Example:
26
+ ~~~bash
27
+ python3 fzx2.py exec http://127.0.0.1:5000/pull/955d7c5f-5b21-428f-94e4-8e13f1e7223c
28
+ ~~~
29
+ Easy as that! All CAR operations are authenticated by a random "secret code" generated by the server.
30
+ ### Endpoint Documentation
31
+ 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}.
32
+ Returns:
33
+ ```json
34
+ {
35
+ "status": "success",
36
+ "secret_code": "secret_code",
37
+ "url": "request.url_root/pull/filename"
38
+ }
39
+ ```
40
+ POST: /pull/<file_id>. Pull an executable from the server. Accepts form data in the following form: {'secret_code': STR}
41
+ Returns:
42
+ The file requested or an error message. Files are sent using flask's send_from_directory function.
43
+ ### Running the server
44
+ Source Code Method:
45
+ ~~~bash
46
+ python3 fzx2.py start_server
47
+ ~~~
48
+ Compiled Executable Method:
49
+ ~~~bash
50
+ ./fzx2 start_server
51
+ ~~~
52
+ ## Installation
53
+ ### Method 1 (Compiled Executable)
54
+ 1. Download the latest release from the releases page.
55
+ 2. Run the executable. (Recommended to be done in a terminal)
56
+ ### Method 2 (Source Code)
57
+ 1. Clone the Repository using `git clone https://github.com/WyattBrashear/507ex-utils2.git`
58
+ 2. Run: `pip install -r requirements.txt` in order to install the dependencies.
59
+ 3. Run the main script using `python3 fzx2.py`
60
+ ## CLI Usage
61
+ `python3 fzx2.py <operation> <path>`
62
+ All operations are listed below:
63
+ 1. exec: Executes an executable
64
+ 2. start_server: Starts the CAR server
65
+ 3. build: Builds an executable
66
+ 4. unpack: Unpacks an executable
67
+ 5. upload: Uploads an executable
68
+ ## 507ex's required files
69
+ All directories that are going to be turned into a 507ex requires 2 files:
70
+ 1. runfile (contains the command to run the script)
71
+ 2. dependfile
72
+ Dependfile is in this format
73
+ ~~~text
74
+ !{name}|{command}
75
+ !PLATFORM {platform}
76
+ {dependencies}
77
+ ~~~
78
+ ## Demo Video
79
+ https://drive.google.com/file/d/1QfDZL2Spc7WKqbfCU_m7xSnRLbJdnfNd/view?usp=sharing
80
+ ## AI Usage
81
+ As per usual, I am against using AI in my code. All the code in this repository was human written. The instances of AI
82
+ usage was autocomplete and AI Assistant when I was stuck, pointing me in the right direction (fzx2.py).
fzx2-1.0.0/README.md ADDED
@@ -0,0 +1,71 @@
1
+ # 507ex 2.0 (FZX2)
2
+ ## What is 507ex, and why is there a 2.0?
3
+ A while back, I created a executable format called 507ex (507 Being my brand that I like to put things under). I made one
4
+ 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.
5
+ Introducing 507ex 2.0 (Abbreviated as FZX2).
6
+ ### What's New?
7
+ - AI was not used to write code (yay)
8
+ - Enhanced metadata that stores more information
9
+ - Auto Dependency Manager. Uses a list embedded in the metadata to ensure the application has the correct dependencies.
10
+ - All operations are accessible through one module.
11
+ - CAR (Central Application Repository) now supports authentication.
12
+ ## CAR (Central Application Repository)
13
+ CAR is a server system that allows seamless execution of applications from the command line.
14
+ Example:
15
+ ~~~bash
16
+ python3 fzx2.py exec http://127.0.0.1:5000/pull/955d7c5f-5b21-428f-94e4-8e13f1e7223c
17
+ ~~~
18
+ Easy as that! All CAR operations are authenticated by a random "secret code" generated by the server.
19
+ ### Endpoint Documentation
20
+ 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}.
21
+ Returns:
22
+ ```json
23
+ {
24
+ "status": "success",
25
+ "secret_code": "secret_code",
26
+ "url": "request.url_root/pull/filename"
27
+ }
28
+ ```
29
+ POST: /pull/<file_id>. Pull an executable from the server. Accepts form data in the following form: {'secret_code': STR}
30
+ Returns:
31
+ The file requested or an error message. Files are sent using flask's send_from_directory function.
32
+ ### Running the server
33
+ Source Code Method:
34
+ ~~~bash
35
+ python3 fzx2.py start_server
36
+ ~~~
37
+ Compiled Executable Method:
38
+ ~~~bash
39
+ ./fzx2 start_server
40
+ ~~~
41
+ ## Installation
42
+ ### Method 1 (Compiled Executable)
43
+ 1. Download the latest release from the releases page.
44
+ 2. Run the executable. (Recommended to be done in a terminal)
45
+ ### Method 2 (Source Code)
46
+ 1. Clone the Repository using `git clone https://github.com/WyattBrashear/507ex-utils2.git`
47
+ 2. Run: `pip install -r requirements.txt` in order to install the dependencies.
48
+ 3. Run the main script using `python3 fzx2.py`
49
+ ## CLI Usage
50
+ `python3 fzx2.py <operation> <path>`
51
+ All operations are listed below:
52
+ 1. exec: Executes an executable
53
+ 2. start_server: Starts the CAR server
54
+ 3. build: Builds an executable
55
+ 4. unpack: Unpacks an executable
56
+ 5. upload: Uploads an executable
57
+ ## 507ex's required files
58
+ All directories that are going to be turned into a 507ex requires 2 files:
59
+ 1. runfile (contains the command to run the script)
60
+ 2. dependfile
61
+ Dependfile is in this format
62
+ ~~~text
63
+ !{name}|{command}
64
+ !PLATFORM {platform}
65
+ {dependencies}
66
+ ~~~
67
+ ## Demo Video
68
+ https://drive.google.com/file/d/1QfDZL2Spc7WKqbfCU_m7xSnRLbJdnfNd/view?usp=sharing
69
+ ## AI Usage
70
+ As per usual, I am against using AI in my code. All the code in this repository was human written. The instances of AI
71
+ usage was autocomplete and AI Assistant when I was stuck, pointing me in the right direction (fzx2.py).
fzx2-1.0.0/axis3.507ex ADDED
Binary file