Linux shell script na windows

Tesy

Linux shell script na windows
« kdy: 10. 05. 2016, 12:32:01 »
Dobry den, uz 5 dni se snazim tyto 3x skripty predelat do bataku nebo do powershellu. Ale marne,
me znalosti na to nestaci. Najde se tady nekdo natolik zkuseny ze by me s tim pomohl nebo dokonce ze by to dokazal predelat?



Skript1=build-electrum-git.sh
Kód: [Vybrat]
#!/bin/bash

# You probably need to update only this link
ELECTRUM_GIT_URL=git://github.com/spesmilo/electrum.git
BRANCH=master
NAME_ROOT=electrum


# These settings probably don't need any change
export WINEPREFIX=/opt/wine64

PYHOME=c:/python27
PYTHON="wine $PYHOME/python.exe -OO -B"


# Let's begin!
cd `dirname $0`
set -e

cd tmp

if [ -d "electrum-git" ]; then
    # GIT repository found, update it
    echo "Pull"
    cd electrum-git
    git checkout master
    git pull
    cd ..
else
    # GIT repository not found, clone it
    echo "Clone"
    git clone -b $BRANCH $ELECTRUM_GIT_URL electrum-git
fi

cd electrum-git
VERSION=`git describe --tags`
echo "Last commit: $VERSION"

cd ..

rm -rf $WINEPREFIX/drive_c/electrum
cp -r electrum-git $WINEPREFIX/drive_c/electrum
cp electrum-git/LICENCE .

# add python packages (built with make_packages)
cp -r ../../../packages $WINEPREFIX/drive_c/electrum/

# add locale dir
cp -r ../../../lib/locale $WINEPREFIX/drive_c/electrum/lib/

# Build Qt resources
wine $WINEPREFIX/drive_c/Python27/Lib/site-packages/PyQt4/pyrcc4.exe C:/electrum/icons.qrc -o C:/electrum/lib/icons_rc.py
wine $WINEPREFIX/drive_c/Python27/Lib/site-packages/PyQt4/pyrcc4.exe C:/electrum/icons.qrc -o C:/electrum/gui/qt/icons_rc.py

cd ..

rm -rf dist/

# build standalone version
$PYTHON "C:/pyinstaller/pyinstaller.py" --noconfirm --ascii -w deterministic.spec

# build NSIS installer
# $VERSION could be passed to the electrum.nsi script, but this would require some rewriting in the script iself.
wine "$WINEPREFIX/drive_c/Program Files (x86)/NSIS/makensis.exe" /DPRODUCT_VERSION=$VERSION electrum.nsi

cd dist
mv electrum.exe $NAME_ROOT-$VERSION.exe
mv electrum-setup.exe $NAME_ROOT-$VERSION-setup.exe
mv electrum $NAME_ROOT-$VERSION
zip -r $NAME_ROOT-$VERSION.zip $NAME_ROOT-$VERSION
cd ..

# build portable version
cp portable.patch $WINEPREFIX/drive_c/electrum
pushd $WINEPREFIX/drive_c/electrum
patch < portable.patch
popd
$PYTHON "C:/pyinstaller/pyinstaller.py" --noconfirm --ascii -w deterministic.spec
cd dist
mv electrum.exe $NAME_ROOT-$VERSION-portable.exe
cd ..

echo "Done."

Skript2=deterministic.spec
Kód: [Vybrat]
# -*- mode: python -*-

home = 'C:\\electrum\\'

# We don't put these files in to actually include them in the script but to make the Analysis method scan them for imports
a = Analysis([home+'electrum',
              home+'gui/qt/main_window.py',
              home+'gui/text.py',
              home+'lib/util.py',
              home+'lib/wallet.py',
              home+'lib/simple_config.py',
              home+'lib/bitcoin.py',
              home+'lib/dnssec.py',
              home+'lib/commands.py',
              home+'plugins/cosigner_pool/qt.py',
              home+'plugins/email_requests/qt.py',
              home+'plugins/trezor/qt.py',
              home+'plugins/keepkey/qt.py',
              home+'plugins/ledger/qt.py',
              home+'packages/requests/utils.py'
              ],
             pathex=[home+'lib', home+'gui', home+'plugins', home+'packages'],
             hiddenimports=['lib', 'gui'],
             hookspath=[])

