deb-clone 617 B

123456789101112131415161718192021222324252627282930
  1. #
  2. # Generates a script that can be used to duplicate a dpkg-based system.
  3. #
  4. # Authors:
  5. # Daniel Bolton <danielbarrettbolton@gmail.com>
  6. # Sorin Ionescu <sorin.ionescu@gmail.com>
  7. #
  8. # function deb-clone {
  9. local clone_script="${0}.sh"
  10. local package_list=$(
  11. perl \
  12. -m 'AptPkg::Cache' \
  13. -e '
  14. $c=AptPkg::Cache->new;
  15. for (keys %$c) {
  16. push @a, $_ if $c->{$_}->{'CurrentState'} eq 'Installed';
  17. }
  18. print "$_ " for sort @a;
  19. '
  20. )
  21. rm "$clone_script"
  22. print '#!/bin/sh\n' > "$clone_script"
  23. print "aptitude install ${package_list}\n" >> "$clone_script"
  24. chmod +x "$clone_script"
  25. # }