Odkaz z webu pustí specifickou aplikaci

Pokud si nevíte rady s operačním systémem MacOS X, jeho nastavením nebo aplikacemi týkajícími se právě práce s počítačem, tak zde můžete vznést svůj dotaz

Moderátoři: MichalM.Mac, Unreed, yonah, AdamVyborny, Macforum_Admin

Odpovědět
hafieror
Příspěvky: 11
Registrován: 06 bře 2019 14:08

Odkaz z webu pustí specifickou aplikaci

Příspěvek od hafieror » 06 bře 2019 14:26

Zdravím ve spolek,
na macOS jsem přešel z Linuxu, který jsem používal od roku 2002. Aktuálně bych potřeboval vyřešit věc, kterou jsem používal na Linuxu a na macOS nevím jak nastavit. Mám webový informační systém, kde po odkliknutí odkazu v tomto tvaru
nwinbox:ipadresa
se mi na linuxu spustil skript

#!/bin/bash
IP=`echo $1 | cut -d: -f2`
env WINEPREFIX="/home/user/.wine" /usr/bin/wine /home/user/Plocha/winbox3.exe $IP:8295 admin heslo

který zajistil spuštění programu s předvyplněnou ip adresou a heslem

Lze to nějak?

Uživatelský avatar
ra3662
Příspěvky: 3715
Registrován: 14 srp 2012 10:25
Bydliště: Ostrava

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od ra3662 » 06 bře 2019 14:50

A co Automator.app nepomůže?
Na to tu jsou docela machři. Když popíšeš co a jak na OS X tak určitě někdo poradí.

hafieror
Příspěvky: 11
Registrován: 06 bře 2019 14:08

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od hafieror » 06 bře 2019 15:13

Kód vypadá takto, kdy ip adresa se zobrazuje podle databáze zákazníka. To nwinbox je moje interní označení, na základě kterýho jsem v linuxu definoval jaká aplikace se má spustit.
<a href="nwinbox:100.64.202.111">[w]</a>

Já potřebuji, aby se přes wine spustil winbox.exe a převzalo to tuto ip adresu.

Uživatelský avatar
moreplavec
Příspěvky: 184
Registrován: 29 čer 2013 06:29
Bydliště: Praha
Kontaktovat uživatele:

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od moreplavec » 06 bře 2019 22:00

Nějak jsem nepochopil co je cílem, ale vzdáleně něco spustit je řešení pro VPN, SSH nebo remote desktop. Případně, pokud to řešit skripty, proč nemít na cílovém stroji robota, který checkuje nějaký stav. Ale těžko radit, zadání moc nepobírám, asi mi uniká něco zásadního, proč nejde profi a ověřené řešení použít.
Macbook PRO retina, Macbook 12", iPad retina mini, iPhone 8 plus

hafieror
Příspěvky: 11
Registrován: 06 bře 2019 14:08

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od hafieror » 07 bře 2019 09:33

Nepotřebuji nic spouštět vzdáleně, potřebuji kliknutím na odkaz spustit lokální aplikaci. Jako když je v kódu mailto: tak to spustí poštovního klienta, když tam bude mms: tak to spustí nějaký multimediální přehravač. A já když kliknu na w, pod kterým se skrvý nwinbox: , tak potřebuji spustit lokální skript. Říká se tomu tuším uri handler. Teď když jsem se hrabal v googlu, tak jsem našel aplikaci, která zobrazuje asociace, ale nedá se tam přidat můj typ.
Přílohy
Snímek obrazovky 2019-03-07 v 8.46.33.png


Uživatelský avatar
kmarty
Příspěvky: 91
Registrován: 08 srp 2012 20:19

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od kmarty » 07 bře 2019 12:00

