Skip to content

Instantly share code, notes, and snippets.

@mcandre
Last active December 20, 2017 20:28
Show Gist options
  • Save mcandre/132e20ba656a8d77746d5fc2dd91ae1d to your computer and use it in GitHub Desktop.
Save mcandre/132e20ba656a8d77746d5fc2dd91ae1d to your computer and use it in GitHub Desktop.
Automate fink installation
#!/usr/bin/expect -f
#
# DEPRECATED - expect is unreliable and unnecessary for this application. Instead, use:
#
# yes '' | sudo InstallFink/Install\ Fink.tool
#
# patronum - Automate the process of running the fink source installer.
#
# Example:
#
# curl -OL https://github.com/fink/scripts/releases/download/setup%2F0.42.0/InstallFink.tgz
# tar xzvf InstallFink.tgz
# sudo expect -f patronum.exp
spawn InstallFink/Install\ Fink.tool
expect "Press any key to continue or ctrl+c to exit." { send "\n" }
expect "\\\[N\\\|y\\\] " { send "\n" }
expect "Press any key to continue or ctrl+c to exit." { send "\n" }
expect -timeout 3600 "Choose a method: \\\[1\\\] " { send "\n" }
expect "In what additional directory should Fink look for downloaded tarballs? \\\(use the absolute pathname only\\\) \\\[\\\] " { send "\n" }
expect "Which directory \\\(absolute pathname\\\) should Fink use to build packages? \\\(If you don't know what this means, it is safe to leave it at its default.\\\) \\\[\\\] " { send "\n" }
expect "Should Fink try to download pre-compiled packages from the binary distribution if available? \\\[Y/n\\\] " { send "\n" }
expect "Allow Fink to set the UID/GID dynamically? \\\[Y/n\\\] " { send "\n" }
expect "How verbose should Fink be? \\\[2\\\] " { send "\n" }
expect "Your proxy: \\\[none\\\] " { send "\n" }
expect "Your proxy: \\\[none\\\] " { send "\n" }
expect "Use passive mode FTP transfers \\\(to get through a firewall\\\)? \\\[Y/n\\\] " { send "\n" }
expect "Maximum number of simultaneous build jobs: \\\[2\\\] " { send "\n" }
expect "What mirror order should fink use when downloading sources? \\\[1\\\] " { send "\n" }
expect "Your continent? \\\[5\\\] " { send "\n" }
expect "Your country? \\\[5\\\] " { send "\n" }
expect "Mirror for Master Fink mirrors? \\\[1\\\] " { send "\n" }
expect "Mirror for RSync SelfUpdate? \\\[1\\\] " { send "\n" }
expect "Mirror for Apt-Get Repository? \\\[1\\\] " { send "\n" }
expect "Mirror for GNU software? \\\[1\\\] " { send "\n" }
expect "Mirror for GNOME? \\\[1\\\] " { send "\n" }
expect "Mirror for The GIMP? \\\[1\\\] " { send "\n" }
expect "Mirror for Comprehensive TeX Archive Network? \\\[1\\\] " { send "\n" }
expect "Mirror for Comprehensive Perl Archive Network? \\\[1\\\] " { send "\n" }
expect "Mirror for Debian? \\\[1\\\] " { send "\n" }
expect "Mirror for FreeBSD? \\\[1\\\] " { send "\n" }
expect "Mirror for KDE? \\\[1\\\] " { send "\n" }
expect "Mirror for SourceForge? \\\[1\\\] " { send "\n" }
expect "Mirror for The Apache Project? \\\[1\\\] " { send "\n" }
expect "The list of possible mirrors in fink has been updated. Do you want to review and change your choices? \\\[y/N\\\] " { send "\n" }
expect "Press any key to continue or ctrl+c to exit." { send "\n" }
expect "Choose an update method \\\[3\\\] " { send "\n" }
expect -timeout 600 eof
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment