aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml7
-rwxr-xr-xcontrib/sort.py11
2 files changed, 13 insertions, 5 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 37e5cc2d0..19dd2b320 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,8 +9,9 @@ build_ubuntu_package:
9 image: ubuntu:rolling 9 image: ubuntu:rolling
10 script: 10 script:
11 - apt-get update -qq 11 - apt-get update -qq
12 - apt-get install -y -qq build-essential lintian pkg-config 12 - apt-get install -y -qq build-essential lintian pkg-config python3
13 - ./configure --prefix=/usr && make deb && dpkg -i firejail*.deb 13 - ./configure --prefix=/usr && make deb && dpkg -i firejail*.deb
14 - python3 contrib/sort.py etc/*.{profile,inc}
14 15
15build_debian_package: 16build_debian_package:
16 image: debian:jessie 17 image: debian:jessie
@@ -32,14 +33,16 @@ build_fedora_package:
32 - dnf update -y 33 - dnf update -y
33 - dnf install -y rpm-build gcc make 34 - dnf install -y rpm-build gcc make
34 - ./configure --prefix=/usr && make rpms && rpm -i firejail*.rpm 35 - ./configure --prefix=/usr && make rpms && rpm -i firejail*.rpm
36 - python3 contrib/sort.py etc/*.{profile,inc}
35 37
36build_src_package: 38build_src_package:
37 image: alpine:latest 39 image: alpine:latest
38 script: 40 script:
39 - apk update 41 - apk update
40 - apk upgrade 42 - apk upgrade
41 - apk add build-base linux-headers 43 - apk add build-base linux-headers python3
42 - ./configure --prefix=/usr && make && make install-strip 44 - ./configure --prefix=/usr && make && make install-strip
45 # - python3 contrib/sort.py etc/*.{profile,inc}
43 46
44build_apparmor: 47build_apparmor:
45 image: ubuntu:latest 48 image: ubuntu:latest
diff --git a/contrib/sort.py b/contrib/sort.py
index 97315fba8..f77e2a1fc 100755
--- a/contrib/sort.py
+++ b/contrib/sort.py
@@ -23,11 +23,13 @@ Exit-Codes:
23# python >= 3.6 23# python >= 3.6
24from sys import argv 24from sys import argv
25 25
26
26def sort_alphabetical(raw_items): 27def sort_alphabetical(raw_items):
27 items = raw_items.split(",") 28 items = raw_items.split(",")
28 items.sort(key=lambda s: s.casefold()) 29 items.sort(key=lambda s: s.casefold())
29 return ",".join(items) 30 return ",".join(items)
30 31
32
31def sort_protocol(protocols): 33def sort_protocol(protocols):
32 """sort the given protocole into this scheme: unix,inet,inet6,netlink,packet""" 34 """sort the given protocole into this scheme: unix,inet,inet6,netlink,packet"""
33 # shortcut for common protocol lines 35 # shortcut for common protocol lines
@@ -64,6 +66,7 @@ def sort_protocol(protocols):
64 fixed_protocols += "packet," 66 fixed_protocols += "packet,"
65 return fixed_protocols[:-1] 67 return fixed_protocols[:-1]
66 68
69
67def fix_profile(filename): 70def fix_profile(filename):
68 with open(filename, "r+") as profile: 71 with open(filename, "r+") as profile:
69 lines = profile.read().split("\n") 72 lines = profile.read().split("\n")
@@ -94,6 +97,7 @@ def fix_profile(filename):
94 return 101 97 return 101
95 return 0 98 return 0
96 99
100
97def main(args): 101def main(args):
98 exit_code = 0 102 exit_code = 0
99 for filename in args: 103 for filename in args:
@@ -103,15 +107,16 @@ def main(args):
103 else: 107 else:
104 fix_profile(filename) 108 fix_profile(filename)
105 except FileNotFoundError: 109 except FileNotFoundError:
106 print(f"[ Error ] Can't find {filename}") 110 print(f"[ Error ] Can't find `{filename}'")
107 exit_code = 1 111 exit_code = 1
108 except PermissionError: 112 except PermissionError:
109 print(f"[ Error ] Can't read/write {filename}") 113 print(f"[ Error ] Can't read/write `{filename}'")
110 exit_code = 1 114 exit_code = 1
111 except: 115 except:
112 print(f"[ Error ] An error occurred while processing {filename}") 116 print(f"[ Error ] An error occurred while processing `{filename}'")
113 exit_code = 1 117 exit_code = 1
114 return exit_code 118 return exit_code
115 119
120
116if __name__ == "__main__": 121if __name__ == "__main__":
117 exit(main(argv[1:])) 122 exit(main(argv[1:]))