summaryrefslogtreecommitdiff
path: root/upgrade-gentoo
blob: 03e7c50587a799d904fa5141569762ca5e45ffba (plain)
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
43
44
45
46
47
48
49
50
#!/bin/zsh

HOST=$(hostname)

source $HOME/.local/bin/func.zsh

check_root

if [[ $HOST == "bogues" ]]; then
  if grep -qs '/media/ext_sd' /proc/mounts; then
    mount -o remount,exec,nouser,nousers /media/ext_sd
    mkdir -p /media/ext_sd/tmp
    chmod 777 /media/ext_sd/tmp
  else
    echo "External disk not mounted, exiting."
    exit
  fi
  rsync -avv /usr/portage/ /usr/portage_/
  umount /usr/portage
  rm -f /usr/portage.squashfs
  mv /usr/portage_ /usr/portage
fi

perl-cleaner --reallyall
emaint --check all
emaint --fix all
emerge --sync
if [[ -e $(which layman) ]]; then
  layman -s SYNC ALL
fi
emerge --oneshot portage
emerge --newuse -avuDN --with-bdeps y --keep-going world
echo "-------------------------"
read p\?"press enter to continue... "
etc-update
emerge -av --depclean
revdep-rebuild
emerge @preserved-rebuild
eclean -d distfiles
localepurge

if [[ $HOST == "bogues" ]]; then
  mksquashfs /usr/portage /usr/portage.squashfs -comp xz
  rm -rf /usr/portage
  mkdir /usr/portage
  mount /usr/portage
  rm -r /media/ext_sd/tmp
  mount -o remount,users,auto /media/ext_sd
fi