From 50bdbb8f48b7bcfc05f201c4e1bf04d09b76f139 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Thu, 18 Aug 2011 01:31:01 +0200 Subject: pkg: more fixes --- sys/src/cmd/pkg/install | 2 +- sys/src/cmd/pkg/unpkg.c | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/sys/src/cmd/pkg/install b/sys/src/cmd/pkg/install index 99afc4e8f..c7b03a805 100755 --- a/sys/src/cmd/pkg/install +++ b/sys/src/cmd/pkg/install @@ -6,7 +6,7 @@ if(~ $#pkgpath 0) cd / mkdir -p /sys/lib/pkg if (test -s /sys/lib/pkg/$1) { - echo $i already installed + echo $1 already installed exit } echo Installing $1 diff --git a/sys/src/cmd/pkg/unpkg.c b/sys/src/cmd/pkg/unpkg.c index 91fd87ec7..ee348ee36 100644 --- a/sys/src/cmd/pkg/unpkg.c +++ b/sys/src/cmd/pkg/unpkg.c @@ -56,6 +56,7 @@ void main(int argc, char *argv[]) { struct th th; ulong off; uchar b[512]; + char err[ERRMAX]; DigestState *s; int r, wfd; @@ -76,13 +77,18 @@ void main(int argc, char *argv[]) { sysfatal("%r", th.name); s = nil; for(off=0; off 512) + r = 512; + if(write(wfd, b, r) == r){ + s = sha1(b, r, nil, s); + continue; + } + } + errstr(err, sizeof(err)); + remove(th.name); + errstr(err, sizeof(err)); + sysfatal("%s: %r", th.name); } uchar digest[20], hdigest[41]; -- cgit v1.2.3