Restore Build Tools (#170)
Jeremy D

Jeremy D commited on 2023-01-15 14:18:59
Showing 59 changed files, with 803 additions and 66 deletions.


* Restore Build Tools

* Bad action

* No sub modules

* Change the year
... ...
@@ -0,0 +1,34 @@
1
+module.exports = {
2
+	'env': {
3
+		'browser': true,
4
+		'es2021': true,
5
+		'jquery': true
6
+	},
7
+	'extends': 'eslint:recommended',
8
+	'parserOptions': {
9
+		'ecmaVersion': 12,
10
+		'sourceType': 'module'
11
+	},
12
+	'rules': {
13
+		'indent': [
14
+			'error',
15
+			'tab',
16
+			{"SwitchCase": 1}
17
+		],
18
+		'linebreak-style': [
19
+			'error',
20
+			'unix'
21
+		],
22
+		'quotes': [
23
+			'error',
24
+			'single'
25
+		],
26
+		'no-unused-vars': [
27
+			'error',
28
+			{
29
+				'vars': 'local',
30
+				'args' : 'none'
31
+			}
32
+		]
33
+	}
34
+};
... ...
@@ -0,0 +1,128 @@
1
+<?php
2
+/**************************************************************
3
+*          Simple Desk Project - www.simpledesk.net           *
4
+***************************************************************
5
+*       An advanced help desk modification built on SMF       *
6
+***************************************************************
7
+*                                                             *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9
+*                                                             *
10
+*   This file and its contents are subject to the license     *
11
+*   included with this distribution, license.txt, which       *
12
+*   states that this software is New BSD Licensed.            *
13
+*   Any questions, please contact SimpleDesk.net              *
14
+*                                                             *
15
+***************************************************************
16
+* File Info: build_release_package                            *
17
+**************************************************************/
18
+
19
+// The path such as /usr/bin/git
20
+$git_path = '/usr/bin/git';
21
+
22
+// The path to tar & zip
23
+$tar_path = '/usr/bin/tar';
24
+$zip_path = '/usr/bin/zip';
25
+
26
+/***************************************/
27
+/***** END OF CONFIGURATION CHANGES ****/
28
+
29
+global $args;
30
+parseArgs();
31
+
32
+// Debugging?
33
+if (isset($_SERVER['USER'], $args) && !empty($args['debug']))
34
+	error_reporting(E_ALL);
35
+
36
+if (empty($args) || empty($args['src']) || empty($args['dst']))
37
+	die('missing critical settings');
38
+
39
+// Get in the trunk.
40
+chdir($args['src']);
41
+
42
+if (!empty($args['skip-pull']))
43
+{
44
+	$out = shell_exec($git_path . ' pull');
45
+
46
+	// No comprenda senior.
47
+	if (strpos($out, 'From git://github.com') === false && strpos($out, 'Already up-to-date.') === false)
48
+		die('GIT build returned an unexpected output: ' . $out);
49
+}
50
+
51
+// Try to find our version.
52
+$pkg_file = file_get_contents('package-info.xml');
53
+preg_match('~<version>([^<]+)</version>~i', $pkg_file, $v);
54
+
55
+if (empty($v))
56
+	die('Unknown Version');
57
+
58
+$version = strtr(
59
+	ucFirst(trim($v[1])),
60
+	array(
61
+		' ' => '-',
62
+		'Rc' => 'RC',
63
+	)
64
+);
65
+
66
+$package_file_base = 'SimpleDesk-' . $version;
67
+
68
+// Build baby, build!
69
+
70
+if (file_exists($args['dst'] . '/SimpleDesk_' . $version . '.tgz'))
71
+	unlink($args['dst'] . '/SimpleDesk_' . $version . '.tgz');
72
+shell_exec($tar_path . ' --no-xattrs --no-acls --no-mac-metadata --no-fflags --exclude=\'.git\' --exclude=\'install-testdata.php\' --exclude=\'error_log\' --exclude=\'.gitignore\' --exclude=\'.gitattributes\' --exclude=\'.travis.yml\' --exclude=\'buildTools\' --exclude=\'node_modules\' --exclude=\'.DS_Store\' -czf ' . $args['dst'] . '/' . $package_file_base . '.tgz *');
73
+
74
+// Zip it, zip it good.
75
+if (file_exists($args['dst'] . '/SimpleDesk_' . $version . '.zip'))
76
+	unlink($args['dst'] . '/SimpleDesk_' . $version . '.zip');
77
+shell_exec($zip_path . ' --exclude=\'.git\' --exclude=\'install-testdata.php\' --exclude=\'error_log\' --exclude=\'.gitignore\' --exclude=\'.gitattributes\' --exclude=\'.travis.yml\' --exclude=\'buildTools/*\' --exclude=\'node_modules/*\' --exclude=\'*' . '/.DS_Store\' -1 ' . $args['dst'] . '/' . $package_file_base . '.zip -r *');
78
+
79
+// Undo the damage we did to the package file
80
+shell_exec($git_path . ' checkout -- package-info.xml');
81
+
82
+// FINALLY, we are done.
83
+exit;
84
+
85
+function parseArgs()
86
+{
87
+	global $args;
88
+
89
+	if (!isset($_SERVER['argv']))
90
+		$_SERVER['argv'] = array();
91
+
92
+	// If its empty, force help.
93
+	if (empty($_SERVER['argv'][1]))
94
+		$_SERVER['argv'][1] = '--help';
95
+
96
+	// Lets get the path_to and path_from
97
+	foreach ($_SERVER['argv'] as $i => $arg)
98
+	{
99
+		// Trim spaces.
100
+		$arg = trim($arg);
101
+
102
+		if (preg_match('~^--src=(.+)$~', $arg, $match) != 0)
103
+			$args['src'] = substr($match[1], -1) == '/' ? substr($match[1], 0, -1) : $match[1];
104
+		elseif (preg_match('~^--dst=(.+)$~', $arg, $match) != 0)
105
+			$args['dst'] = substr($match[1], -1) == '/' ? substr($match[1], 0, -1) : $match[1];
106
+		elseif ($arg == '--debug')
107
+			$args['debug'] = 1;
108
+		elseif ($arg == '--help')
109
+		{
110
+			echo 'Build Tool
111
+Usage: /path/to/php ' . realpath(__FILE__) . ' -- [OPTION]...
112
+
113
+    --src               	Path to SD (' . realpath($_SERVER['PWD']) . ').
114
+    --dst            		Output directory for files (' . realpath($_SERVER['PWD'] . '/..') . ')
115
+    --debug                 Output debugging information.';
116
+    		die;
117
+		}
118
+
119
+		if (empty($args['src']))
120
+			$args['src'] = realpath($_SERVER['PWD']);
121
+		if (empty($args['dst']))
122
+			$args['dst'] = realpath($args['src'] . '/..');
123
+
124
+		// We have extra params.
125
+		if (preg_match('~^--(.+)=(.+)$~', $arg, $match) != 0 && !array_key_exists($match[1], $_POST))
126
+			$_POST[$match[1]] = $match[2];
127
+	}
128
+}
0 129
\ No newline at end of file
... ...
@@ -0,0 +1,51 @@
1
+<?php
2
+/**************************************************************
3
+*          Simple Desk Project - www.simpledesk.net           *
4
+***************************************************************
5
+*       An advanced help desk modification built on SMF       *
6
+***************************************************************
7
+*                                                             *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9
+*                                                             *
10
+*   This file and its contents are subject to the license     *
11
+*   included with this distribution, license.txt, which       *
12
+*   states that this software is New BSD Licensed.            *
13
+*   Any questions, please contact SimpleDesk.net              *
14
+*                                                             *
15
+***************************************************************
16
+* SimpleDesk Version: 2.1.0                                   *
17
+* File Info: check-eof-master.php                             *
18
+**************************************************************/
19
+
20
+// Stuff we will ignore.
21
+$ignoreFiles = array(
22
+	'\.github/',
23
+	'/buildTools/',
24
+);
25
+
26
+$curDir = '.';
27
+if (isset($_SERVER['argv'], $_SERVER['argv'][1]))
28
+	$curDir = $_SERVER['argv'][1];
29
+
30
+$foundBad = false;
31
+foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($curDir, FilesystemIterator::UNIX_PATHS)) as $currentFile => $fileInfo)
32
+{
33
+	// Only check PHP
34
+	if ($fileInfo->getExtension() !== 'php')
35
+		continue;
36
+
37
+	foreach ($ignoreFiles as $if)
38
+		if (preg_match('~' . $if . '~i', $currentFile))
39
+			continue 2;
40
+
41
+	$result = trim(shell_exec('php .github/scripts/check-eof.php ' . $currentFile . ' 2>&1'));
42
+
43
+	if (!preg_match('~Error:([^$]+)~', $result))
44
+		continue;
45
+
46
+	$foundBad = true;
47
+	fwrite(STDERR, $result . "\n");
48
+}
49
+
50
+if (!empty($foundBad))
51
+	exit(1);
0 52
\ No newline at end of file
... ...
@@ -0,0 +1,69 @@
1
+<?php
2
+/**************************************************************
3
+*          Simple Desk Project - www.simpledesk.net           *
4
+***************************************************************
5
+*       An advanced help desk modification built on SMF       *
6
+***************************************************************
7
+*                                                             *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9
+*                                                             *
10
+*   This file and its contents are subject to the license     *
11
+*   included with this distribution, license.txt, which       *
12
+*   states that this software is New BSD Licensed.            *
13
+*   Any questions, please contact SimpleDesk.net              *
14
+*                                                             *
15
+***************************************************************
16
+* SimpleDesk Version: 2.1.0                                   *
17
+* File Info: check-eof.php                                    *
18
+**************************************************************/
19
+
20
+// Stuff we will ignore.
21
+$ignoreFiles = array(
22
+	'\.github/',
23
+	'\.github/scripts/',
24
+);
25
+
26
+// No file? Thats bad.
27
+if (!isset($_SERVER['argv'], $_SERVER['argv'][1]))
28
+	fatalError('Error: No File specified' . "\n");
29
+
30
+// The file has to exist.
31
+$currentFile = $_SERVER['argv'][1];
32
+if (!file_exists($currentFile))
33
+	fatalError('Error: File does not exist' . "\n");
34
+
35
+// Is this ignored?
36
+foreach ($ignoreFiles as $if)
37
+	if (preg_match('~' . $if . '~i', $currentFile))
38
+		die;
39
+
40
+// Less efficent than opening a file with fopen, but we want to be sure to get the right end of the file. file_get_contents
41
+$file = fopen($currentFile, 'r');
42
+
43
+// Error?
44
+if ($file === false)
45
+	fatalError('Error: Unable to open file ' . $currentFile . "\n");
46
+
47
+// Seek the end minus some bytes.
48
+fseek($file, -100, SEEK_END);
49
+$contents = fread($file, 100);
50
+
51
+// There is some white space here.
52
+if (preg_match('~}\s+$~', $contents, $matches))
53
+	fatalError('Error: End of File contains extra spaces in ' . $currentFile . "\n");
54
+// It exists! Leave.
55
+elseif (preg_match('~}$~', $contents, $matches))
56
+	die();
57
+
58
+// There is some white space here.
59
+if (preg_match('~\';\s+$~', $contents, $matches))
60
+	fatalError('Error: End of File Strings contains extra spaces in ' . $currentFile . "\n");
61
+// It exists! Leave.
62
+elseif (preg_match('~\';$~', $contents, $matches))
63
+	die();
64
+
65
+function fatalError($msg)
66
+{
67
+	fwrite(STDERR, $msg);
68
+	die;
69
+}
0 70
\ No newline at end of file
... ...
@@ -0,0 +1,51 @@
1
+<?php
2
+/**************************************************************
3
+*          Simple Desk Project - www.simpledesk.net           *
4
+***************************************************************
5
+*       An advanced help desk modification built on SMF       *
6
+***************************************************************
7
+*                                                             *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9
+*                                                             *
10
+*   This file and its contents are subject to the license     *
11
+*   included with this distribution, license.txt, which       *
12
+*   states that this software is New BSD Licensed.            *
13
+*   Any questions, please contact SimpleDesk.net              *
14
+*                                                             *
15
+***************************************************************
16
+* SimpleDesk Version: 2.1.0                                   *
17
+* File Info: check-license-master.php                         *
18
+**************************************************************/
19
+
20
+// Stuff we will ignore.
21
+$ignoreFiles = array(
22
+	'\.github/',
23
+	'/buildTools/',
24
+);
25
+
26
+$curDir = '.';
27
+if (isset($_SERVER['argv'], $_SERVER['argv'][1]))
28
+	$curDir = $_SERVER['argv'][1];
29
+
30
+$foundBad = false;
31
+foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($curDir, FilesystemIterator::UNIX_PATHS)) as $currentFile => $fileInfo)
32
+{
33
+	// Only check PHP
34
+	if ($fileInfo->getExtension() !== 'php')
35
+		continue;
36
+
37
+	foreach ($ignoreFiles as $if)
38
+		if (preg_match('~' . $if . '~i', $currentFile))
39
+			continue 2;
40
+
41
+	$result = trim(shell_exec('php .github/scripts/check-license.php ' . $currentFile . ' 2>&1'));
42
+
43
+	if (!preg_match('~Error:([^$]+)~', $result))
44
+		continue;
45
+
46
+	$foundBad = true;
47
+	fwrite(STDERR, $result . "\n");
48
+}
49
+
50
+if (!empty($foundBad))
51
+	exit(1);
0 52
\ No newline at end of file
... ...
@@ -0,0 +1,135 @@
1
+<?php
2
+/**************************************************************
3
+*          Simple Desk Project - www.simpledesk.net           *
4
+***************************************************************
5
+*       An advanced help desk modification built on SMF       *
6
+***************************************************************
7
+*                                                             *
8
+*         * Copyright 2022 - SimpleDesk.net                   *
9
+*                                                             *
10
+*   This file and its contents are subject to the license     *
11
+*   included with this distribution, license.txt, which       *
12
+*   states that this software is New BSD Licensed.            *
13
+*   Any questions, please contact SimpleDesk.net              *
14
+*                                                             *
15
+***************************************************************
16
+* SimpleDesk Version: 2.1 Beta 1                              *
17
+* File Info: check-license.php                                *
18
+**************************************************************/
19
+
20
+// Stuff we will ignore.
21
+$ignoreFiles = array(
22
+	// Index files.
23
+	'\./images/[A-Za-z0-9_]+/index\.php',
24
+	'\./images/simpledesk/[A-Za-z0-9_]+/index\.php',
25
+	'\./sd_language/index\.php',
26
+	'\./sd_plugins_lang/index\.php',
27
+	'\./sd_plugins_source/index\.php',
28
+	'\./sd_plugins_source/[A-Za-z0-9]+/index\.php',
29
+	'\./sd_plugins_template/index\.php',
30
+	'\./sd_source/index\.php',
31
+	'\./sd_template/index\.php',
32
+
33
+	// Templates.
34
+	'./sd_template/SimpleDesk\.template\.php',
35
+	'./sd_template/SimpleDesk-[A-Za-z0-9]+\.template\.php',
36
+	'./sd_plugins_template/[A-Za-z0-9]+\.template\.php',
37
+);
38
+
39
+$ignoreFilesVersion = array(
40
+	'/.github/scripts/check-[A-Za-z0-9-_]+\.php',
41
+);
42
+
43
+// No file? Thats bad.
44
+if (!isset($_SERVER['argv'], $_SERVER['argv'][1]))
45
+	die('Error: No File specified' . "\n");
46
+
47
+// The file has to exist.
48
+$currentFile = $_SERVER['argv'][1];
49
+if (!file_exists($currentFile))
50
+	die('Error: File does not exist' . "\n");
51
+
52
+// Is this ignored?
53
+foreach ($ignoreFiles as $if)
54
+	if (preg_match('~' . $if . '~i', $currentFile))
55
+		die;
56
+
57
+// Lets get the Subs-SimpleDesk.php for SHD_VERSION.
58
+//define('SHD_VERSION', 'SimpleDesk 2.1 Beta 1');
59
+$indexFile = fopen('./sd_source/Subs-SimpleDesk.php', 'r');
60
+
61
+// Error?
62
+if ($indexFile === false)
63
+	die("Error: Unable to open file ./sd_source/Subs-SimpleDesk.php\n");
64
+
65
+$indexContents = fread($indexFile, 3850);
66
+
67
+if (!preg_match('~define\(\'SHD_VERSION\', \'SimpleDesk ([^\']+)\'\);~i', $indexContents, $versionResults))
68
+	die('Error: Could not locate SHD_VERSION' . "\n");
69
+$currentVersion = $versionResults[1];
70
+
71
+$currentSoftwareYear = (int) date('Y', time());
72
+$file = fopen($currentFile, 'r');
73
+
74
+// Error?
75
+if ($file === false)
76
+	die('Error: Unable to open file ' . $currentFile . "\n");
77
+
78
+$contents = fread($file, 1300);
79
+
80
+// How the license file should look, in a regex type format.
81
+$match = array(
82
+	0 =>	'/\*{62}' . '[\r]?\n',
83
+	1 =>	'\* {10}Simple Desk Project - www.simpledesk.net {11}\*' . '[\r]?\n',
84
+	2 =>	'\*{63}' . '[\r]?\n',
85
+	3 =>	'\* {7}An advanced help desk modification built on SMF {7}\*' . '[\r]?\n',
86
+	4 =>	'\*{63}' . '[\r]?\n',
87
+	5 =>	'\* {61}\*' . '[\r]?\n',
88
+	6 =>	'\* {9}\* Copyright \d{4} - SimpleDesk.net {19}\*' . '[\r]?\n',
89
+	7 =>	'\* {61}\*' . '[\r]?\n',
90
+	8 =>	'\* {3}This file and its contents are subject to the license {5}\*' . '[\r]?\n',
91
+	9 =>	'\* {3}included with this distribution, license.txt, which {7}\*' . '[\r]?\n',
92
+	10 =>	'\* {3}states that this software is New BSD Licensed. {12}\*' . '[\r]?\n',
93
+	11 =>	'\* {3}Any questions, please contact SimpleDesk.net {14}\*' . '[\r]?\n',
94
+	12 =>	'\* {61}\*' . '[\r]?\n',
95
+	13 =>	'\*{63}' . '[\r]?\n',
96
+	14 =>	'\* SimpleDesk Version: [^\*]+\*' . '[\r]?\n',
97
+//	14 =>	'# SimpleDesk Version: ' . $currentVersion . ' {' . ($sd_version_whitespace - strlen($currentVersion)) . '}#' . '[\r]?\n',
98
+	15 =>	'\* File Info: [^\*]+\*' . '[\r]?\n',
99
+//	15 =>	'# File Info: ' . $shortCurrentFile . ' {' . ($sd_file_whitespace - strlen($shortCurrentFile)) . '}#' . '[\r]?\n',
100
+	16 =>	'\*{62}/' . '[\r]?\n',
101
+);
102
+
103
+// Just see if the license is there.
104
+if (!preg_match('~' . implode('', $match) . '~i', $contents))
105
+	die('Error: License File is invalid or not found in ' . $currentFile . "\n");
106
+
107
+// Check the year is correct.
108
+$yearMatch = $match;
109
+$yearMatch[6] = '\* {9}\* Copyright ' . $currentSoftwareYear . ' - SimpleDesk.net {19}\*' . '[\r]?\n';
110
+if (!preg_match('~' . implode('', $yearMatch) . '~i', $contents))
111
+	die('Error: The software year is incorrect in ' . $currentFile . "\n");
112
+
113
+// Check the version is correct.
114
+$versionMatch = $match;
115
+$sd_version_whitespace = 40;
116
+$versionMatch[14] = '\* SimpleDesk Version: ' . $currentVersion . ' {' . ($sd_version_whitespace - strlen($currentVersion)) . '}\*' . '[\r]?\n';
117
+if (!preg_match('~' . implode('', $versionMatch) . '~i', $contents))
118
+{
119
+	$badVersion = true;
120
+	foreach ($ignoreFilesVersion as $if)
121
+		if (preg_match('~' . $if . '~i', $currentFile))
122
+			$badVersion = false;
123
+
124
+	if ($badVersion)
125
+		die('Error: The version is incorrect in ' . $currentFile . "\n");
126
+}
127
+
128
+die('Stop here' . "\n");
129
+
130
+$fileinfoMatch = $match;
131
+$shortCurrentFile = basename($currentFile);
132
+$sd_file_whitespace = 49;
133
+$fileinfoMatch[15] = '# File Info: ' . $shortCurrentFile . ' {' . ($sd_file_whitespace - strlen($shortCurrentFile)) . '}#' . '[\r]?\n';
134
+if (!preg_match('~' . implode('', $fileinfoMatch) . '~i', $contents))
135
+	die('Error: The file info is incorrect in ' . $currentFile . "\n");
0 136
\ No newline at end of file
... ...
@@ -0,0 +1,73 @@
1
+<?php
2
+/**************************************************************
3
+*          Simple Desk Project - www.simpledesk.net           *
4
+***************************************************************
5
+*       An advanced help desk modification built on SMF       *
6
+***************************************************************
7
+*                                                             *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9
+*                                                             *
10
+*   This file and its contents are subject to the license     *
11
+*   included with this distribution, license.txt, which       *
12
+*   states that this software is New BSD Licensed.            *
13
+*   Any questions, please contact SimpleDesk.net              *
14
+*                                                             *
15
+***************************************************************
16
+* SimpleDesk Version: 2.1.0                                   *
17
+* File Info: check-php-syntax.php                             *
18
+**************************************************************/
19
+
20
+// Stuff we will ignore.
21
+$ignoreFiles = array(
22
+);
23
+
24
+/* This is mostly meant for local usage.
25
+   To add additional PHP Binaries, create a check-php-syntax-binaries.txt
26
+   Add in this in each line the binary file, i.e: /usr/bin/php
27
+*/
28
+$addditionalPHPBinaries = array();
29
+if (file_exists(dirname(__FILE__) . '/check-php-syntax-binaries.txt'))
30
+	$addditionalPHPBinaries = file(dirname(__FILE__) . '/check-php-syntax-binaries.txt');
31
+
32
+$curDir = '.';
33
+if (isset($_SERVER['argv'], $_SERVER['argv'][1]))
34
+	$curDir = $_SERVER['argv'][1];
35
+
36
+$foundBad = false;
37
+foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($curDir, FilesystemIterator::UNIX_PATHS)) as $currentFile => $fileInfo)
38
+{
39
+	// Only check PHP
40
+	if ($fileInfo->getExtension() !== 'php')
41
+		continue;
42
+
43
+	foreach ($ignoreFiles as $if)
44
+		if (preg_match('~' . $if . '~i', $currentFile))
45
+			continue 2;
46
+
47
+	# Always check against the base.
48
+	$result = trim(shell_exec('php -l ' . $currentFile));
49
+
50
+	if (!preg_match('~No syntax errors detected in ' . $currentFile . '~', $result))
51
+	{
52
+		$foundBad = true;
53
+		fwrite(STDERR, 'PHP via $PATH: ' . $result . "\n");
54
+		continue;
55
+	}
56
+
57
+	// We have additional binaries we want to test against?
58
+	foreach ($addditionalPHPBinaries as $binary)
59
+	{
60
+		$binary = trim($binary);
61
+		$result = trim(shell_exec($binary . ' -l ' . $currentFile));
62
+
63
+		if (!preg_match('~No syntax errors detected in ' . $currentFile . '~', $result))
64
+		{
65
+			$foundBad = true;
66
+			fwrite(STDERR, 'PHP via ' . $binary . ': ' . $result . "\n");
67
+			continue 2;
68
+		}
69
+	}
70
+}
71
+
72
+if (!empty($foundBad))
73
+	exit(1);
0 74
\ No newline at end of file
... ...
@@ -0,0 +1,204 @@
1
+<?php
2
+/**************************************************************
3
+*          Simple Desk Project - www.simpledesk.net           *
4
+***************************************************************
5
+*       An advanced help desk modification built on SMF       *
6
+***************************************************************
7
+*                                                             *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9
+*                                                             *
10
+*   This file and its contents are subject to the license     *
11
+*   included with this distribution, license.txt, which       *
12
+*   states that this software is New BSD Licensed.            *
13
+*   Any questions, please contact SimpleDesk.net              *
14
+*                                                             *
15
+***************************************************************
16
+* SimpleDesk Version: 2.1.0                                   *
17
+* File Info: check-signed-off.php                             *
18
+**************************************************************/
19
+
20
+// Debug stuff.
21
+global $debugMsgs, $debugMode;
22
+
23
+// Debug?
24
+if (isset($_SERVER['argv'], $_SERVER['argv'][2]) && $_SERVER['argv'][2] == 'debug')
25
+	$debugMode = true;
26
+
27
+// First, lets do a basic test.  This is non GPG signed commits.
28
+$signedoff = find_signed_off();
29
+
30
+// Now Try to test for the GPG if we don't have a message.
31
+if (empty($signedoff))
32
+	$signedoff = find_gpg();
33
+
34
+// Nothing yet?  Lets ask your parents.
35
+if (empty($signedoff) && isset($_SERVER['argv'], $_SERVER['argv'][1]) && ($_SERVER['argv'][1] == 'travis' || $_SERVER['argv'][1] == 'github'))
36
+	$signedoff = find_signed_off_parents();
37
+
38
+// Nothing?  Well darn.
39
+if (empty($signedoff))
40
+{
41
+	// Debugging, eh?
42
+	if ($debugMode)
43
+	{
44
+		echo "\n---DEBUG MSGS START ---\n";
45
+		var_dump($debugMsgs);
46
+		echo "\n---DEBUG MSGS END ---\n";
47
+	}
48
+
49
+	fatalError('Error: Signed-off-by not found in commit message' . "\n");
50
+}
51
+elseif ($debugMode)
52
+	debugPrint('Valid signed off found' . "\n");
53
+
54
+// Find a commit by Signed Off
55
+function find_signed_off($commit = 'HEAD', $childs = array(), $level = 0)
56
+{
57
+	global $debugMsgs;
58
+
59
+	$commit = trim($commit);
60
+
61
+	// Where we are at.
62
+	debugPrint('Attempting to Find signed off on commit [' . $commit . ']');
63
+
64
+	// To many recrusions here.
65
+	if ($level > 10)
66
+	{
67
+		$debugMsgs[$commit . ':' . time()] = array('error' => 'Recurision limit');
68
+		debugPrint('Recusion limit exceeded on find_signed_off');
69
+		return false;
70
+	}
71
+
72
+	// What string tests should we look for?
73
+	$stringTests = array('Signed-off-by:', 'Signed by');
74
+
75
+	// Get message data and clean it up, should only need the last line.
76
+	$message = trim(shell_exec('git show -s --format=%B ' . $commit));
77
+	$lines = explode("\n", trim(str_replace("\r", "\n", $message)));
78
+	$lastLine = $lines[count($lines) - 1];
79
+
80
+	// Debug info.
81
+	debugPrint('Testing Line [' . $lastLine . ']');
82
+
83
+	// loop through each test and find one.
84
+	$testedString = $result = false;
85
+	foreach ($stringTests as $testedString)
86
+	{
87
+		debugPrint('Testing [' . $testedString . ']');
88
+
89
+		$result = stripos($lastLine, $testedString);
90
+
91
+		// We got a result.
92
+		if ($result !== false)
93
+		{
94
+			debugPrint('Found Result [' . $testedString . ']');
95
+			break;
96
+		}
97
+	}
98
+
99
+	// Debugger.
100
+	$debugMsgs[$commit . ':' . time()] = array(
101
+		// Raw body.
102
+		'B' => shell_exec('git show -s --format=%B ' . $commit),
103
+		// Body.
104
+		'b2' => shell_exec('git show -s --format=%b ' . $commit),
105
+		// Commit notes.
106
+		'N' => shell_exec('git show -s --format=%N ' . $commit),
107
+		// Ref names.
108
+		'd' => shell_exec('git show -s --format=%d ' . $commit),
109
+		// Commit hash.
110
+		'H' => shell_exec('git show -s --format=%H ' . $commit),
111
+		// Tree hash.
112
+		'T' => shell_exec('git show -s --format=%T ' . $commit),
113
+		// Parent hash.
114
+		'P' => shell_exec('git show -s --format=%P ' . $commit),
115
+		// Result.
116
+		'result' => $result,
117
+		// Last tested string, or the correct string.
118
+		'testedString' => $testedString,
119
+	);
120
+
121
+	// No result and found a merge? Lets go deeper.
122
+	if ($result === false && preg_match('~Merge ([A-Za-z0-9]{40}) into ([A-Za-z0-9]{40})~i', $lastLine, $merges))
123
+	{
124
+		debugPrint('Found Merge, attempting to get more parent commit: ' . $merges[1]);
125
+
126
+		return find_signed_off($merges[1], array_merge(array($merges[1]), $childs), ++$level);
127
+	}
128
+
129
+	return $result !== false;
130
+}
131
+
132
+// Find a commit by GPG
133
+function find_gpg($commit = 'HEAD')
134
+{
135
+	global $debugMsgs;
136
+
137
+	$commit = trim($commit);
138
+
139
+	debugPrint('Attempting to Find GPG on commit [' . $commit . ']');
140
+
141
+	// Get verify commit data.
142
+	$message = trim(shell_exec('git verify-commit ' . $commit . ' -v --raw'));
143
+
144
+	// Should we actually test for gpg results?  Perhaps, but it seems doing that with travis may fail since it has no way to verify a GPG signature from GitHub.  GitHub should have prevented a bad GPG from making a commit to a authors repository and could be trusted in most cases it seems.
145
+	$result = strlen($message) > 0;
146
+
147
+	// Debugger.
148
+	$debugMsgs[$commit . ':' . time()] = array(
149
+		// Raw body.
150
+		'verify-commit' => shell_exec('git verify-commit ' . $commit . ' -v --raw'),
151
+		// Result.
152
+		'result' => $result,
153
+		// Last tested string, or the correct string.
154
+		'message' => $message,
155
+	);
156
+
157
+	return $result;
158
+}
159
+
160
+// Looks at all the parents, and tries to find a signed off by somewhere.
161
+function find_signed_off_parents($commit = 'HEAD')
162
+{
163
+	$commit = trim($commit);
164
+
165
+	debugPrint('Attempting to find parents on commit [' . $commit . ']');
166
+
167
+	$parentsRaw = shell_exec('git show -s --format=%P ' . $commit);
168
+	$parents = explode(' ', $parentsRaw);
169
+
170
+	// Test each one.
171
+	foreach ($parents as $p)
172
+	{
173
+		$p = trim($p);
174
+		debugPrint('Testing Parent for signed off [' . $commit . ']');
175
+
176
+		// Basic tests.
177
+		$test = find_signed_off($p);
178
+
179
+		// No, maybe it has a GPG parent.
180
+		if (empty($test))
181
+			$test = find_gpg($p);
182
+
183
+		if (!empty($test))
184
+			return $test;
185
+	}
186
+
187
+	// Lucked out.
188
+	return false;
189
+}
190
+
191
+// Print a debug line
192
+function debugPrint($msg)
193
+{
194
+	global $debugMode;
195
+
196
+	if ($debugMode)
197
+		echo "\nDEBUG: ", $msg;
198
+}
199
+
200
+function fatalError($msg)
201
+{
202
+	fwrite(STDERR, $msg . "\n");
203
+	die;
204
+}
0 205
\ No newline at end of file
... ...
@@ -14,10 +14,8 @@ jobs:
14 14
     steps:
