Staden-sovellusten muuttaminen klikattaviksi macOS X:ssä
Last modified on 24. heinäkuuta 2026 • 2 min read • 347 wordsOlen asentanut Stadenin Mac OS X:ään ja kokeillut sitä vähän. Käytin asennuksessa Anders Nistersin luomaa ebiotools-pakettia, joka on kuvattu embnet.news -lehden numerossa 10/1. Se toimii, vaikkakaan ei Macin filosofian mukaisesti:
- Ensin on käynnistettävä Applen oma X Windows -toteutus (X11)
- Avaa Applen terminaalisovellus (koska shell-skriptejä ei voi käynnistää napsauttamalla graafisessa käyttöliittymässä)
- Kirjoita komento minkä tahansa Staden-ohjelman käynnistämiseksi
Kun huomasin, että esimerkiksi /usr/local/staden-linux-rel-1-4/linux-bin/trev on itse asiassa shell-skripti, lisäsin sen alkuun kaksi riviä, jotka käynnistävät Applen X11:n ja asettavat DISPLAY-muuttujan oikein. Näin käynnistämiseen tarvitaan yksi vaihe vähemmän. Sitten aloin kääriä tätä shell-skriptiä Cocoaan (sitä tarvitaan, jotta se toimisi graafisesta käyttöliittymästä), mutta tässä vaiheessa se petti. On olemassa muutamia ilmaisia sovelluksia, jotka kääriävät shell-skriptejä Cocoaan (esim. Platypus ), mutta en onnistunut käyttämään yhtäkään niistä. Teoriassa ne luovat skripteistä (mukaan lukien shell- ja Tcl-skriptit) klikattavan ja jopa vedettävän Cocoa-sovelluksen, mutta ne eivät ole vielä lunastaneet lupauksiaan. Työstän kuitenkin asiaa edelleen, koska viisi ihmistä laboratoriossani odottaa sitä…
Olen tunnistanut kaksi ongelmaa:
Shell-skriptistä luotu kääreohjelma sisältää skriptin muokkaamattoman version resurssina. Se sijaitsee kuitenkin eri hakemistossa kuin alkuperäinen skripti. Tämä tarkoittaa, että kun alkuperäinen skripti käyttää suhteellisia polkuja, kääreohjelma lakkaa toimimasta. Olen muokannut shell-skriptiä /usr/ebiotools/staden/macosx-bin/trev ja luonut samaan hakemistoon Platypus-kääreohjelman nimeltä trev_wrapper.app. Suhteellisten polkujen ongelman korjaamiseksi korvasin trev_wrapper.app/Contents/Resources/script-tiedoston symbolisella linkillä alkuperäiseen skriptiin ln -s ../../../trev. Toiseksi ympäristömuuttujat on määritettävä nimenomaisesti skriptin alussa. PATH-ympäristömuuttuja asetetaan oikein, kun käynnistät terminaalin MacOS X:ssä, mutta ei silloin, kun wrapper-sovellus käynnistyy (ehkä siksi, että shell-skripti käyttää sh:ta eikä tcsh:ta, kuten MacOS X:n terminal.app tekee oletuksena?)
Joten asetin PATH-muuttujan nimenomaisesti trev-skriptin alkuun. Tämä ei ole hyvä idea, mutta tein sen vain periaatteen todistamiseksi, että se toimii, kun PATH-polut ovat oikein. Ja todellakin, wrapper alkoi toimia. Yritin käyttää Platypusin ”make dropable” -vaihtoehtoa, mutta Platypus kaatuu aina, kun tämä vaihtoehto on valittuna, jopa hyvin yksinkertaisten shell-skriptien kanssa. Kokeilin toista sovellusta luodakseni dropable-wrapperin:
DropScript
. Tämä sovellus todellakin luo pudotettavan Cocoa-skriptin! Kuitenkin, kun napsautat sen Cocoa-kuvaketta, se ei käynnistä sovellusta ilman tiedostoa, vaan avaa vain Cocoa-sovelluksen, josta voit avata tiedostoja (ja kun olet tehnyt sen, se käynnistää varsinaisen sovelluksen). Saatan selvittää, miten DropScriptin luoma Cocoa-kääre tekee itsestään vedettävän, ja tämän ominaisuuden voisi siirtää Platypus-kääreeseen.