mirror of
https://github.com/pbatard/rufus.git
synced 2024-08-14 23:57:05 +00:00
[pollock] update maintainer mode
* Also add maintenance script
This commit is contained in:
parent
4483a6b17d
commit
91a18be258
3 changed files with 83 additions and 37 deletions
20
res/loc/po/!update.cmd
Normal file
20
res/loc/po/!update.cmd
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
@echo off
|
||||||
|
if not exist pollock.exe curl https://rufus.ie/locale/pollock.exe --output pollock.exe
|
||||||
|
cls
|
||||||
|
:menu
|
||||||
|
echo 1 - Import .po into .loc
|
||||||
|
echo 2 - Create .po from .loc
|
||||||
|
echo 3 - Exit
|
||||||
|
choice /N /C:123%1
|
||||||
|
if ERRORLEVEL==3 goto exit
|
||||||
|
if ERRORLEVEL==2 (
|
||||||
|
pollock.exe -l
|
||||||
|
goto menu
|
||||||
|
)
|
||||||
|
if ERRORLEVEL==1 (
|
||||||
|
pollock.exe -i
|
||||||
|
goto menu
|
||||||
|
)
|
||||||
|
:exit
|
||||||
|
del *.pot
|
||||||
|
del *.mo
|
|
@ -973,7 +973,7 @@ namespace pollock
|
||||||
if (Console.WindowWidth < 100)
|
if (Console.WindowWidth < 100)
|
||||||
Console.SetWindowSize(100, Console.WindowHeight);
|
Console.SetWindowSize(100, Console.WindowHeight);
|
||||||
|
|
||||||
bool use_local_loc = false;
|
bool maintainer_mode = false;
|
||||||
Console.OutputEncoding = System.Text.Encoding.UTF8;
|
Console.OutputEncoding = System.Text.Encoding.UTF8;
|
||||||
Console.CancelKeyPress += delegate (object sender, ConsoleCancelEventArgs e) {
|
Console.CancelKeyPress += delegate (object sender, ConsoleCancelEventArgs e) {
|
||||||
e.Cancel = true;
|
e.Cancel = true;
|
||||||
|
@ -981,14 +981,6 @@ namespace pollock
|
||||||
};
|
};
|
||||||
Console.WriteLine($"{app_name} {version_str} - Poedit to rufus.loc conversion utility");
|
Console.WriteLine($"{app_name} {version_str} - Poedit to rufus.loc conversion utility");
|
||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
foreach (var arg in args)
|
|
||||||
{
|
|
||||||
if (arg.Contains("l"))
|
|
||||||
use_local_loc = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (AppDomain.CurrentDomain.FriendlyName.Contains('m'))
|
|
||||||
goto Maintainer_Mode;
|
|
||||||
|
|
||||||
string loc_url = "https://github.com/pbatard/rufus/raw/master/res/loc/rufus.loc";
|
string loc_url = "https://github.com/pbatard/rufus/raw/master/res/loc/rufus.loc";
|
||||||
string ver_url = "https://rufus.ie/Loc.ver";
|
string ver_url = "https://rufus.ie/Loc.ver";
|
||||||
|
@ -996,17 +988,48 @@ namespace pollock
|
||||||
string rufus_file = null;
|
string rufus_file = null;
|
||||||
string download_url = null;
|
string download_url = null;
|
||||||
string po_file = null;
|
string po_file = null;
|
||||||
|
string loc_file = null;
|
||||||
|
string id = "", name = "";
|
||||||
int[] update_version = new int[2] { 0, 0 };
|
int[] update_version = new int[2] { 0, 0 };
|
||||||
var list = new List<string[]>();
|
var list = new List<string[]>();
|
||||||
int index = -1;
|
int index = -1;
|
||||||
|
|
||||||
|
// Parse parameters
|
||||||
|
foreach (var arg in args)
|
||||||
|
{
|
||||||
|
if (arg.Contains("i"))
|
||||||
|
{
|
||||||
|
maintainer_mode = true;
|
||||||
|
goto Import;
|
||||||
|
}
|
||||||
|
else if (arg.Contains("l"))
|
||||||
|
{
|
||||||
|
loc_file = @"..\rufus.loc";
|
||||||
|
foreach (var line in File.ReadAllLines(loc_file))
|
||||||
|
{
|
||||||
|
if (line.StartsWith("l "))
|
||||||
|
{
|
||||||
|
var el = line.Split('\"');
|
||||||
|
id = el[1];
|
||||||
|
name = el[3].Split('(')[0].Trim();
|
||||||
|
}
|
||||||
|
else if (line.StartsWith("v "))
|
||||||
|
{
|
||||||
|
list.Add(new string[] { name, id, line.Substring(2) });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
maintainer_mode = true;
|
||||||
|
goto Menu;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Check for updates of this application
|
// Check for updates of this application
|
||||||
Console.Write("Downloading latest application data... ");
|
Console.Write("Downloading latest application data... ");
|
||||||
var ver = DownloadString(ver_url);
|
var ver = DownloadString(ver_url);
|
||||||
if (ver == null)
|
if (ver == null)
|
||||||
{
|
{
|
||||||
Console.WriteLine("ERROR: Could not access application data.");
|
Console.WriteLine("ERROR: Could not access application data.");
|
||||||
goto Error;
|
goto Exit;
|
||||||
}
|
}
|
||||||
foreach (var line in ver.Split('\n'))
|
foreach (var line in ver.Split('\n'))
|
||||||
{
|
{
|
||||||
|
@ -1030,7 +1053,7 @@ namespace pollock
|
||||||
if ((download_url == null) || (rufus_url == null) || (update_version[0] == 0))
|
if ((download_url == null) || (rufus_url == null) || (update_version[0] == 0))
|
||||||
{
|
{
|
||||||
Console.WriteLine("FAILED");
|
Console.WriteLine("FAILED");
|
||||||
goto Error;
|
goto Exit;
|
||||||
}
|
}
|
||||||
Console.WriteLine("DONE");
|
Console.WriteLine("DONE");
|
||||||
|
|
||||||
|
@ -1043,7 +1066,7 @@ namespace pollock
|
||||||
if (DownloadFile(download_url))
|
if (DownloadFile(download_url))
|
||||||
{
|
{
|
||||||
Console.WriteLine("Now re-launch this program using the latest version.");
|
Console.WriteLine("Now re-launch this program using the latest version.");
|
||||||
goto Error;
|
goto Exit;
|
||||||
}
|
}
|
||||||
Console.WriteLine("Download failed.");
|
Console.WriteLine("Download failed.");
|
||||||
}
|
}
|
||||||
|
@ -1071,12 +1094,12 @@ namespace pollock
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!use_local_loc)
|
if (!maintainer_mode)
|
||||||
{
|
{
|
||||||
// Download the latest loc file
|
// Download the latest loc file
|
||||||
Console.Write("Downloading the latest loc file... ");
|
Console.Write("Downloading the latest loc file... ");
|
||||||
if (!DownloadFile(loc_url))
|
if (!DownloadFile(loc_url))
|
||||||
goto Error;
|
goto Exit;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1085,10 +1108,9 @@ namespace pollock
|
||||||
File.Copy(local_loc, "rufus.loc", true);
|
File.Copy(local_loc, "rufus.loc", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
var loc_file = loc_url.Split('/').Last();
|
loc_file = loc_url.Split('/').Last();
|
||||||
// Convert to CRLF and get all the language ids
|
// Convert to CRLF and get all the language ids
|
||||||
var lines = File.ReadAllLines(loc_file);
|
var lines = File.ReadAllLines(loc_file);
|
||||||
string id = "", name = "";
|
|
||||||
using (var writer = new StreamWriter(loc_file, false, encoding))
|
using (var writer = new StreamWriter(loc_file, false, encoding))
|
||||||
{
|
{
|
||||||
foreach (var line in lines)
|
foreach (var line in lines)
|
||||||
|
@ -1142,9 +1164,12 @@ Retry:
|
||||||
Language old_en_US = null;
|
Language old_en_US = null;
|
||||||
if (list[index][2] == list[0][2])
|
if (list[index][2] == list[0][2])
|
||||||
{
|
{
|
||||||
Console.WriteLine("Note: This language is already at the most recent version!");
|
if (!maintainer_mode)
|
||||||
if (!PromptForQuestion("Do you still want to edit it?"))
|
{
|
||||||
goto Error;
|
Console.WriteLine("Note: This language is already at the most recent version!");
|
||||||
|
if (!PromptForQuestion("Do you still want to edit it?"))
|
||||||
|
goto Exit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1162,34 +1187,37 @@ Retry:
|
||||||
var url = "https://github.com/pbatard/rufus/releases/tag/v" + list[index][2];
|
var url = "https://github.com/pbatard/rufus/releases/tag/v" + list[index][2];
|
||||||
var str = DownloadString(url);
|
var str = DownloadString(url);
|
||||||
if (str == null)
|
if (str == null)
|
||||||
goto Error;
|
goto Exit;
|
||||||
var sha = str.Substring(str.IndexOf("/pbatard/rufus/commit/") + 22, 40);
|
var sha = str.Substring(str.IndexOf("/pbatard/rufus/commit/") + 22, 40);
|
||||||
// TODO: Remove this once everyone has upgraded past 3.2
|
// TODO: Remove this once everyone has upgraded past 3.2
|
||||||
string loc_dir = ((list[index][2][0] == '2') || ((list[index][2][0] == '3') && (list[index][2][2] == '0'))) ? "localization" : "loc";
|
string loc_dir = ((list[index][2][0] == '2') || ((list[index][2][0] == '3') && (list[index][2][2] == '0'))) ? "localization" : "loc";
|
||||||
url = "https://github.com/pbatard/rufus/raw/" + sha + "/res/" + loc_dir + "/rufus.loc";
|
url = "https://github.com/pbatard/rufus/raw/" + sha + "/res/" + loc_dir + "/rufus.loc";
|
||||||
if (!DownloadFile(url, old_loc_file))
|
if (!DownloadFile(url, old_loc_file))
|
||||||
goto Error;
|
goto Exit;
|
||||||
}
|
}
|
||||||
var old_langs = ParseLocFile(old_loc_file, "en-US");
|
var old_langs = ParseLocFile(old_loc_file, "en-US");
|
||||||
if ((old_langs == null) || (old_langs.Count != 1))
|
if ((old_langs == null) || (old_langs.Count != 1))
|
||||||
{
|
{
|
||||||
Console.WriteLine("Error: Unable to get en-US data from previous loc file.");
|
Console.WriteLine("Error: Unable to get en-US data from previous loc file.");
|
||||||
goto Error;
|
goto Exit;
|
||||||
}
|
}
|
||||||
old_en_US = old_langs[0];
|
old_en_US = old_langs[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (File.Exists(po_file))
|
if (File.Exists(po_file) && !maintainer_mode)
|
||||||
{
|
{
|
||||||
if (!PromptForQuestion($"A '{po_file}' file already exists. Do you want to overwrite it? (If unsure, say 'y')"))
|
if (!PromptForQuestion($"A '{po_file}' file already exists. Do you want to overwrite it? (If unsure, say 'y')"))
|
||||||
goto Error;
|
goto Exit;
|
||||||
}
|
}
|
||||||
if (CreatePoFiles(ParseLocFile(loc_file, list[index][1]), old_en_US) < 1)
|
if (CreatePoFiles(ParseLocFile(loc_file, list[index][1]), old_en_US) < 1)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Failed to create PO file");
|
Console.WriteLine("Failed to create PO file");
|
||||||
goto Error;
|
goto Exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (maintainer_mode)
|
||||||
|
goto Exit;
|
||||||
|
|
||||||
// Watch for file modifications
|
// Watch for file modifications
|
||||||
FileSystemWatcher watcher = new FileSystemWatcher();
|
FileSystemWatcher watcher = new FileSystemWatcher();
|
||||||
watcher.Path = app_dir;
|
watcher.Path = app_dir;
|
||||||
|
@ -1242,7 +1270,6 @@ Retry:
|
||||||
Console.WriteLine($"'{po_file}' file manually.");
|
Console.WriteLine($"'{po_file}' file manually.");
|
||||||
}
|
}
|
||||||
|
|
||||||
Exit:
|
|
||||||
WaitForKey("Now press any key to launch your e-mail client and exit this application...");
|
WaitForKey("Now press any key to launch your e-mail client and exit this application...");
|
||||||
|
|
||||||
if ((list.Count >= 2) && (index >= 0))
|
if ((list.Count >= 2) && (index >= 0))
|
||||||
|
@ -1254,11 +1281,7 @@ Exit:
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Error:
|
Import:
|
||||||
WaitForKey("Press any key to exit...");
|
|
||||||
return;
|
|
||||||
|
|
||||||
Maintainer_Mode:
|
|
||||||
string file_name;
|
string file_name;
|
||||||
OpenFileDialog file_dialog = new OpenFileDialog();
|
OpenFileDialog file_dialog = new OpenFileDialog();
|
||||||
file_dialog.InitialDirectory = app_dir;
|
file_dialog.InitialDirectory = app_dir;
|
||||||
|
@ -1267,7 +1290,10 @@ Maintainer_Mode:
|
||||||
file_name = file_dialog.FileName;
|
file_name = file_dialog.FileName;
|
||||||
Console.WriteLine(file_name);
|
Console.WriteLine(file_name);
|
||||||
UpdateLocFile(ParsePoFile(file_name), app_dir + @"..\");
|
UpdateLocFile(ParsePoFile(file_name), app_dir + @"..\");
|
||||||
WaitForKey("Press any key to exit...");
|
|
||||||
|
Exit:
|
||||||
|
if (!maintainer_mode)
|
||||||
|
WaitForKey("Press any key to exit...");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
10
src/rufus.rc
10
src/rufus.rc
|
@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||||
IDD_DIALOG DIALOGEX 12, 12, 232, 326
|
IDD_DIALOG DIALOGEX 12, 12, 232, 326
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_ACCEPTFILES
|
EXSTYLE WS_EX_ACCEPTFILES
|
||||||
CAPTION "Rufus 3.2.1349"
|
CAPTION "Rufus 3.2.1350"
|
||||||
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
|
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
|
||||||
BEGIN
|
BEGIN
|
||||||
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
|
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
|
||||||
|
@ -392,8 +392,8 @@ END
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 3,2,1349,0
|
FILEVERSION 3,2,1350,0
|
||||||
PRODUCTVERSION 3,2,1349,0
|
PRODUCTVERSION 3,2,1350,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -411,13 +411,13 @@ BEGIN
|
||||||
VALUE "Comments", "https://akeo.ie"
|
VALUE "Comments", "https://akeo.ie"
|
||||||
VALUE "CompanyName", "Akeo Consulting"
|
VALUE "CompanyName", "Akeo Consulting"
|
||||||
VALUE "FileDescription", "Rufus"
|
VALUE "FileDescription", "Rufus"
|
||||||
VALUE "FileVersion", "3.2.1349"
|
VALUE "FileVersion", "3.2.1350"
|
||||||
VALUE "InternalName", "Rufus"
|
VALUE "InternalName", "Rufus"
|
||||||
VALUE "LegalCopyright", "© 2011-2018 Pete Batard (GPL v3)"
|
VALUE "LegalCopyright", "© 2011-2018 Pete Batard (GPL v3)"
|
||||||
VALUE "LegalTrademarks", "https://www.gnu.org/copyleft/gpl.html"
|
VALUE "LegalTrademarks", "https://www.gnu.org/copyleft/gpl.html"
|
||||||
VALUE "OriginalFilename", "rufus-3.2.exe"
|
VALUE "OriginalFilename", "rufus-3.2.exe"
|
||||||
VALUE "ProductName", "Rufus"
|
VALUE "ProductName", "Rufus"
|
||||||
VALUE "ProductVersion", "3.2.1349"
|
VALUE "ProductVersion", "3.2.1350"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
Loading…
Reference in a new issue