15 15
       - uses: actions/checkout@master
16 16
         with:
17
-          submodules: true
18
-      - name: Update Build Tools
19
-        run: git submodule foreach git pull origin master
17
+          submodules: false
20 18
       - name: Javascript LINT
21 19
         uses: tj-actions/eslint-changed-files@v4
22 20
         with:
23
-          config-path: buildTools/eslintrc.js
24 21
\ No newline at end of file
22
+          config-path: ./.github/configs/eslintrc.js
25 23
\ No newline at end of file
... ...
@@ -14,33 +14,27 @@ jobs:
14 14
     steps:
15 15
       - uses: actions/checkout@master
16 16
         with:
17
-          submodules: true
18
-      - name: Update Build Tools
19
-        run: git submodule foreach git pull origin master
17
+          submodules: false
20 18
       - name: Checking Sign off
21 19
         id: check-signoff
22
-        run: php ./buildTools/check-signed-off.php github
20
+        run: php ./.github/scripts/check-signed-off.php github
23 21
   check-licensing:
24 22
     runs-on: ubuntu-latest
25 23
     name: Check Licensing
26 24
     steps:
27 25
       - uses: actions/checkout@master
28 26
         with:
29
-          submodules: true
30
-      - name: Update Build Tools
31
-        run: git submodule foreach git pull origin master
27
+          submodules: false
32 28
       - name: Checking Licensing
