wwine 0.6 → 0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/wwine +38 -71
- data/wwine.1 +4 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2323d7ed7648e49e680ce65ae04ee9e6363c6f9516bd7c8032bd4850cb9807f
|
4
|
+
data.tar.gz: 17356c8bdd57a12adf24089f875f6dd3aac574a3489208daa5890c60aa1aee1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d597a5c884adf20c67f6eb667ab88c19a0886aabf1c2b8d0a0b8b22a8244fa9997497ef19a670e7e37dda1c2751587bcadda87d278d8b4fa50128a78e9a9e05
|
7
|
+
data.tar.gz: dc868c092a9403199990a9c82500002a20925e2ee2a81b4d41881f56a0c6c47cc9d6a0c71be07d23bd233069ca6dda9a1161dee555cf1b6276bbe409f0f183f0
|
data/wwine
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/ruby
|
2
2
|
# wwine
|
3
|
-
# Copyright (C) Eskild Hustvedt 2009,
|
3
|
+
# Copyright (C) Eskild Hustvedt 2009-2013, 2016-2019
|
4
4
|
#
|
5
5
|
# This program is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU General Public License as published by
|
@@ -22,7 +22,7 @@ require 'open3'
|
|
22
22
|
# Needed to make symlinks
|
23
23
|
require 'fileutils'
|
24
24
|
# Application version
|
25
|
-
$version = '0.
|
25
|
+
$version = '0.7'
|
26
26
|
# The wine flavour to use
|
27
27
|
$wine = nil
|
28
28
|
# The bottle to use
|
@@ -312,19 +312,6 @@ def unShellQuote(target)
|
|
312
312
|
return fixedTarget
|
313
313
|
end
|
314
314
|
|
315
|
-
# Purpose: Unquote a full line of shellQuoted strings
|
316
|
-
def unquoteShellArray (source,targetarr)
|
317
|
-
source.split(/ '/).each do |part|
|
318
|
-
part.sub!(/'$/,'')
|
319
|
-
part.sub!(/^'/,'')
|
320
|
-
part.chomp!
|
321
|
-
if part.match(/\S/)
|
322
|
-
targetarr.push(unShellQuote(part))
|
323
|
-
end
|
324
|
-
end
|
325
|
-
return targetarr
|
326
|
-
end
|
327
|
-
|
328
315
|
# Purpose: Write a wrapper script
|
329
316
|
def writeWrapper (targetFile, wwineCommand, otherCommand, cwd, wwineInfo, args, wineprefix = nil)
|
330
317
|
# Open the file for writing
|
@@ -620,25 +607,18 @@ def loadWwineDataFromFile (file,dryRun = false)
|
|
620
607
|
puts "Unable to continue."
|
621
608
|
exit(0)
|
622
609
|
end
|
623
|
-
|
624
|
-
|
610
|
+
|
611
|
+
info['Version'] = info['Info'].sub(/^\s*v(\d+)\s*.*/,'\1').to_i
|
612
|
+
|
613
|
+
if info['Version'] > 1 && info['Version'] <= 6
|
625
614
|
vputs(V_DBG,'File contains wwine metadata '+info['Info'])
|
626
|
-
info =
|
627
|
-
elsif info['
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
puts "wwine format, run this command:"
|
634
|
-
puts " wwine --from "+shellQuote(file)+" --wrap "+shellQuote(file+'.new')+" && mv "+shellQuote(file)+" "+shellQuote(file+'.old')+' && mv '+shellQuote(file+'.new')+' '+shellQuote(file)
|
635
|
-
puts ""
|
636
|
-
puts "This will upgrade the file, while leaving an old backup copy in place with a"
|
637
|
-
puts ".old-extension. You may delete the .old file if you have never edited the"
|
638
|
-
puts "script directly, or after you have copied over your changes."
|
639
|
-
exit(1)
|
640
|
-
end
|
641
|
-
info = parseWwineDataV1(info)
|
615
|
+
info = parseWwineData(info);
|
616
|
+
elsif info['Version'] == 1
|
617
|
+
puts "ERROR: Unsupported wwine metadata format (v1)"
|
618
|
+
puts ""
|
619
|
+
puts "This format is no longer supported. You will have to create a new wrapper script"
|
620
|
+
puts "using --wrap."
|
621
|
+
exit(1)
|
642
622
|
else
|
643
623
|
version = info['Info'].sub(/^(v\S+).+/,'\1').chomp
|
644
624
|
puts "This version of wwine supports info format v2, v3, v4, v5 and v6."
|
@@ -676,14 +656,17 @@ def loadWwineDataFromFile (file,dryRun = false)
|
|
676
656
|
# Get the --wine to use
|
677
657
|
if $wine == nil && info['Wine'] != 'nil'
|
678
658
|
$wine = info['Wine']
|
679
|
-
#
|
680
|
-
if info['
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
659
|
+
# Convert Cx*installdir to $wine if present in v2/v3 files
|
660
|
+
if info['Version'] < 4
|
661
|
+
# Support for legacy Cx*installdir
|
662
|
+
if info['Cxinstalldir'] != 'nil' && info['Cxinstalldir'] != nil
|
663
|
+
vputs(V_DBG,'Converting Cxinstalldir entry to a Wine entry')
|
664
|
+
$wine = info['Cxinstalldir']
|
665
|
+
end
|
666
|
+
if info['CxGamesinstalldir'] != 'nil' && info['CxGamesinstalldir'] != nil
|
667
|
+
vputs(V_DBG,'Converting CxGamesinstalldir entry to a Wine entry')
|
668
|
+
$wine = info['CxGamesinstalldir']
|
669
|
+
end
|
687
670
|
end
|
688
671
|
printf(outFormat,outMessage+'--wine',$wine)
|
689
672
|
end
|
@@ -726,31 +709,8 @@ def loadWwineDataFromFile (file,dryRun = false)
|
|
726
709
|
end
|
727
710
|
end
|
728
711
|
|
729
|
-
# Parses wwine metadata version 1 (wwine 0.1.x)
|
730
|
-
def parseWwineDataV1 (rawData)
|
731
|
-
data = []
|
732
|
-
unquoteShellArray(rawData['Info'],data)
|
733
|
-
info = Hash.new
|
734
|
-
info['Dir'] = data[1]
|
735
|
-
info['Wine'] = resolveWine(data[2])
|
736
|
-
info['Bottle'] = data[3]
|
737
|
-
info['Cxinstalldir'] = data[4]
|
738
|
-
|
739
|
-
if info['Wine'] == 'crossover' || info['Wine'] == 'cxgames'
|
740
|
-
if info['Cxinstalldir']
|
741
|
-
info['Wine'] = info['Cxinstalldir']
|
742
|
-
end
|
743
|
-
end
|
744
|
-
|
745
|
-
cmd = []
|
746
|
-
|
747
|
-
unquoteShellArray(rawData['Cmd'],cmd)
|
748
|
-
info['Cmd'] = cmd
|
749
|
-
return info
|
750
|
-
end
|
751
|
-
|
752
712
|
# Parses wwine metadata version 2+ (wwine 0.2+)
|
753
|
-
def
|
713
|
+
def parseWwineData (data)
|
754
714
|
cmd = []
|
755
715
|
currNo = 0
|
756
716
|
while currNo < 999
|
@@ -1348,6 +1308,8 @@ def getGameTreeWithParams (wine,bottle, missingIsFatal = true)
|
|
1348
1308
|
final = []
|
1349
1309
|
gametreeBin = nil
|
1350
1310
|
|
1311
|
+
puts("WARNING: gametree/cedega support will be deprecated in wwine 0.8")
|
1312
|
+
|
1351
1313
|
if inPath('gametree')
|
1352
1314
|
gametreeBin = 'gametree'
|
1353
1315
|
elsif inPath('gametree')
|
@@ -1505,7 +1467,7 @@ def getProtonWithParams(wine,bottle, missingIsFatal = true, multiReturn = false)
|
|
1505
1467
|
|
1506
1468
|
vputs(V_DBG,'Detected proton: '+command.join(' '))
|
1507
1469
|
if multiReturn
|
1508
|
-
return command,
|
1470
|
+
return command,bottle+'/pfx'
|
1509
1471
|
else
|
1510
1472
|
return command
|
1511
1473
|
end
|
@@ -1699,8 +1661,8 @@ def runWine (wine,bottle,args)
|
|
1699
1661
|
puts(wine+' does not appear to be the path to a crossover installation directory')
|
1700
1662
|
puts('')
|
1701
1663
|
end
|
1702
|
-
puts('Must be one of
|
1703
|
-
puts('or a crossover installation directory')
|
1664
|
+
puts('Must be one of the wine versions listed by `wwine --list` or the path to either a')
|
1665
|
+
puts('wine executeable or a crossover installation directory')
|
1704
1666
|
exit(1)
|
1705
1667
|
end
|
1706
1668
|
end
|
@@ -1927,9 +1889,14 @@ begin
|
|
1927
1889
|
end
|
1928
1890
|
end
|
1929
1891
|
|
1930
|
-
#
|
1931
|
-
#
|
1932
|
-
|
1892
|
+
# Set a default WINEARCH to win32 unless:
|
1893
|
+
# - one is already set with --arch
|
1894
|
+
# - the wine version ends in 64
|
1895
|
+
# - we're being launched by a script
|
1896
|
+
# - we're running with --from
|
1897
|
+
# - the wine is proton
|
1898
|
+
if $wineArch == nil && $wwineDataFrom == nil && ENV['__WWINE_SCRIPT'] == nil && $wine !~ /64$/ && $wine !~ /^proton/
|
1899
|
+
vputs(V_DBG,"Using a default (guessed) wineArch of win32")
|
1933
1900
|
$wineArch = 'win32'
|
1934
1901
|
end
|
1935
1902
|
rescue => ex
|
data/wwine.1
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
.IX Title "WWINE 1"
|
2
|
-
.TH WWINE 1 "
|
2
|
+
.TH WWINE 1 "2019-07-05" "wwine 0.7" ""
|
3
3
|
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
4
4
|
.\" way too many mistakes in technical documents.
|
5
5
|
.if n .ad l
|
@@ -47,6 +47,9 @@ wwine will act as if \-\-wine is \*(L"crossover\*(R" (or cxgames), but use the C
|
|
47
47
|
installation at that path instead of its autodetected one. If you supply the
|
48
48
|
path to a wine binary then it will use that as the \*(L"wine\*(R" command instead of
|
49
49
|
the one in your \s-1PATH.\s0
|
50
|
+
|
51
|
+
Note that cedega support has been deprecated as of wwine 0.7 and will be
|
52
|
+
removed in wwine 0.8.
|
50
53
|
.IP "\fB\-b, \-\-bottle\fR \fI\s-1NAME\s0\fR" 4
|
51
54
|
.IX Item "-b, --bottle NAME"
|
52
55
|
Use the bottle with the name supplied. For crossover, cxgames, cxoffice or
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wwine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.7'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eskild Hustvedt
|
8
8
|
autorequire:
|
9
9
|
bindir: "."
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: wwine is a a wine(1) wrapper. It wraps various flavours of wine (including
|
14
14
|
vanilla wine and crossover) into a single unified interface, complete with full
|
@@ -43,8 +43,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
43
43
|
- !ruby/object:Gem::Version
|
44
44
|
version: '0'
|
45
45
|
requirements: []
|
46
|
-
|
47
|
-
rubygems_version: 2.7.7
|
46
|
+
rubygems_version: 3.0.4
|
48
47
|
signing_key:
|
49
48
|
specification_version: 4
|
50
49
|
summary: wwine is a simple wine wrapper.
|