Subversion Repositories qbpwcf-lib(archive)

Rev

Rev 488 | Rev 553 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 488 Rev 550
Line 48... Line 48...
48
	echo "--dbAddr MariaDb service address, default is \"localhost\"".PHP_EOL;
48
	echo "--dbAddr MariaDb service address, default is \"localhost\"".PHP_EOL;
49
	echo "--dbAcct MariaDb service account, default is \"root\"".PHP_EOL;
49
	echo "--dbAcct MariaDb service account, default is \"root\"".PHP_EOL;
50
	echo "--dbPass MariaDb service password, default is output of uuid command".PHP_EOL;
50
	echo "--dbPass MariaDb service password, default is output of uuid command".PHP_EOL;
51
	echo "--dbName MariaDb service database name, default is test".PHP_EOL;
51
	echo "--dbName MariaDb service database name, default is test".PHP_EOL;
52
	echo "--dbPort MariaDb service port, default is 3306".PHP_EOL;
52
	echo "--dbPort MariaDb service port, default is 3306".PHP_EOL;
-
 
53
	echo "--sshAddrAndPort ssh service address, example: 0.0.0.0:22".PHP_EOL;
53
	echo "--headless true/false, default is false. If true, it means link allInOneForCI.php to allInOne.php".PHP_EOL;
54
	echo "--headless true/false, default is false. If true, it means link allInOneForCI.php to allInOne.php".PHP_EOL;
54
	exit;
55
	exit;
55
 
56
 
56
	}#function help end
57
	}#function help end
57
 
58
 
Line 196... Line 197...
196
$dbAddr="localhost";
197
$dbAddr="localhost";
197
 
198
 
198
#預設的資料庫port
199
#預設的資料庫port
199
$dbPort="3306";
200
$dbPort="3306";
200
 
201
 
-
 
202
#預設的 sshd 設定檔案
-
 
203
$defaultSshdConfigAddr="qbpwcf/etc/sshd_config.php";
-
 
204
 
-
 
205
#預設要要確保ssh服務有運行的ip與port
-
 
206
$sshAddrAndPort=array();
-
 
207
 
201
#預設要有自動輸出的內容
208
#預設要有自動輸出的內容
202
$headless="false";
209
$headless="false";
203
 
210
 
204
#檢查參數
211
#檢查參數
205
#函式說明:
212
#函式說明:
Line 232... Line 239...
232
#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
239
#$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
233
#$conf["canNotBeEmpty"]=array();
240
#$conf["canNotBeEmpty"]=array();
234
#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
241
#$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
235
#$conf["canBeEmpty"]=array();
242
#$conf["canBeEmpty"]=array();
236
#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
243
#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
237
$conf["skipableVariableCanNotBeEmpty"]=array("rootPath","name","mode","ip","dbAcct","dbPass","dbName","dbAddr","dbPort","headless");
244
$conf["skipableVariableCanNotBeEmpty"]=array("rootPath","name","mode","ip","dbAcct","dbPass","dbName","dbAddr","dbPort","sshAddrAndPort","headless");
238
#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
245
#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
239
$conf["skipableVariableName"]=array("rootPath","name","mode","ip","dbAcct","dbPass","dbName","dbAddr","dbPort","headless");
246
$conf["skipableVariableName"]=array("rootPath","name","mode","ip","dbAcct","dbPass","dbName","dbAddr","dbPort","sshAddrAndPort","headless");
240
#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
247
#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
241
$conf["skipableVariableType"]=array("array","array","array","array","array","array","array","array","array","array");
248
$conf["skipableVariableType"]=array("array","array","array","array","array","array","array","array","array","array","array");
242
#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
249
#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
243
$conf["skipableVarDefaultValue"]=array(null,null,null,null);
250
$conf["skipableVarDefaultValue"]=array(null,null,null,null);
244
#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
251
#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
245
#$conf["disallowAllSkipableVarIsEmpty"]="";
252
#$conf["disallowAllSkipableVarIsEmpty"]="";
246
#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
253
#$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
Line 371... Line 378...
371
			$dbPort=$parseArgu["content"]["dbPort"][0];
378
			$dbPort=$parseArgu["content"]["dbPort"][0];
372
		
379
		
373
			}#if end
380
			}#if end
374
	
381
	
375
		}#if end
382
		}#if end
-
 
383
				
-
 
384
	#如果有 sshAddrAndPort 參數
-
 
385
	if(isset($parseArgu["content"]["sshAddrAndPort"])){
-
 
386
	
-
 
387
		#如果有 sshAddrAndPort 參數存在
-
 
388
		if(isset($parseArgu["content"]["sshAddrAndPort"][0])){
-
 
389
		
-
 
390
			#新增 sshAddrAndPort
-
 
391
			$sshAddrAndPort[]=$parseArgu["content"]["sshAddrAndPort"][0];
-
 
392
		
-
 
393
			}#if end
-
 
394
	
-
 
395
		}#if end
376
		
396
		
377
	#如果有 headless 參數
397
	#如果有 headless 參數
378
	if(isset($parseArgu["content"]["headless"])){
398
	if(isset($parseArgu["content"]["headless"])){
379
	
399
	
380
		#如果有 headless 參數存在
400
		#如果有 headless 參數存在
Line 812... Line 832...
812
 
832
 
813
	}#if end
833
	}#if end
814
 
834
 
815
#重新建置 qbpwcf/usr/local/etc/qbpwcf.conf.xml
835
#重新建置 qbpwcf/usr/local/etc/qbpwcf.conf.xml
816
#函式說明:
836
#函式說明:
817
#建立軟連結.
837
#更新檔案內容.
818
#回傳結果:
838
#回傳結果:
819
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
839
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
820
#$result["error"],錯誤訊息.
840
#$result["error"],錯誤訊息.
821
#$result["function"],當前執行的函數名稱.
841
#$result["function"],當前執行的函數名稱.
822
#$result["content"],軟連結的資訊.
842
#$result["content"],軟連結的資訊.
Line 947... Line 967...
947
#break point
967
#break point
948
var_dump($chmod);
968
var_dump($chmod);
949
exit;
969
exit;
950
*/
970
*/
951
 
971
 
-
 
972
#若有要指定 ssh addr 與 port
-
 