##### include folder in distribution #######
def extra_datas(mydir):
    def rec_glob(p, files):
        import os
        import glob
        for d in glob.glob(p):
            if os.path.isfile(d):
                files.append(d)
            rec_glob("%s/*" % d, files)
    files = []
    rec_glob("%s/*" % mydir, files)
    extra_datas = []
    for f in files:
        d = f.split('\\')
        t = ''
        for a in d[2:]:
            if len(t)==0:
                t = a
            else:
                t = t+'\\'+a
        extra_datas.append((t, f, 'DATA'))

    return extra_datas
###########################################

# append dirs

# cacert.pem
a.datas += [ ('requests/cacert.pem', home+'packages/requests/cacert.pem', 'DATA') ]

# Py folders that are needed because of the magic import finding
a.datas += extra_datas(home+'gui')
a.datas += extra_datas(home+'lib')
a.datas += extra_datas(home+'plugins')
a.datas += extra_datas(home+'packages')

pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.datas,
          name=os.path.join('build\\pyi.win32\\electrum', 'electrum.exe'),
          debug=False,
          strip=None,
          upx=False,
          icon=home+'icons/electrum.ico',
          console=False)
          # The console True makes an annoying black box pop up, but it does make Electrum output command line commands, with this turned off no output will be given but commands can still be used

coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=None,
               upx=True,
               debug=False,
               icon=home+'icons/electrum.ico',
               console=False,
               name=os.path.join('dist', 'electrum'))

Skript3=portable.patch
Kód: [Vybrat]
diff --git a/electrum b/electrum
index 8c972c6..46903b7 100755
--- a/electrum
+++ b/electrum
@@ -454,6 +454,8 @@ if __name__ == '__main__':
         if config_options.get('server'):
             config_options['auto_connect'] = False
 
+    config_options['portable'] = True
+
     if config_options.get('portable'):
         config_options['electrum_path'] = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'electrum_data')
 


mikrom

Re:Linux shell script na windows
« Odpověď #1 kdy: 10. 05. 2016, 21:28:31 »
uz 5 dni se snazim tyto 3x skripty predelat do bataku nebo do powershellu.
Jednoduchsie je nainstalovat si MSYS a skripty zmodifikovat.

Unknown

Re:Linux shell script na windows
« Odpověď #2 kdy: 10. 05. 2016, 23:25:10 »
Unix shell neznam, ale napiste na cem jste se zasekl pri tvorbe toho BATaku a muzu poradit.

.

Re:Linux shell script na windows
« Odpověď #3 kdy: 11. 05. 2016, 10:44:01 »
Vzhledem k tomu, že se v těch skriptech používá Wine, asi to bude chtít do nich zasáhnout víc.

Doporučuji nepředělávat skripty, ale jít krok za krokem a interaktivně provádět potřebnou činnost. Po každém úspěšném kroku zapíšete výsledný příkaz a parametry. Na konci (teda pokud se tam dostanete) ;) budete mít základ funkčního skriptu.

winex1

Re:Linux shell script na windows
« Odpověď #4 kdy: 11. 05. 2016, 13:32:23 »
... a nebo windows 10 build 14332 ktery ma mit linux bash ... to by neslo ?

https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso


none_

Re:Linux shell script na windows
« Odpověď #5 kdy: 11. 05. 2016, 13:51:49 »
... a nebo windows 10 build 14332 ktery ma mit linux bash ... to by neslo ?

https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso

