Run shfmt as part of the reformat target.
authorGuus Sliepen <guus@tinc-vpn.org>
Mon, 4 Apr 2022 19:53:47 +0000 (21:53 +0200)
committerGuus Sliepen <guus@tinc-vpn.org>
Mon, 4 Apr 2022 19:53:47 +0000 (21:53 +0200)
Add a reformat.py script and call it from the reformat target. It will run
astyle and shfmt from the source directory.

meson.build
reformat.py [new file with mode: 0755]
test/integration/security.test

index 1458015..488230e 100644 (file)
@@ -138,12 +138,7 @@ if os_name == 'linux' and not opt_systemd.disabled()
   subdir('systemd')
 endif
 
-prog_reformat = find_program('astyle', native: true, required: false)
-if prog_reformat.found()
-  run_target('reformat', command: [
-    prog_reformat,
-    '--options=@SOURCE_ROOT@/.astylerc', '--recursive',
-    '@SOURCE_ROOT@/*.c', '@SOURCE_ROOT@/*.h',
-  ])
-endif
-
+run_target('reformat', command: [
+  find_program('python3'),
+  '@SOURCE_ROOT@/reformat.py',
+])
diff --git a/reformat.py b/reformat.py
new file mode 100755 (executable)
index 0000000..256e482
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+
+from os import path, environ
+from sys import stderr
+import subprocess as subp
+import glob
+
+source_root = path.dirname(path.realpath(__file__))
+source_root = environ.get("MESON_SOURCE_ROOT", source_root)
+
+astyle_cmd = [
+    "astyle",
+    "--options=.astylerc",
+    "--recursive",
+    "*.c",
+    "*.h",
+]
+
+shfmt_cmd = [
+    "shfmt",
+    "-i", "2",
+    "-s",
+    "-w",
+]
+
+for path in "**/*.sh", "**/*.test", ".ci/**/*.sh":
+    shfmt_cmd.extend(glob.glob(path, root_dir=source_root, recursive=True))
+
+for cmd in astyle_cmd, shfmt_cmd:
+    try:
+        result = subp.run(cmd, cwd=source_root, check=True)
+    except FileNotFoundError as e:
+        print("Warning: missing", cmd[0], file=stderr)
index a7efe7f..3945079 100755 (executable)
@@ -48,18 +48,23 @@ start_tinc foo
 wait_script foo subnet-up
 
 echo "[STEP] No ID sent by responding node if we don't send an ID first, before the timeout"
-send_with_timeout "0 bar 17.7" "" & job1=$!
+send_with_timeout "0 bar 17.7" "" &
+job1=$!
 
 echo [STEP] ID sent if initiator sends first, but still tarpitted
-send_with_timeout "0 bar 17.7" "0 foo 17.7" & job2=$!
+send_with_timeout "0 bar 17.7" "0 foo 17.7" &
+job2=$!
 
 echo [STEP] No invalid IDs allowed
-send_with_timeout "0 foo 17.7" "" & job3=$!
-send_with_timeout "0 baz 17.7" "" & job4=$!
+send_with_timeout "0 foo 17.7" "" &
+job3=$!
+send_with_timeout "0 baz 17.7" "" &
+job4=$!
 
 echo [STEP] No NULL METAKEYs allowed
 data="0 foo 17.0\n1 0 672 0 0 834188619F4D943FD0F4B1336F428BD4AC06171FEABA66BD2356BC9593F0ECD643F0E4B748C670D7750DFDE75DC9F1D8F65AB1026F5ED2A176466FBA4167CC567A2085ABD070C1545B180BDA86020E275EA9335F509C57786F4ED2378EFFF331869B856DDE1C05C461E4EECAF0E2FB97AF77B7BC2AD1B34C12992E45F5D1254BBF0C3FB224ABB3E8859594A83B6CA393ED81ECAC9221CE6BC71A727BCAD87DD80FC0834B87BADB5CB8FD3F08BEF90115A8DF1923D7CD9529729F27E1B8ABD83C4CF8818AE10257162E0057A658E265610B71F9BA4B365A20C70578FAC65B51B91100392171BA12A440A5E93C4AA62E0C9B6FC9B68F953514AAA7831B4B2C31C4\n"
-send_with_timeout "$data" "" & job5=$! # Not even the ID should be sent when the first packet contains illegal data
+send_with_timeout "$data" "" & # Not even the ID should be sent when the first packet contains illegal data
+job5=$!
 
 for pid in $job1 $job2 $job3 $job4 $job5; do
   wait $pid