Za mne hlasuju pro Platypus.
Kdyz se pri vyrobe "aplikace" zaskrtne "Accept dropped items" tak v nasledne objevsim "settings" je volba "Register as URI scheme handler" (coz bude ve tvem pripade onen "nwinbox"):
Snímek obrazovky 2019-03-07 v 11.58.13.png
"Script Path" je jen zdrojovy script pro vyroby App (jednorazove, neni potreba ho mit nafurt. Platypus si ho do toho App bundlu zkopiruje).
Snímek obrazovky 2019-03-07 v 11.58.20.png
V Safari (anebo i ve Firefoxu, mozna i jinde) kdyz pak kliknes na:
Snímek obrazovky 2019-03-07 v 12.07.13.png
Tak dany script (pouzity/napsany a zbundlovany v Platypu) obdrzi v ARGV ($@ v shellu): nwinbox://1.2.3.4
V tom scriptu s tim naloz jak uznas za vhodne (ja tam mel echo "$@" >> /tmp/testik-$$.txt :-) ).


Jinak ano, technicky to dela totez co je popsano v odkazech v postu od Gwalhir. Ale uzivatelsky je to zretelne snazsi pres Platypus :-)

Uživatelský avatar
kmarty
Příspěvky: 91
Registrován: 08 srp 2012 20:19

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od kmarty » 07 bře 2019 12:16

Sorry, “koser” web pro Platypus je tenhle: https://sveinbjorn.org/platypus

(ja dal predtim odkaz na github, ale jinak je to furt jedno a totez)

Jinak cela tahle vopicarna se musi udelat proto, ze macOS nema zadny centralni registr namapovanejch pripon, urischemat a podobne, to si nese kazda aplikace (App bundle) sebou. To znamena ze nejprve musis mit aplikaci, ktera o sobe nabonzuje ze je toho schopna, v ramci OS pak maximalne muzes vybrat kterou z nich pouzijes (pokud se ke stejnymu schematu/pripony/pomalu cehokoliv hlasi vic aplikaci). Odinstalaci (hozenim do kose) posledni aplikace podporujici danou priponu/schema/... mizi i povedomi OS o danem typu.

Funguje to skrz naskrz pomalu vseho a proto taky typicka macOS aplikace nepotrebuje nejaky instalator/deinstalator, ale jen pretazeni/rozbaleni na disk a pripadne vymazani z disku.

hafieror
Příspěvky: 11
Registrován: 06 bře 2019 14:08

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od hafieror » 07 bře 2019 15:53

Děkuji moc za nasměrování. Zasekl jsem se dřív než jsem chtěl. Než ten skript předhodím platypusu, tak musím docílit toho, že to se spuštěním toho skriptu pustí vůbec to co má. Aktuálně jsem se zarazil, že když spustím z řádky příkaz níže, tak se winbox spustí ale nepřevezme ip adresu. To samé když si udělám na linuxu (se správnýma cestama), tak se ip adresa načte :-/

Kód: Vybrat vše

/Applications/Wine.app/Contents/MacOS/Wine /Users/userja/Desktop/winbox3.exe 172.20.0.1

Uživatelský avatar
kmarty
Příspěvky: 91
Registrován: 08 srp 2012 20:19

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od kmarty » 07 bře 2019 16:46

hafieror píše:
07 bře 2019 15:53
...

Kód: Vybrat vše

/Applications/Wine.app/Contents/MacOS/Wine /Users/userja/Desktop/winbox3.exe 172.20.0.1
Takhle se s Wine.app nepracuje. Nejsem si uplne jisty, jak spravne, ale mam takovy dojem ze je to spis pro praci s WineBottler.app (pomoci nej si vytvoris skorojako macOS .app - s vlastnim wine prostredim, o vlastni verzi, s vlastnimi knihovnami a tak).
Mimoto by to melo byt volany spis jako:

Kód: Vybrat vše

/Applications/Wine.app/Contents/Resources/bin/wine
ale i tak bude v zakladu chybet hrst promennejch.
Neco takovyhleho (tohle je asi nezbytny minimum):

Kód: Vybrat vše

export WINEUSRPATH="/Applications/Wine.app/Contents/Resources"
export WINEPREFIX="$HOME/Library/Application Support/winbox"  # Je potreba definovat kde bude nasimulovany ten "MS Win" disk
export DYLD_FALLBACK_LIBRARY_PATH="/usr/lib":"$WINEUSRPATH/lib":"/opt/X11/lib":"/usr/X11/lib"