33 29
         id: check-licensing
34
-        run: php ./buildTools/check-license-master.php ./
30
+        run: php ./.github/scripts/check-license-master.php ./
35 31
   check-eof:
36 32
     runs-on: ubuntu-latest
37 33
     name: Check End of File
38 34
     steps:
39 35
       - uses: actions/checkout@master
40 36
         with:
41
-          submodules: true
42
-      - name: Update Build Tools
43
-        run: git submodule foreach git pull origin master
37
+          submodules: false
44 38
       - name: Checking End of File
45 39
         id: check-eof
46
-        run: php ./buildTools/check-eof-master.php ./
47 40
\ No newline at end of file
41
+        run: php ./.github/scripts/check-eof-master.php ./
48 42
\ No newline at end of file
... ...
@@ -18,10 +18,10 @@ jobs:
18 18
     steps:
19 19
       - uses: actions/checkout@master
20 20
         with:
21
-          submodules: true
21
+          submodules: false
22 22
       - name: Setup PHP
23 23
         id: SetupPHP
24 24
         uses: nanasess/setup-php@master
25 25
         with:
26 26
           php-version: ${{ matrix.php }}
27
-      - run: php ./buildTools/check-php-syntax.php ./
28 27
\ No newline at end of file
28
+      - run: php ./.github/scripts/check-php-syntax.php ./
29 29
\ No newline at end of file
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
... ...
@@ -5,7 +5,7 @@
5 5
 *       An advanced help desk modification built on SMF       *
6 6
 ***************************************************************
7 7
 *                                                             *
8
-*         * Copyright 2022 - SimpleDesk.net                   *
8
+*         * Copyright 2023 - SimpleDesk.net                   *
9 9
 *                                                             *
10 10
 *   This file and its contents are subject to the license     *
11 11
 *   included with this distribution, license.txt, which       *
12 12