Thread Skript für cpan-Upload (6 answers)
Opened by hlubenow at 2012-02-01 22:24

hlubenow
 2012-02-01 22:24
#155812 #155812
User since
2009-02-22
875 Artikel
BenutzerIn
[default_avatar]
Hallo,

vor einiger Zeit hatte ich mal ein Modul geschrieben und hab' das auch ins CPAN gestellt, es heißt Acme::Pythonic::Functions.

Dazu ist es üblich, nicht einfach die .pm-Moduldatei hochzuladen, sondern ein .tar.gz in einem bestimmten Format, Anleitung hier:

http://www.cpan.org/modules/04pause.html

Nun ist so ein Modul ja nie perfekt, man will immer nochmal was ändern. Dann muß man wieder neu diese .tar.gz-Datei erstellen. Dabei fielen immer dieselben Arbeitsschritte an. Nachdem ich die ein paarmal von Hand ausgeführt hatte, dachte ich, auch dafür bräuchte man ein Skript. Das hab' ich dann also auch noch geschrieben.

$BD bedeutet "Base-directory". Hier sollte das Skript, nennen wir es "maketar", liegen. In ein Unterverzeichnis "files" davon, sollte man die .pm-Moduldatei, die README-Datei und ggf. andere Sachen bringen, ich hatte da noch ein Verzeichnis "examples". Also, hier das Skript:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash

BD="/home/user/myperlmodule/tar"
d="Acme-Pythonic-Functions"
d2="Acme-Pythonic-Functions-0.3"
tarname="Acme-Pythonic-Functions-0.3.tar.gz"

if test -f "$BD/$tarname"; then
rm -f "$BD/$tarname"
echo "Old version of $tarname removed."
fi

if test -d "$BD/test/$d2"; then
rm -rf "$BD/test/$d2"
echo "Old version of $d2 removed."
fi

module-starter --module=Acme::Pythonic::Functions --author="My Name" --email=myemail@someprovider.somedomain

cp "$BD/files/README" "$BD/$d"
cp "$BD/files/Functions.pm" "$BD/$d/lib/Acme/Pythonic"

cd "$BD/$d"

perl Makefile.PL
make
make test
make dist

mv "$tarname" "$BD"
cd $BD
rm -rf "$d"

tar -xzvf "$tarname"
cp -r "$BD/files/examples" "$BD/$d2"
rm $tarname

tar -czvf "$tarname" "$d2"
rm -rf "$d2"

tar -xzvf "$tarname"
mv "$d2" "$BD/test"

Vorsicht, es löscht auch Dateien, also nicht starten, wenn ihr nicht wißt, was es tut.
Ist ja von der Programmierung nicht sehr aufregend, aber trotzdem sehr praktisch. Vielleicht könnt' ihr es ja für eure Module anpassen.
Ein Upload nach CPAN ist damit dann recht einfach.

HTH

P.S.: Anregungen und Verbesserungsvorschläge für das Modul selbst wären auch willkommen (obwohl ich mir vorstellen kann, daß das Modul wohl nicht so euer Ding ist. :) Es hat wohl auch nicht viele Benutzer, wenn überhaupt.).
Last edited: 2012-02-01 22:34:30 +0100 (CET)

View full thread Skript für cpan-Upload