973
if(count($sshAddrAndPort)>0){
-
 
974
 
-
 
975
	#建立 $defaultSshdConfigAddr 檔案
-
 
976
	#函式說明:
-
 
977
	#將字串寫入到檔案
-
 
978
	#回傳結果:
-
 
979
	#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
-
 
980
	#$result["error"],錯誤訊息陣列.
-
 
981
	#$result["function"],當前執行的函數名稱.
-
 
982
	#$result["fileInfo"],實際上寫入的檔案資訊陣列.
-
 
983
	#$result["fileInfo"]["createdFileName"],建立好的檔案名稱.
-
 
984
	#$result["fileInfo"]["createdFilePath"],檔案建立的路徑.
-
 
985
	#$result["fileInfo"]["createdFilePathAndName"].建立好的檔案名稱與路徑.
-
 
986
	#$result["argu"],使用的參數.
-
 
987
	#必填參數:
-
 
988
	#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
989
	$conf["fileArgu"]=__FILE__;
-
 
990
	#可省略參數:
-
 
991
	#$conf["fileName"],字串,爲要編輯的檔案名稱,預設為隨機產生的檔案名稱.
-
 
992
	$conf["fileName"]=$defaultSshdConfigAddr;
-
 
993
	#$conf["inputString"],字串,爲要寫入到裏面的內容,若要每筆資料寫入後換行,則可以在字串內容後面加上 \r\n 即可,預設為"".
-
 
994
	#$conf["inputString"]=$testToWrite;	
-
 
995
	#$conf["writeMethod"],字串,爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入.
-
 
996
	#$conf["writeMethod"]="a";
-
 
997
	#$conf["checkRepeat"],字串,"true"代表建立檔案之前要先檢查檔案是否存在,若存在則在原名稱後面加上從(1)開始的編號.
-
 
998
	#$conf["checkRepeat"]="";
-
 
999
	#$conf["filenameExtensionStartPoint"],字串,檔案的副檔名是從倒數第幾個小數點(dot)開始,預設為"1",最後一個小數點,必須與$conf["checkRepeat"]搭配才會生效.
-
 
1000
	#$conf["filenameExtensionStartPoint"]="";
-
 
1001
	#$conf["repeatNameRule"],字串,遇到相同名稱的檔案要如何加上識別的編號,編號用「\$i」表示,預設為"(\$i)",必須與$conf["checkRepeat"]搭配才會生效.
-
 
1002
	#$conf["repeatNameRule"]="";
-
 
1003
	#$conf["web"],檔案是否位於網站上"true",若是在檔案系統則為"false",預設為"true".
-
 
1004
	$conf["web"]="false";
-
 
1005
	#參考資料:
-
 
1006
	#無.
-
 
1007
	#備註:
-
 
1008
	#無.
-
 
1009
	$writeTextIntoFile=fileAccess::writeTextIntoFile($conf);
-
 
1010
	unset($conf);
-
 
1011
 
-
 
1012
	#如果執行失敗
-
 
1013
	if($writeTextIntoFile["status"]==="false"){
-
 
1014
	
-
 
1015
		#印出結果
-
 
1016
		var_dump($writeTextIntoFile);
-
 
1017
		
-
 
1018
		#結束執行
-
 
1019
		exit;
-
 
1020
	
-
 
1021
		}#if end
-
 
1022
 
-
 
1023
	#要覆寫的內容
-
 
1024
	$overWriteWith=array("<?php".PHP_EOL);
-
 
1025
 
-
 
1026
	#針對每個為了確保ssh服務有運行的設定
-
 
1027
	foreach($sshAddrAndPort as $ipAndPort){
-
 
1028
 
-
 
1029
		#串接設定
-
 
1030
		$overWriteWith[]="\$ipAndPort="$ipAndPort.";";
-
 
1031
 
-
 
1032
		}#foreach end
-
 
1033
		
-
 
1034
	#要覆寫的內容
-
 
1035
	$overWriteWith=array(PHP_EOL."?>");
-
 
1036
 
-
 
1037
	#函式說明:
-
 
1038
	#更新檔案的內容.
-
 
1039
	#回傳結果:
-
 
1040
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
-
 
1041
	#$result["error"],錯誤訊息.
-
 
1042
	#$result["function"],當前執行的函數名稱.
-
 
1043
	#$result["content"],軟連結的資訊.
-
 
1044
	#必填參數:
-
 
1045
	#$conf["fileArgu"],字串,變數__FILE__的內容.
-
 
1046
	$conf["fileArgu"]=__FILE__;
-
 
1047
	#$conf["file"],字串,要更新的檔案位置與名稱.
-
 
1048
	$conf["file"]="";
-
 
1049
	#可省略參數:
-
 
1050
	#$conf["overWriteWith"],字串陣列,要置換成什麼樣的內容,每個元素代表一行內容.
-
 
1051
	$conf["overWriteWith"]=$overWriteWith;
-
 
1052
	#$conf["replaceWith"],字串陣列,要將什麼內容置換成什麼內容.
-
 
1053
	#$conf["replaceWith"]=array(array("ori content","new content"),array("ori content","new content"),...);
-
 
1054
	#$conf["addToTailWhenNoMatch"],字串,預設為"false"不做事;若為"true",則代表若使用 "replaceWith" 參數但沒有符合條件的內容出現,則新增到檔案的尾端.
-
 
1055
	#$conf["addToTailWhenNoMatch"]="false";
-
 
1056
	#$conf["addToTailBeforeThat"],字串,當 "replaceWith" 參數有使用,且 "addToTailWhenNoMatch" 為 "true" 時,若有使用該參數,則會從尾端尋找符合條件的行內容,然後將 沒有符合 "replaceWith" 條件的內容新增在此之前.
-
 
1057
	#$conf["addToTailBeforeThat"]="?\>";
-
 
1058
	#參考資料:
-
 
1059
	#無.
-
 
1060
	#備註:
-
 
1061
	#無.
-
 
1062
	$updateFile=fileAccess::updateFile(&$conf);
-
 
1063
	unset($conf);
-
 
1064
 
-
 
1065
	#如果執行失敗
-
 
1066
	if($updateFile["status"]==="false"){
-
 
1067
	
-
 
1068
		#印出結果
-
 
1069
		var_dump($updateFile);
-
 
1070
		
-
 
1071
		#結束執行
-
 
1072
		exit;
-
 
1073
	
-
 
1074
		}#if end
-
 
1075
 
-
 
1076
	}#if end
-
 
1077
 
952
#移除 qbpwcf/usr/lib/systemd/system 底下服務設定檔的執行權限
1078
#移除 qbpwcf/usr/lib/systemd/system 底下服務設定檔的執行權限
953
#函式說明:
1079
#函式說明:
954
#使用 linux 的 chmod 指令來修改目標檔案或目錄的權限.
1080
#使用 linux 的 chmod 指令來修改目標檔案或目錄的權限.
955
#回傳結果:
1081
#回傳結果:
956
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1082
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.