Fennet
Lightweight HTTP server library for C
Loading...
Searching...
No Matches
packager.py
1#!/usr/bin/python3
2
3# This script is used by the "release.yml" github workflow to package built binaries for releases
4
5# This script is intended to be run from the main project directory, like this:
6# python3 ./workflow-scripts/packager.py <name>
7
8# <name> is the only argument taken by the packager, it's the name of the currently built package.
9
10
11import os
12import sys
13
14dash = "/"
15if os.name == 'nt':
16 dash = "\\"
17
18packageName = sys.argv[1]
19
20if not os.path.isdir("packaged"):
21 os.makedirs("packaged")
22
23toExport = []
24
25examplesFolderScan = os.scandir(path="examples")
26for entry in examplesFolderScan:
27 if entry.is_dir():
28 fname = str(entry.name)
29 if os.name == 'nt':
30 fname += ".exe"
31 toExport.append(fname)
32
33buildFolderScan = os.scandir(path="build")
34for entry in buildFolderScan:
35 if entry.is_file():
36 fname = str(entry.name)
37 if fname.endswith(".lib") or fname.endswith(".a") or fname.endswith(".dll") or fname.endswith(".so"):
38 toExport.append(fname)
39
40print("- Detected files to export from ./build/:")
41for entry in toExport:
42 print(entry)
43
44# tar -cvzf ./packaged/packageName.zip ./build/*toExport
45cmdlinetopkg = ""
46for entry in toExport:
47 cmdlinetopkg += f" build{dash}"+entry
48for root, dirs, files in os.walk("include"):
49 for name in files:
50 cmdlinetopkg += " "+str(root)+dash+str(name)
51
52ext = ".tar.gz"
53if os.name == 'nt':
54 ext = ".zip"
55os.system(f"tar -caf packaged{dash}"+packageName+ext + cmdlinetopkg)
56print("- Package '"+packageName+ext+"' Generated.")