$WINEUSRPATH/bin/wine winbox.exe "$SEM_PRIJDE_IP_ADRESA"
Varianta B, pokud uz mas nainstalovany Homebrew, je pres brew nainstalovat wine a fungovat Linux style.

Kód: Vybrat vše

brew install wine  # jednorazove
/usr/local/bin/wine winbox.exe 1.2.3.4
A vybodnout se na Wine.app.

P.S.: Dej si pozor na zasprclej wineserver nebo jiny zombikovity wine instance. Dokazou z funkcniho postupu udelat nefungujici vec.

hafieror
Příspěvky: 11
Registrován: 06 bře 2019 14:08

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od hafieror » 08 bře 2019 09:16

Děkuji ti moc, varianta B byla to správné, jednoduché. Udělal si dnes jednoho člověka šťastným. Mě úplně pilo krev, když jsem spouštel aplikaci exe, která má asi 3MB zabalenou do apple světa, kde měla asi 200MB. Pak jsem objevil, že existuje wine jako balík a už jsem měl při spouštění lepší pocit. Ale to, že to nyní spouštím stejně jednoduše jako v linuxu mě dostalo a ve spojení s platypus je to prostě super a v to že to půjde rozhýbat i přes ten web, v to jsem ani nedoufal. Ještě jednou moc děkuji. Vyvrátilo to i moje přesvědčení, že macos je pro lidi co nechtějí nic řešit, ale on se dá i ohýbat pro ty co chtějí něco víc. (y)

Uživatelský avatar
kmarty
Příspěvky: 91
Registrován: 08 srp 2012 20:19

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od kmarty » 08 bře 2019 12:33

Ad velikosti aplikaci. Ono to musis brat tak, ze typicka macOS aplikace je neco jako Flatpak v Linuxu. Je to sice vetsi, ale bez komplikaci zavislosti na sdilenych knihovnach a tak. Jen to holt trochu skripe kdyz to chces pouzit z terminalu (o kterem asi vetsina uzivatelu jabka nema ani tucha).
Homebrew, nebo Macports, to je zachrana pro takovy zvrhliky jako jsme my :-).

Ja osobne bych asi ten Winbox* spachal pres WineBottle jako MacApp, abych se o nej do budoucna nemusel dal starat (jako ze mi bude chybet wine nebo tak) a dal se poustet i klikacim zpusobem. Pak se to da pouzitelnym zpusobem zavolat i z terminalu.
Ale je to o neco komplikovanejsi to vyrobit (ale zase ne o moc).
Premejslim ze by to mozna slo zkombinovat (aby to umelo i to volani pres uri), ale to bude asi peknej bumbrlicek :-)

*) On se porad jeste pouziva? Ja mel za to ze dneska ma RouterOS webui snad v zakladu. A pro slozitejsi veci lezes do Mikrotiku stejne pres ssh. Nebo ne?

hafieror
Příspěvky: 11
Registrován: 06 bře 2019 14:08

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od hafieror » 08 bře 2019 15:05

Co se týká té velikosti, tak já mám třeba otevřeny 4 winboxy najednou a to mě trochu děsilo. Teď jsem trochu víc v klidu. Přes ten platypus jsem si udělal dvě verze. Jedna mě spouští ty odkazy z webu a počítá s ipadresou a druhou mám dole v doku, když potřebuji někam jít přímo. Prostě šťastnej člověk teď.

Winbox se používá stále, webui je pro rozumnou práci k ničemu a to co nabízí winbox nemůže nahradit. Mám v síti tisíce mikrotiků od BGP až po koncové routery uživatelů a když jedu diagnostiku třeba s koncovým uživatelem, tak mám ve winboxu otevřený okno s pinge, traceroute, signálem wifi, leasses od dhcp .... dál vychytávky typu romon taky webui nenahradí. SSH samozřejmě používám taky, třeba pro otvírání tunelů.

hafieror
Příspěvky: 11
Registrován: 06 bře 2019 14:08

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od hafieror » 09 bře 2019 15:28