To by bylo hezky... Na Win 10, spoustet bash a z nej spoustet neco vine...:D

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Linux shell script na windows
« Odpověď #6 kdy: 11. 05. 2016, 14:44:41 »
... a nebo windows 10 build 14332 ktery ma mit linux bash ... to by neslo ?

I ty, winex1?

j

Re:Linux shell script na windows
« Odpověď #7 kdy: 11. 05. 2016, 17:37:35 »
2Tesy: Problem spociva v tom, ze to nejsou scripty. Pouziva to spoustu dalsich nastroju, ktery ve widlich trebas vubec neexistujou. Takze jediny co stim mzues udelat je to co bylo receno - napsat to znova od nuly pro widle.

Unknown

Re:Linux shell script na windows
« Odpověď #8 kdy: 11. 05. 2016, 20:05:23 »
A co to tedy je kdyz to nejsou scripty? Dal bych chtel videt tu "spoustu nastroju" ktery pro Win nejsou...

Ze by bylo nejlepsi to napsat znova je ale asi pravda. Minimalne to bude rychlejsi...

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Linux shell script na windows
« Odpověď #9 kdy: 11. 05. 2016, 20:20:00 »
Tak na prepisovani bashe do batu radsi rovnou zapomente, to je naprosta tragedie, ktera vas privede do blazince. MS batch soubory jsou totalni stredovek, i kdyz si nejsem jisty, jestli i tehdy uz nemeli lepsi. To se spis podivejte, kde sehnat bash pro Widle, pokud tedy nemate ty uzasne desitky, kde by uz mel nejak byt.

Lael tady tvrdi, ze Powershel je uzasny a da se v nem udelat uplne cokoliv, takze pokud na to mate zaludek, tak se zamerte spis na to. Nebo neni k mani i nejaky python pro Widle? Idealne jako prenositelna aplikace, aby se to nemuselo vsude instalovat, pokud to ma jet na vice strojich.

Unknown

Re:Linux shell script na windows
« Odpověď #10 kdy: 11. 05. 2016, 21:40:15 »
Tak na prepisovani bashe do batu radsi rovnou zapomente, to je naprosta tragedie, ktera vas privede do blazince. MS batch soubory jsou totalni stredovek, i kdyz si nejsem jisty, jestli i tehdy uz nemeli lepsi. To se spis podivejte, kde sehnat bash pro Widle, pokud tedy nemate ty uzasne desitky, kde by uz mel nejak byt.

Nevíte co píšete, dělal jsem ve windows shellu (soubory s priponou .cmd, neplest se zastaralymi .bat soubory) veci o stovkách radku bez větších problemu.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Linux shell script na windows
« Odpověď #11 kdy: 11. 05. 2016, 22:37:51 »
Nevíte co píšete, dělal jsem ve windows shellu (soubory s priponou .cmd, neplest se zastaralymi .bat soubory) veci o stovkách radku bez větších problemu.

Aha. Uz jsem se chtel vydesit, ze se ve Widlich neco zmenilo. Ale podle Guuglu to na to moc nevypada. To mate na mysli tohle? http://commandwindows.com/windows7-commands.htm . Pokud ano, tak rozdil s Widlemi NT, kdyz jsem v tom naposledy delal, vidim minimalni. Zda se, ze nektere veci z Resource Kitu presunuli standarne do Widli, tot vse. Nicmene tam treba porad nevidim, cim by clovek udelal cyklus, krome prikazu for /f, ze ktereho by se clovek posral. Krome toho predpoklada, ze nadale pretrvavaji stejne problemy, jako v NT. Napriklad nefunguje presmerovani vystupu pres rouru do nasledujiciho prikazu. Pricemz predpokladam, ze rada prikazu nadale ignoruje standardni vystup a tiskne si vystupy po svem, ze to ani nejde presmerovat do souboru. Tez pochybuji, ze by se nekdo pokusil sjednotit vystupy prikazu do jakehosi jednotneho stylu a je to tedy nadale ve stylu jeden prikaz oddeluje mezerami, druhy tabelatory. Vystupy jsou zasrane informacemi, ktere skript nezajimaji, viz treba prikaz dir - srobnejte s ls. Vetsina prikazu patrne nadale poskytuje vystupu ve forme bud zcela neparsovatelne nebo parsovatelne jen se stachanovskym nasazenim.

