makeself - part2
makeself
is a pretty nifty shell script which creates self-extracting archives in the form of shell scripts. It embeds in gzip format the archive at the end of the script that it creates.
the arguments give to it are
This is the work space:
bash-3.2$ find . -ls
16734774 4 drwxr-xr-x 4 byazlov byazlov 4096 Oct 9 13:07 .
16734778 4 drwxr-xr-x 3 byazlov byazlov 4096 Oct 9 14:54 ./arxiv
16734779 0 -rw-r--r-- 1 byazlov byazlov 0 Oct 9 11:42 ./arxiv/a
16734780 0 -rw-r--r-- 1 byazlov byazlov 0 Oct 9 11:42 ./arxiv/b
16734781 0 -rw-r--r-- 1 byazlov byazlov 0 Oct 9 11:42 ./arxiv/c
16734782 0 -rw-r--r-- 1 byazlov byazlov 0 Oct 9 11:42 ./arxiv/d
16734783 0 -rw-r--r-- 1 byazlov byazlov 0 Oct 9 11:42 ./arxiv/e
16734786 4 drwxr-xr-x 2 byazlov byazlov 4096 Oct 9 14:56 ./arxiv/bin
16734788 4 -rwxr-xr-x 1 byazlov byazlov 122 Oct 9 14:56 ./arxiv/bin/post-extract
16734777 4 drwxr-xr-x 2 byazlov byazlov 4096 Oct 9 11:45 ./bin
16734775 12 -rwxr-xr-x 1 byazlov byazlov 11928 Oct 9 11:41 ./bin/makeself
16734784 12 -rwxr-xr-x 1 byazlov byazlov 9635 Oct 9 11:45 ./bin/makeself-header.sh
bash-3.2$ more arxiv/bin/post-extract
#!/bin/sh
installdir=$1
echo i am invoked from:
echo `dirname $0`
pwd
ls -la
mkdir $installdir
cp a b c d e ${installdir}/.
cd $installdir
ls -la
invokation of makeself:
bash$ /mnt/nfs/byazlov/prog/shell/mself/bin/makeself /mnt/nfs/byazlov/prog/shell/mself/arxiv /tmp/rrr.sh label-test bin/post-extract
Header is 401 lines long
WARNING: Overwriting existing file: /tmp/rrr.sh
About to compress 12 KB of data...
Adding files to archive named "/tmp/rrr.sh"...
./
./a
./b
./c
./d
./e
./bin/
./bin/post-extract
CRC: 1564690277
MD5: 0bde84abd459edf2d297c38b7e4e37eb
Self-extractible archive "/tmp/rrr.sh" successfully created.
bash-3.2$ /tmp/rrr.sh /tmp/qqq
Verifying archive integrity... All good.
Uncompressing label-test...........
i am invoked from:
bin
/tmp/selfgz201930888
total 60
drwxr-xr-x 3 byazlov byazlov 4096 2008-10-09 14:54 .
drwxrwxrwt 23 root root 20480 2008-10-09 14:47 ..
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 11:42 a
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 11:42 b
drwxr-xr-x 2 byazlov byazlov 4096 2008-10-09 15:14 bin
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 11:42 c
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 11:42 d
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 11:42 e
/tmp/qqq
total 52
drwxr-xr-x 2 byazlov byazlov 4096 2008-10-09 14:47 .
drwxrwxrwt 24 root root 20480 2008-10-09 14:47 ..
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 14:47 a
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 14:47 b
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 14:47 c
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 14:47 d
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 14:47 e
is a pretty nifty shell script which creates self-extracting archives in the form of shell scripts. It embeds in gzip format the archive at the end of the script that it creates.the arguments give to it are
- the directory which contains the files to be archived
- the filename which will contain the archive
- a label
- script which does something to the archive once extracted
This is the work space:
bash-3.2$ find . -ls
16734774 4 drwxr-xr-x 4 byazlov byazlov 4096 Oct 9 13:07 .
16734778 4 drwxr-xr-x 3 byazlov byazlov 4096 Oct 9 14:54 ./arxiv
16734779 0 -rw-r--r-- 1 byazlov byazlov 0 Oct 9 11:42 ./arxiv/a
16734780 0 -rw-r--r-- 1 byazlov byazlov 0 Oct 9 11:42 ./arxiv/b
16734781 0 -rw-r--r-- 1 byazlov byazlov 0 Oct 9 11:42 ./arxiv/c
16734782 0 -rw-r--r-- 1 byazlov byazlov 0 Oct 9 11:42 ./arxiv/d
16734783 0 -rw-r--r-- 1 byazlov byazlov 0 Oct 9 11:42 ./arxiv/e
16734786 4 drwxr-xr-x 2 byazlov byazlov 4096 Oct 9 14:56 ./arxiv/bin
16734788 4 -rwxr-xr-x 1 byazlov byazlov 122 Oct 9 14:56 ./arxiv/bin/post-extract
16734777 4 drwxr-xr-x 2 byazlov byazlov 4096 Oct 9 11:45 ./bin
16734775 12 -rwxr-xr-x 1 byazlov byazlov 11928 Oct 9 11:41 ./bin/makeself
16734784 12 -rwxr-xr-x 1 byazlov byazlov 9635 Oct 9 11:45 ./bin/makeself-header.sh
bash-3.2$ more arxiv/bin/post-extract
#!/bin/sh
installdir=$1
echo i am invoked from:
echo `dirname $0`
pwd
ls -la
mkdir $installdir
cp a b c d e ${installdir}/.
cd $installdir
ls -la
invokation of makeself:
bash$ /mnt/nfs/byazlov/prog/shell/mself/bin/ma
Header is 401 lines long
WARNING: Overwriting existing file: /tmp/rrr.sh
About to compress 12 KB of data...
Adding files to archive named "/tmp/rrr.sh"...
./
./a
./b
./c
./d
./e
./bin/
./bin/post-extract
CRC: 1564690277
MD5: 0bde84abd459edf2d297c38b7e4e37eb
Self-extractible archive "/tmp/rrr.sh" successfully created.
bash-3.2$ /tmp/rrr.sh /tmp/qqq
Verifying archive integrity... All good.
Uncompressing label-test...........
i am invoked from:
bin
/tmp/selfgz201930888
total 60
drwxr-xr-x 3 byazlov byazlov 4096 2008-10-09 14:54 .
drwxrwxrwt 23 root root 20480 2008-10-09 14:47 ..
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 11:42 a
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 11:42 b
drwxr-xr-x 2 byazlov byazlov 4096 2008-10-09 15:14 bin
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 11:42 c
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 11:42 d
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 11:42 e
/tmp/qqq
total 52
drwxr-xr-x 2 byazlov byazlov 4096 2008-10-09 14:47 .
drwxrwxrwt 24 root root 20480 2008-10-09 14:47 ..
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 14:47 a
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 14:47 b
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 14:47 c
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 14:47 d
-rw-r--r-- 1 byazlov byazlov 0 2008-10-09 14:47 e

0 Comments:
Post a Comment
<< Home