various improvements + stubs for later work, definitely not production ready

svn path=/nixu/trunk/; revision=3473
This commit is contained in:
Armijn Hemel 2005-07-29 16:54:36 +00:00
parent d623c357b5
commit 8f7215a779
2 changed files with 60 additions and 11 deletions

View File

@ -5,10 +5,10 @@ bootPath=@bootPath@
if ! test -n "$1"
then
echo "need URL for manifest!"
echo "need harddisk device for installing!"
exit
else
manifest=$1
device=$1
fi
make_dir() {
@ -27,6 +27,17 @@ touch_file() {
}
root=/tmp/mnt
mkdir -p /tmp/mnt
mount $device /tmp/mnt
mkdir -p /nix
mkdir -p /nixpkgs/trunk/pkgs
# temporary hack
mount --bind /mnt/cdrom1/nix /nix
mount --bind /mnt/cdrom1/pkgs /nixpkgs/trunk/pkgs
make_dir 00755 /bin
make_dir 00755 /dev
make_dir 00755 /proc
@ -77,8 +88,8 @@ cp -fa ../pkgs $root/nixpkgs/trunk
make_dir 0755 /tmp/scripts
cp -fa ../scripts $root/tmp
echo adding manifest
$NIX_CMD_PATH/nix-pull $manifest
#echo adding manifest
#$NIX_CMD_PATH/nix-pull $manifest
echo adding packages
export NIX_ROOT=$root
@ -87,8 +98,21 @@ unset NIX_LOG_DIR
unset NIX_STATE_DIR
unset NIX_CONF_DIR
storeExpr=$(echo '(import ./pkgs.nix).everything' | $NIX_CMD_PATH/nix-instantiate -v -v -)
$NIX_CMD_PATH/nix-store -r $storeExpr
#storeExpr=$(echo '(import /tmp/scripts/pkgs.nix).everything' | $NIX_CMD_PATH/nix-instantiate -v -v -)
#storeExpr=$(echo '(import ./pkgs.nix).everything' | $NIX_CMD_PATH/nix-instantiate -v -v -)
#$NIX_CMD_PATH/nix-store -r $storeExpr
#echo $storeExpr
#storeExpr2=$($NIX_CMD_PATH/nix-store -qR $($NIX_CMD_PATH/nix-store -r $storeExpr))
#echo storeExpr $storeExpr
#echo $($NIX_CMD_PATH/nix-store -qR --include-outputs $storeExpr)
echo copying store
(while read storepaths; do
cp -fa $storepaths $root/nix/store
done) < /mnt/cdrom1/mystorepaths
#cp -fa ../nix/store/* $root/nix/store
#echo registering valid paths...
#(while read storepath; do
@ -105,6 +129,8 @@ $NIX_CMD_PATH/nix-store -r $storeExpr
# $NIX_CMD_PATH/nix-store --successor $line
#done) < /tmp/mysuccessors
exit
echo setting init symlink...
rm -f $root/init
ln -s $sysvinitPath/sbin/init $root/init

View File

@ -1,9 +1,13 @@
#! /bin/sh -e
declare -a deps
archivesDir=/tmp/arch
manifest=${archivesDir}/MANIFEST
nixpkgs=/nixpkgs/trunk/pkgs
fill_disk=$archivesDir/scripts/fill-disk.sh
storePaths=$archivesDir/mystorepaths
validatePaths=$archivesDir/validatepaths
touch ${archivesDir}/blah
chmod -f -R +w ${archivesDir}/*
@ -12,8 +16,7 @@ rm -rf ${archivesDir}/*
NIX_CMD_PATH=/nix/bin
storeExpr=$(echo '(import ./pkgs.nix).everything' | $NIX_CMD_PATH/nix-instantiate -v -v -)
$NIX_CMD_PATH/nix-push --copy $archivesDir $manifest $(nix-store -r $storeExpr) $(nix-store -r $(echo '(import ./pkgs.nix).kernel' | $NIX_CMD_PATH/nix-instantiate -))
#$NIX_CMD_PATH/nix-push --copy $archivesDir $manifest $storeExpr $(nix-store -r $(echo '(import ./pkgs.nix).kernel' | $NIX_CMD_PATH/nix-instantiate -))
#$NIX_CMD_PATH/nix-push --copy $archivesDir $manifest $(nix-store -r $storeExpr) $(nix-store -r $(echo '(import ./pkgs.nix).kernel' | $NIX_CMD_PATH/nix-instantiate -))
# Location of sysvinit?
sysvinitPath=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).sysvinit' | $NIX_CMD_PATH/nix-instantiate -))
@ -25,12 +28,32 @@ nix=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).nix' | $NIX_CMD_PAT
#nixDeps=$($NIX_CMD_PATH/nix-store -qR $(echo '(import ./pkgs.nix).nix' | $NIX_CMD_PATH/nix-instantiate -))
nixDeps=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).nix' | $NIX_CMD_PATH/nix-instantiate -)))
#nixDeps=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).nix' | $NIX_CMD_PATH/nix-instantiate -)))
echo $($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).nix' | $NIX_CMD_PATH/nix-instantiate -))) >> $storePaths
echo $nixDeps
#echo $nixDeps > $storePaths
utilLinux=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).utillinux' | $NIX_CMD_PATH/nix-instantiate -)))
(while read storepath; do
cp -fa --parents ${storepath} ${archivesDir}
done) < $storePaths
echo utillinux $utilLinux
for i in $utilLinux; do
echo i $i
deps=( $($NIX_CMD_PATH/nix-store -q --references $i) )
echo length ${#deps[@]}
if test "${#deps[@]}" = 0
then
echo zarro
fi
done
cp -fa ${nixpkgs} ${archivesDir}
cp -fa --parents ${nixDeps} ${archivesDir}
#cp -fa --parents ${nixDeps} ${archivesDir}
cp -fau --parents ${utilLinux} ${archivesDir}
mkdir ${archivesDir}/scripts
cp -fa * ${archivesDir}/scripts
sed -e "s^@sysvinitPath\@^$sysvinitPath^g" \