Ano, naprogramovat se v tom ledacos da. Ale ty nervy s tim a ta prace! Vysledek bude desetkrat delsi, nez v nejakem NIXovem shellu a bude to rozhozene v hafu souboru, protoze nejake funkce a takove veci, se v tom udelat nedaji. Jiste, ve srovnani s MS DOSem je to pokrok. Ale ve srovnani s libovolnym NIXovym shellem je to nepricetna sracka.

Tedy jestli mi Guugl nezatajil nejake zasadni inovace, tak s tim, co mi predhodil, se muzete jit zahrabat. V tom se normalne psat neda, ledaze byste byl masochista a nevadilo vam, ze se kazdy den aspon jednou poserete.

BTW, ty vase veci o stovkach radku by v Bashi mozna vysly na desitky i min. Ja v tom take napsal sracky o stovkach radku a rikam: jiz nikdy. Proto pisi, ze tazatel ma na prepis do widlobatche zapomenout. V tom se totiz neda najit zadna obdoba NIXove konstrukce a clovek bude travit vetsinu casu tim, ze bude vymyslet, jak by to obesel a nasledne tim, jak by proparsoval vystupy a nezesilel. Ve vysledku mozna sesmoli neco, co i funguje, ale nikdo nebude vedet proc, protoze se v tom bordelu uz ani on sam nevyzna.

Jestli tuhle MSsracku chcete srovnavat s nekterym shellem na Linuxu, tak vam muselo preskocit anebo jste v tom linuxovem shellu nikdy nenapsal nebo aspon nevidel ani radku.

Re:Linux shell script na windows
« Odpověď #12 kdy: 11. 05. 2016, 23:03:25 »
Tak na prepisovani bashe do batu radsi rovnou zapomente, to je naprosta tragedie, ktera vas privede do blazince. MS batch soubory jsou totalni stredovek, i kdyz si nejsem jisty, jestli i tehdy uz nemeli lepsi. To se spis podivejte, kde sehnat bash pro Widle, pokud tedy nemate ty uzasne desitky, kde by uz mel nejak byt.

Nevíte co píšete, dělal jsem ve windows shellu (soubory s priponou .cmd, neplest se zastaralymi .bat soubory) veci o stovkách radku bez větších problemu.

Teď ale ještě záleží, zda jste totéž programoval v bashi. Moje zkušenost je ta, že bash má mnohem lepší možnosti, než cmd. U powershellu to může být zas opačně, ale ten neznám, takže nevím.

Unknown

Re:Linux shell script na windows
« Odpověď #13 kdy: 12. 05. 2016, 01:15:08 »
Nevíte co píšete, dělal jsem ve windows shellu (soubory s priponou .cmd, neplest se zastaralymi .bat soubory) veci o stovkách radku bez větších problemu.

Aha. Uz jsem se chtel vydesit, ze se ve Widlich neco zmenilo. Ale podle Guuglu to na to moc nevypada. To mate na mysli tohle? http://commandwindows.com/windows7-commands.htm . Pokud ano, tak rozdil s Widlemi NT, kdyz jsem v tom naposledy delal, vidim minimalni. Zda se, ze nektere veci z Resource Kitu presunuli standarne do Widli, tot vse. Nicmene tam treba porad nevidim, cim by clovek udelal cyklus, krome prikazu for /f, ze ktereho by se clovek posral. Krome toho predpoklada, ze nadale pretrvavaji stejne problemy, jako v NT. Napriklad nefunguje presmerovani vystupu pres rouru do nasledujiciho prikazu. Pricemz predpokladam, ze rada prikazu nadale ignoruje standardni vystup a tiskne si vystupy po svem, ze to ani nejde presmerovat do souboru. Tez pochybuji, ze by se nekdo pokusil sjednotit vystupy prikazu do jakehosi jednotneho stylu a je to tedy nadale ve stylu jeden prikaz oddeluje mezerami, druhy tabelatory. Vystupy jsou zasrane informacemi, ktere skript nezajimaji, viz treba prikaz dir - srobnejte s ls. Vetsina prikazu patrne nadale poskytuje vystupu ve forme bud zcela neparsovatelne nebo parsovatelne jen se stachanovskym nasazenim.

