Browse code

Added README.md appinfo/info.xml appinfo/signature.json lib/Controller/AuthorApiController.php and the providers directory

DoubleBastionAdmin authored on 20/08/2022 16:33:00
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,57 @@
1
+<?php
2
+$dist = dirname(__DIR__).'/dist';
3
+if (!is_dir($dist)) {
4
+    mkdir($dist, 0755);
5
+}
6
+if (file_exists($dist.'/random_compat.phar')) {
7
+    unlink($dist.'/random_compat.phar');
8
+}
9
+$phar = new Phar(
10
+    $dist.'/random_compat.phar',
11
+    FilesystemIterator::CURRENT_AS_FILEINFO | \FilesystemIterator::KEY_AS_FILENAME,
12
+    'random_compat.phar'
13
+);
14
+rename(
15
+    dirname(__DIR__).'/lib/random.php', 
16
+    dirname(__DIR__).'/lib/index.php'
17
+);
18
+$phar->buildFromDirectory(dirname(__DIR__).'/lib');
19
+rename(
20
+    dirname(__DIR__).'/lib/index.php', 
21
+    dirname(__DIR__).'/lib/random.php'
22
+);
23
+
24
+/**
25
+ * If we pass an (optional) path to a private key as a second argument, we will
26
+ * sign the Phar with OpenSSL.
27
+ * 
28
+ * If you leave this out, it will produce an unsigned .phar!
29
+ */
30
+if ($argc > 1) {
31
+    if (!@is_readable($argv[1])) {
32
+        echo 'Could not read the private key file:', $argv[1], "\n";
33
+        exit(255);
34
+    }
35
+    $pkeyFile = file_get_contents($argv[1]);
36
+    
37
+    $private = openssl_get_privatekey($pkeyFile);
38
+    if ($private !== false) {
39
+        $pkey = '';
40
+        openssl_pkey_export($private, $pkey);
41
+        $phar->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
42
+        
43
+        /**
44
+         * Save the corresponding public key to the file
45
+         */
46
+        if (!@is_readable($dist.'/random_compat.phar.pubkey')) {
47
+            $details = openssl_pkey_get_details($private);
48
+            file_put_contents(
49
+                $dist.'/random_compat.phar.pubkey',
50
+                $details['key']
51
+            );
52
+        }
53
+    } else {
54
+        echo 'An error occurred reading the private key from OpenSSL.', "\n";
55
+        exit(255);
56
+    }
57
+}