Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

jb: Install Drupal Module (idm.py)

När jag utvecklar drupalsidor är det krångel med att ladda ner moduler och packa upp dem i modulkatalogen, ett sätt att underlätta det är att använda curl och pipa vidare till tar för att ladda ner och packa upp arkivet direkt. Jag tyckte dock att det var lite omständigt, dessutom behöver jag veta hela sökvägen till modulen (filen) som skall laddas ner. Så jag funderade lite, så som jag brukar göra. Min erfarenhet av Python är begränsad, har väl lekt lite med det under åren men bra på det är jag inte. Så idén fanns och Python hade jag på datorn.

En timme senare ser det ut så här:

jonas@thinkpad61:~$ ./idm.py hello
Found 32436 files!
[0] hellomobile-5.x-1.0.tar.gz
[1] hellomobile-5.x-1.1.tar.gz
[2] hellomobile-5.x-1.x-dev.tar.gz
[3] hellotxt-6.x-1.x-dev.tar.gz
Which module do you want to download? 1
Ok, lets get hellomobile-5.x-1.1.tar.gz
jonas@thinkpad61:~$ ls -l hellomobile-5.x-1.1.tar.gz
-rw-r--r-- 1 jonas jonas 824473 2009-10-22 22:34 hellomobile-5.x-1.1.tar.gz

Nästa steg är att filtrera på versionsnummer, -5 och -6 anger vilken drupalversion modulen är skriven för. Varför skall jag se moduler för Drupal 5 när jag kör version 6? Varför skall jag se dev-moduler om jag vill ha stabil kod i min webblösning? Dvs, filtrera bort Drupal 5 och devel moduler. Sen skall jag packa upp modulen i rätt katalog efter att den är nedladdad, och kanske cacha fillistan lokalt mellan varje förfrågan. Det tar trots allt nästan tre sekunder att hämta fillistan med 32436 filer.. Smile

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

Finns det en checksumma att ta hem så kan du trimma tiden med hela 2.5 sekunder per tillfälle och bara ta hem indexet vid en förändring.

jonasbjorks bild

Och här finns källkoden att ladda ner: git://github.com/jonasbjork/idm.git

Open Source as usual! Hjälp gärna till att utveckla det vidare enligt det jag skrev ovanför, eller om du själv har ideer..

--
Jag är grundare av och administratör på Linuxportalen. Kontakta mig om du har frågor, funderingar eller synpunkter kring Linuxportalen.se .

polters bild

IDM == Intelligent Dance Music? http://en.wikipedia.org/wiki/Intelligent_Dance_Music

jonasbjorks bild

En ganska onödig kommentar, eftersom jag i rubriken till mitt inlägg skriver vad IDM står för.

--
Jag är grundare av och administratör på Linuxportalen. Kontakta mig om du har frågor, funderingar eller synpunkter kring Linuxportalen.se .

polters bild

Ja jag bara larvar mig. Helt onödig var kommentaren inte, eftersom den gav mig något att göra en långsam dag på jobbet, men visst, point taken. Wink

abergmans bild

Andreas Approves This!

Bra jobbat, jag har länge velat se något liknande!

 

 

Pelles bild

Skulle bara vilja tipsa om att kolla in Drush projektet på Drupal.org - det är visserligen inte skrivet i python, men man kan interagera med de flesta delar av ens sajt med hjälp av det - bl.a. finns funktionen "drush dl" som gör något liknande det ditt script gör - och där finns också ex. en "drush enable" som man kan följa upp med för att aktivera den nya modulen.

Finns också många moduler som erbjuder Drush-kommandon och projekt som bygger vidare på det - exempelvis Drush Make som är ett makefil-system för Drupal och Aegir som är ett grafiskt gränssnitt för att skapa, hantera och migrera drupalsajter på och mellan olika drupalplattformar.