Ano, naprogramovat se v tom ledacos da. Ale ty nervy s tim a ta prace! Vysledek bude desetkrat delsi, nez v nejakem NIXovem shellu a bude to rozhozene v hafu souboru, protoze nejake funkce a takove veci, se v tom udelat nedaji. Jiste, ve srovnani s MS DOSem je to pokrok. Ale ve srovnani s libovolnym NIXovym shellem je to nepricetna sracka.

Tedy jestli mi Guugl nezatajil nejake zasadni inovace, tak s tim, co mi predhodil, se muzete jit zahrabat. V tom se normalne psat neda, ledaze byste byl masochista a nevadilo vam, ze se kazdy den aspon jednou poserete.

BTW, ty vase veci o stovkach radku by v Bashi mozna vysly na desitky i min. Ja v tom take napsal sracky o stovkach radku a rikam: jiz nikdy. Proto pisi, ze tazatel ma na prepis do widlobatche zapomenout. V tom se totiz neda najit zadna obdoba NIXove konstrukce a clovek bude travit vetsinu casu tim, ze bude vymyslet, jak by to obesel a nasledne tim, jak by proparsoval vystupy a nezesilel. Ve vysledku mozna sesmoli neco, co i funguje, ale nikdo nebude vedet proc, protoze se v tom bordelu uz ani on sam nevyzna.

Jestli tuhle MSsracku chcete srovnavat s nekterym shellem na Linuxu, tak vam muselo preskocit anebo jste v tom linuxovem shellu nikdy nenapsal nebo aspon nevidel ani radku.

Moh bych to radek po radku vyvratit, ale prisel jsem prave z baru v povznesene nalade a nemam duvod si ji kazit. Tak jen zopakuji ze nevite o cem pisete....

Unknown

Re:Linux shell script na windows
« Odpověď #14 kdy: 12. 05. 2016, 09:40:18 »
Tak na prepisovani bashe do batu radsi rovnou zapomente, to je naprosta tragedie, ktera vas privede do blazince. MS batch soubory jsou totalni stredovek, i kdyz si nejsem jisty, jestli i tehdy uz nemeli lepsi. To se spis podivejte, kde sehnat bash pro Widle, pokud tedy nemate ty uzasne desitky, kde by uz mel nejak byt.

Nevíte co píšete, dělal jsem ve windows shellu (soubory s priponou .cmd, neplest se zastaralymi .bat soubory) veci o stovkách radku bez větších problemu.

Teď ale ještě záleží, zda jste totéž programoval v bashi. Moje zkušenost je ta, že bash má mnohem lepší možnosti, než cmd. U powershellu to může být zas opačně, ale ten neznám, takže nevím.

Jenze tenhle thread neni o tom jestli je lepsi bash nebo win shell, tazatel chtel poradit s prevodem bash scriptu do win console, cehoz zde nekteri zneuzili k off-topic protlacovani svych priorit v shell scriptingu a pomluvam win shellu i za cenu prokazatelnych nepravd. Ale to je u bLivnuxaku zrejme normalni, naflusat na MS za jakoukoliv cenu...

A o deset let stare objektove pipe (powershell) Linux jeste ani neslysel (pokud pomineme veci tretich stran jako Python)