Ještě jsem narazil na jeden problém a to, že mě nejde otevřít více oken z webu = otebřu si jednoho zákazníka a potřebuji otevřít druhého, tak odkliknu [w] a nic se neděje. Zavřu předchozí okno a spustí se to. To teda nevím jak bych obešel :-/

Uživatelský avatar
MichalM.Mac
Příspěvky: 3269
Registrován: 30 črc 2012 11:03
Kontaktovat uživatele:

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od MichalM.Mac » 10 bře 2019 10:19

Pokud chceš spustit aplikaci přes URL něco://, imho musíš to něco zaregistrovat do LaunchServices, aby o tom macOS věděl.
https://developer.apple.com/documentati ... h_services

Uživatelský avatar
kmarty
Příspěvky: 91
Registrován: 08 srp 2012 20:19

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od kmarty » 10 bře 2019 11:59

To je v pohode, tuhle cast uz ma poresenou pres CFBundleURLSchemes v Plistu ty “appky”. To uz chodi.
Ted je tematem dne vicenasobna instance ty “appky”.

Uživatelský avatar
MichalM.Mac
Příspěvky: 3269
Registrován: 30 črc 2012 11:03
Kontaktovat uživatele:

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od MichalM.Mac » 10 bře 2019 12:21

Dalo by se mít jednu master aplikaci, které by pouze zpracovala URL a otevřela jinou aplikaci (v tvém případě winbox).

hafieror
Příspěvky: 11
Registrován: 06 bře 2019 14:08

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od hafieror » 13 bře 2019 12:14

Dokáže mi někdo poradit, jak ten skript udělat na dva aby to běhalo podle té myšlenky master aplikace? Aktuální skript vypadá takto

Kód: Vybrat vše

#!/bin/bash
  
IP=`echo $1 | cut -d: -f2`
env WINEPREFIX="/Users/user/.wine" /usr/local/bin/wine /Users/user/Desktop/winbox3.exe $IP:8295 admin password

Uživatelský avatar
kmarty
Příspěvky: 91
Registrován: 08 srp 2012 20:19

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od kmarty » 13 bře 2019 14:00

Nerikam ze tak jak jsem to spachal je jedina a nedejboze spravna cesta, ale pac mne to beztak zajimalo jak co nejmene pracnym zpusobem se k necemu takovymu dopracovat, tak jsem zkusil tohle:
  1. "Vyroba" WinBox.app:
    • Za pomoci WinBottle jsem vypachal cosi a la macOS aplikace. Nastaveni WineBottle podle obrazku:
      Snímek obrazovky 2019-03-13 v 13.23.20.png
    • Vysledny WinBox.app jsem drobet poupravil (ve vychozim stavu nepredava argumenty pro Wine). Verim ze unifikovany diff vystup, pouzitelny pro prikaz patch, znas:

      Kód: Vybrat vše

      --- WinBox.app/Contents/MacOS/startwine	2019-03-13 13:22:54.000000000 +0100
      +++ WinBox.app/Contents/MacOS/startwine	2019-03-13 13:31:50.000000000 +0100
      @@ -47,8 +47,8 @@
           cd "$BIN_PATH"
       fi
       if [ "$(defaults read "$BUNDLERESOURCEPATH/../Info" WineProgramArguments)" != "" ]; then
      -"$WINEUSRPATH/bin/wine" "$BIN_FILE" $(defaults read "$BUNDLERESOURCEPATH/../Info" WineProgramArguments)
      +"$WINEUSRPATH/bin/wine" "$BIN_FILE" $(defaults read "$BUNDLERESOURCEPATH/../Info" WineProgramArguments) $@
       else
      -"$WINEUSRPATH/bin/wine" "$BIN_FILE"
      +"$WINEUSRPATH/bin/wine" "$BIN_FILE" $@
       fi
      
      (Dooprav podle potreby, tohle je bez kontroly, bez niceho. Proste neadertalskym zpusobem predhozeny argumenty.)
    • Tim je hotova "macOS" aplikace WinBox. Normalne spustitelna, uplne samostatna (Wine si nese sebou, takze neni treba nic doinstalovavat).
  2. Vyroba WinBoxHelper.app:
    • V aplikaci Platypus:
      Snímek obrazovky 2019-03-13 v 13.33.24.png
      Snímek obrazovky 2019-03-13 v 13.33.29.png
    • Script obsahuje toto:

      Kód: Vybrat vše

      #!/bin/sh
      
      if [ $# -gt 0 ]; then
      	DST=$(echo $1 | sed -e 's/^nwinbox:\/*//')
      	open -na WinBox --args ${DST}:8295 admin password
      fi
      
    • O spousteni jako nova instance se stara prepinac '-n' u prikazu 'open' (ktery se sice asi ma pouzivat trochu jinak, ale takhle dela presne to co cekam).
    • Zmineny script se pak nachazi v WinboxHelper.app/Contents/Resources/script, takze jde upravovat podle potreby bez nutnosti znovuvyroby v Platypu.
  3. Zkopirovat/presunout oboji, WinBox.app i WinboxHelper.app, do "Aplikaci" (at uz do tech na koreni, nebo v domovskem adresari). Nejsem si jisty jestli je nutny aspon jednou pustit WinboxHelper.app.
Pokud se ti to nechce delat, a pokud mi veris, tak vysledny vytvor je ke stazeni zde.

(edit: jsem si nevsiml ze to volas v podobe "nwinbox:i.p.k.o", ja to celou dobu mel jako "nwinbox://i.p.k.o". Tak jsem to upravil aby to vzalo oboji)
Naposledy upravil(a) kmarty dne 13 bře 2019 14:57, celkem upraveno 6 x.

Uživatelský avatar
kmarty
Příspěvky: 91
Registrován: 08 srp 2012 20:19

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od kmarty » 13 bře 2019 14:38

A pokud jde o zabrani RAM, tak si myslim muzes zustat v klidu:
Snímek obrazovky 2019-03-13 v 14.37.22.png
A na disku je to jen jednou :-).

hafieror
Příspěvky: 11
Registrován: 06 bře 2019 14:08

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od hafieror » 13 bře 2019 16:41

Tak tady jsem se zaseknul, trochu si mě přecenil :-)

"Vysledny WinBox.app jsem drobet poupravil (ve vychozim stavu nepredava argumenty pro Wine). Verim ze unifikovany diff vystup, pouzitelny pro prikaz patch, znas:"

Uživatelský avatar
kmarty
Příspěvky: 91
Registrován: 08 srp 2012 20:19

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od kmarty » 13 bře 2019 16:55

To melo byt abys mohl pustit

Kód: Vybrat vše

patch -p0 < winbox.patch
kde winbox.patch je obsah toho "kodu", toho "unified diff".

Ok, nevadi. Tak jinak:
V WinBox.app/Contents/MacOS/startwine na radkach 50 a 52 (zacinaji "$WINEUSRPATH/bin/wine", jsou prakticky az na konci toho scriptu) pridej na jejich konec $@. Standardnim buildem pres WineBottle totiz spousteny EXE nedostane parametry (a ty tu potrebujes, jinak to nepreda tu IP adresu, juzrnejm ani heslo).
Jinak ten DMG na uloztu uz to obsahuje upraveny.

hafieror
Příspěvky: 11
Registrován: 06 bře 2019 14:08

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od hafieror » 15 bře 2019 08:59

Tak tvůj balík šlape jak víno podle představ, zkoušel jsem to udělat také, ale narazil jsem, že se mi stále nechtěl asociovat nwinbox, ale tolik času jsem tomu nevěnoval proč se tak děje. To nastane, až vydají novou verzi winboxu a budu to muset udělat znovu. Poslední vada na kráse, že to neukládá konfigurační soubor. Hlásí to Error: Could not save configuration.

Ještě jednou moc děkuji za pomoc.

Uživatelský avatar
kmarty
Příspěvky: 91
Registrován: 08 srp 2012 20:19

Re: Odkaz z webu pustí specifickou aplikaci

Příspěvek od kmarty » 15 bře 2019 10:37

Heh, tak to nemam tuchy.

Odpovědět