mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: SevenZip - install plugin under Linux (experimental)
This commit is contained in:
parent
22a8fdb239
commit
bc9d0074d2
4 changed files with 52 additions and 30 deletions
|
|
@ -52,6 +52,7 @@ mkdir -p $DC_INSTALL_DIR/plugins/wcx/deb
|
||||||
mkdir -p $DC_INSTALL_DIR/plugins/wcx/rpm
|
mkdir -p $DC_INSTALL_DIR/plugins/wcx/rpm
|
||||||
mkdir -p $DC_INSTALL_DIR/plugins/wcx/unrar
|
mkdir -p $DC_INSTALL_DIR/plugins/wcx/unrar
|
||||||
mkdir -p $DC_INSTALL_DIR/plugins/wcx/zip
|
mkdir -p $DC_INSTALL_DIR/plugins/wcx/zip
|
||||||
|
mkdir -p $DC_INSTALL_DIR/plugins/wcx/sevenzip
|
||||||
# WDX plugins directories
|
# WDX plugins directories
|
||||||
mkdir -p $DC_INSTALL_DIR/plugins/wdx
|
mkdir -p $DC_INSTALL_DIR/plugins/wdx
|
||||||
mkdir -p $DC_INSTALL_DIR/plugins/wdx/scripts
|
mkdir -p $DC_INSTALL_DIR/plugins/wdx/scripts
|
||||||
|
|
@ -88,6 +89,8 @@ cp -r plugins/wcx/unrar/language $DC_INSTALL_DIR/plugins/wcx/
|
||||||
install -m 644 plugins/wcx/unrar/unrar.wcx $DC_INSTALL_DIR/plugins/wcx/unrar/
|
install -m 644 plugins/wcx/unrar/unrar.wcx $DC_INSTALL_DIR/plugins/wcx/unrar/
|
||||||
cp -r plugins/wcx/zip/language $DC_INSTALL_DIR/plugins/wcx/zip
|
cp -r plugins/wcx/zip/language $DC_INSTALL_DIR/plugins/wcx/zip
|
||||||
install -m 644 plugins/wcx/zip/zip.wcx $DC_INSTALL_DIR/plugins/wcx/zip/
|
install -m 644 plugins/wcx/zip/zip.wcx $DC_INSTALL_DIR/plugins/wcx/zip/
|
||||||
|
cp -r plugins/wcx/sevenzip/language $DC_INSTALL_DIR/plugins/wcx/sevenzip
|
||||||
|
install -m 644 plugins/wcx/sevenzip/sevenzip.wcx $DC_INSTALL_DIR/plugins/wcx/sevenzip/
|
||||||
# WDX
|
# WDX
|
||||||
install -m 644 plugins/wdx/rpm_wdx/rpm_wdx.wdx $DC_INSTALL_DIR/plugins/wdx/rpm_wdx/
|
install -m 644 plugins/wdx/rpm_wdx/rpm_wdx.wdx $DC_INSTALL_DIR/plugins/wdx/rpm_wdx/
|
||||||
install -m 644 plugins/wdx/deb_wdx/deb_wdx.wdx $DC_INSTALL_DIR/plugins/wdx/deb_wdx/
|
install -m 644 plugins/wdx/deb_wdx/deb_wdx.wdx $DC_INSTALL_DIR/plugins/wdx/deb_wdx/
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,12 @@ $lazbuild wcx/rpm/src/rpm.lpi $DC_ARCH
|
||||||
$lazbuild wcx/unrar/src/unrar.lpi $DC_ARCH
|
$lazbuild wcx/unrar/src/unrar.lpi $DC_ARCH
|
||||||
$lazbuild wcx/zip/src/Zip.lpi $DC_ARCH
|
$lazbuild wcx/zip/src/Zip.lpi $DC_ARCH
|
||||||
|
|
||||||
|
if [ -n $(uname | grep Linux) ]; then
|
||||||
|
|
||||||
|
$lazbuild wcx/sevenzip/src/SevenZipWcx.lpi $DC_ARCH
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
# WDX plugins
|
# WDX plugins
|
||||||
$lazbuild wdx/rpm_wdx/src/rpm_wdx.lpi $DC_ARCH
|
$lazbuild wdx/rpm_wdx/src/rpm_wdx.lpi $DC_ARCH
|
||||||
$lazbuild wdx/deb_wdx/src/deb_wdx.lpi $DC_ARCH
|
$lazbuild wdx/deb_wdx/src/deb_wdx.lpi $DC_ARCH
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,10 @@ uses
|
||||||
DCOSUtils, DCClassesUtf8, uGlobs, uLng, uDCUtils;
|
DCOSUtils, DCClassesUtf8, uGlobs, uLng, uDCUtils;
|
||||||
|
|
||||||
procedure UpdatePlugins;
|
procedure UpdatePlugins;
|
||||||
|
{$IF DEFINED(MSWINDOWS) or DEFINED(LINUX)}
|
||||||
|
const
|
||||||
|
Z7ip = {$IFDEF MSWINDOWS}True{$ELSE}False{$ENDIF};
|
||||||
|
{$ENDIF}
|
||||||
var
|
var
|
||||||
I: Integer;
|
I: Integer;
|
||||||
Folder: String;
|
Folder: String;
|
||||||
|
|
@ -106,10 +110,10 @@ begin
|
||||||
if I < 0 then
|
if I < 0 then
|
||||||
gWCXPlugins.Add('jar', 990, Folder + 'zip' + PathDelim + 'zip.wcx');
|
gWCXPlugins.Add('jar', 990, Folder + 'zip' + PathDelim + 'zip.wcx');
|
||||||
|
|
||||||
{$IF DEFINED(MSWINDOWS)}
|
{$IF DEFINED(MSWINDOWS) or DEFINED(LINUX)}
|
||||||
I:= gWCXPlugins.IndexOfName('7z');
|
I:= gWCXPlugins.IndexOfName('7z');
|
||||||
if I < 0 then
|
if I < 0 then
|
||||||
gWCXPlugins.Add('7z', 607, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
gWCXPlugins.Add('7z', 607, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('tar');
|
I:= gWCXPlugins.IndexOfName('tar');
|
||||||
|
|
@ -203,70 +207,6 @@ begin
|
||||||
// For deb used another plugin, so update path too
|
// For deb used another plugin, so update path too
|
||||||
gWCXPlugins.FileName[I]:= Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx';
|
gWCXPlugins.FileName[I]:= Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('arj');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('arj', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('cab');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('cab', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('cramfs');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('cramfs', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('dmg');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('dmg', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('fat');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('fat', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('hfs');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('hfs', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('iso');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('iso', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('lha');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('lha', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('lzh');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('lzh', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('ntfs');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('ntfs', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('squashfs');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('squashfs', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('taz');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('taz', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('vhd');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('vhd', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('wim');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('wim', 85, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('xar');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('xar', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('z');
|
|
||||||
if I < 0 then
|
|
||||||
gWCXPlugins.Add('z', 4, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
I:= gWCXPlugins.IndexOfName('cpio');
|
I:= gWCXPlugins.IndexOfName('cpio');
|
||||||
if I < 0 then
|
if I < 0 then
|
||||||
|
|
@ -281,6 +221,72 @@ begin
|
||||||
gWCXPlugins.Flags[I]:= 4;
|
gWCXPlugins.Flags[I]:= 4;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IF DEFINED(MSWINDOWS) or DEFINED(LINUX)}
|
||||||
|
I:= gWCXPlugins.IndexOfName('arj');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('arj', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('cab');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('cab', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('cramfs');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('cramfs', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('dmg');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('dmg', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('fat');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('fat', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('hfs');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('hfs', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('iso');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('iso', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('lha');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('lha', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('lzh');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('lzh', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('ntfs');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('ntfs', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('squashfs');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('squashfs', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('taz');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('taz', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('vhd');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('vhd', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('wim');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('wim', 85, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('xar');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('xar', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
|
||||||
|
I:= gWCXPlugins.IndexOfName('z');
|
||||||
|
if I < 0 then
|
||||||
|
gWCXPlugins.Add('z', 4, Z7ip, Folder + 'sevenzip' + PathDelim + 'sevenzip.wcx');
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
I:= gWCXPlugins.IndexOfName('rpm');
|
I:= gWCXPlugins.IndexOfName('rpm');
|
||||||
if I < 0 then
|
if I < 0 then
|
||||||
gWCXPlugins.Add('rpm', 4, Folder + 'rpm' + PathDelim + 'rpm.wcx')
|
gWCXPlugins.Add('rpm', 4, Folder + 'rpm' + PathDelim + 'rpm.wcx')
|
||||||
|
|
|
||||||
|
|
@ -176,6 +176,7 @@ Type
|
||||||
procedure Save(AConfig: TXmlConfig; ANode: TXmlNode);
|
procedure Save(AConfig: TXmlConfig; ANode: TXmlNode);
|
||||||
function ComputeSignature(seed: dword): dword;
|
function ComputeSignature(seed: dword): dword;
|
||||||
function Add(Ext: String; Flags: PtrInt; FileName: String): Integer; reintroduce;
|
function Add(Ext: String; Flags: PtrInt; FileName: String): Integer; reintroduce;
|
||||||
|
function Add(Ext: String; Flags: PtrInt; AEnabled: Boolean; FileName: String): Integer; reintroduce;
|
||||||
function FindFirstEnabledByName(Name: String): Integer;
|
function FindFirstEnabledByName(Name: String): Integer;
|
||||||
function Find(const aFileName, aExt: String): Integer; overload;
|
function Find(const aFileName, aExt: String): Integer; overload;
|
||||||
function LoadModule(const FileName: String): TWcxModule;
|
function LoadModule(const FileName: String): TWcxModule;
|
||||||
|
|
@ -762,6 +763,12 @@ begin
|
||||||
Result:= AddObject(Ext + '=' + IntToStr(Flags) + #44 + FileName, TObject(True));
|
Result:= AddObject(Ext + '=' + IntToStr(Flags) + #44 + FileName, TObject(True));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TWCXModuleList.Add(Ext: String; Flags: PtrInt; AEnabled: Boolean;
|
||||||
|
FileName: String): Integer;
|
||||||
|
begin
|
||||||
|
Result:= AddObject(Ext + '=' + IntToStr(Flags) + #44 + FileName, TObject(UIntPtr(AEnabled)));
|
||||||
|
end;
|
||||||
|
|
||||||
function TWCXModuleList.FindFirstEnabledByName(Name: String): Integer;
|
function TWCXModuleList.FindFirstEnabledByName(Name: String): Integer;
|
||||||
begin
|
begin
|
||||||
Result:=0;
|
Result:=0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue