Add iOS build phase scripts
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
foreach (simplexml_load_file('cpd-output.xml')->duplication as $duplication) {
|
||||
$files = $duplication->xpath('file');
|
||||
foreach ($files as $file) {
|
||||
echo $file['path'].':'.$file['line'].':1: warning: '.$duplication['lines'].' copy-pasted lines from: '
|
||||
.implode(', ', array_map(function ($otherFile) { return $otherFile['path'].':'.$otherFile['line']; },
|
||||
array_filter($files, function ($f) use (&$file) { return $f != $file; }))).PHP_EOL;
|
||||
}
|
||||
}
|
||||
?>
|
||||
Executable
+15
@@ -0,0 +1,15 @@
|
||||
file_name=$1
|
||||
file_link=$2
|
||||
|
||||
folder="Downloads"
|
||||
file_path="./${folder}/${file_name}"
|
||||
|
||||
# make folder if not exist
|
||||
if ! [ -e ${folder} ]; then
|
||||
mkdir ${folder}
|
||||
fi
|
||||
|
||||
# download file if not downloaded
|
||||
if ! [ -e ${file_path} ]; then
|
||||
curl -L ${file_link} -o ${file_path}
|
||||
fi
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
$PROJECT_NAME = $argv[1];
|
||||
$COMMON_STRINGS_PATH = $argv[2];
|
||||
|
||||
function createFolder($path) {
|
||||
if (!file_exists($path)) {
|
||||
mkdir($path, 0777, true);
|
||||
}
|
||||
}
|
||||
|
||||
$localization = './'.$PROJECT_NAME.'/Resources/Localization/';
|
||||
|
||||
foreach (glob($COMMON_STRINGS_PATH.'/*.json') as $file) {
|
||||
$languageName = array_pop(explode('_', basename($file, '.json')));
|
||||
$isBase = strpos($file, 'default') !== false;
|
||||
|
||||
$jsonFile = file_get_contents($file);
|
||||
$json = json_decode($jsonFile);
|
||||
|
||||
$ios_strings = "";
|
||||
foreach ($json as $key=>$value) {
|
||||
$ios_strings.='"'.$key.'" = "'.str_replace('%s', '%@', str_replace('"','\"', str_replace("\n", '\n', $value))).'";'.PHP_EOL;
|
||||
}
|
||||
$ios_strings = preg_replace('/(\\\\)(u)(\d{4})/', '$1U$3', $ios_strings);
|
||||
|
||||
$lproj = $localization.$languageName.'.lproj/';
|
||||
createFolder($lproj);
|
||||
file_put_contents($lproj.'Localizable.strings', $ios_strings);
|
||||
|
||||
if($isBase) {
|
||||
createFolder($localization.'Base.lproj/');
|
||||
file_put_contents($localization.'Base.lproj/Localizable.strings', $ios_strings);
|
||||
$ios_swift_strings = 'import Foundation'.PHP_EOL.
|
||||
'import LeadKit'.PHP_EOL.PHP_EOL.
|
||||
'// swiftlint:disable superfluous_disable_command'.PHP_EOL.
|
||||
'// swiftlint:disable line_length'.PHP_EOL.
|
||||
'// swiftlint:disable file_length'.PHP_EOL.
|
||||
'// swiftlint:disable identifier_name'.PHP_EOL.PHP_EOL.
|
||||
'extension String {'.PHP_EOL;
|
||||
foreach ($json as $key=>$value) {
|
||||
$value_without_linefeed = preg_replace("/\r|\n/", " ", $value);
|
||||
$ios_swift_strings .= "\t/// ".$value_without_linefeed."\n\t".'static let '.preg_replace_callback('/_(.?)/', function ($m) { return strtoupper($m[1]); }, $key).' = "'.$key.'".localized()'."\n".PHP_EOL;
|
||||
}
|
||||
$ios_swift_strings .= '}'.PHP_EOL;
|
||||
file_put_contents($localization.'String+Localization.swift', $ios_swift_strings);
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user