Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use Cwd;
- my $script_root = getcwd;
- my $emacs_root = cd_emacs_root();
- my $cl_root = cd_cl_root();
- my %operations = (
- 'help' => 'help',
- 'emacs' => 'emacs',
- 'cdr' => 'cdr',
- 'cl' => 'cl',
- 'setup-imap' => 'setup_imap',
- 'setup-jabber' => 'setup_jabber',
- 'setup-maxima' => 'setup_maxima',
- 'setup-emms-mpd' => 'setup_emms_mpd',
- 'setup-lisp-environment' => 'setup_cl_environment',
- 'setup-perl' => 'setup_perl',
- 'setup-python' => 'setup_python',
- 'setup-audio-desktop' => 'setup_audio_desktop',
- 'setup-blog' => 'setup_blog',
- 'setup-erc' => 'setup_erc',
- 'setup-rss' => 'setup_rss'
- );
- my $op = $operations{$ARGV[0]};
- if ( scalar(@ARGV) == 0 ) {
- help();
- }
- else {
- &$op();
- }
- sub help {
- print "cdr - the rest of emacs";
- print "\n\t" . $_ foreach keys %operations;
- print "\n";
- }
- sub emacs {
- if ( $ARGV[1] eq 'recompile' ) {
- emacs_compile();
- }
- elsif ( $ARGV[1] eq 'update') {
- emacs_update();
- emacs_compile();
- }
- elsif ( $ARGV[1] eq 'updateonly') {
- emacs_update();
- }
- else {
- chdir($emacs_root); chdir('../');
- if ( -e 'emacs') { system('rm -rf emacs') };
- system('cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs');
- emacs_compile();
- cdr();
- }
- }
- sub emacs_compile {
- chdir($emacs_root); chdir('../emacs');
- system('./configure --prefix=/opt/emacs --with-gtk --enable-font-backend --with-xft --with-freetype --with-xpm');
- system('make clean && make bootstrap');
- chdir('lisp');
- system('make recompile EMACS=../src/emacs');
- chdir('..');
- system('sudo make install');
- system('sudo make clean');
- }
- sub emacs_update {
- chdir($emacs_root);
- if ( -e '../emacs' ) {
- chdir('../emacs');
- print "Updating emacs sources ...\n";
- system('cvs -nq update');
- }
- else {
- print "Cant find default emacs location. Specify location."
- }
- }
- sub cdr {
- if ( -l "~/.emacs" ) {
- system("cp -a ~/.emacs ~/.emacs-backup");
- system("rm ~/.emacs");
- }
- else {
- system("mv ~/.emacs ~/.emacs-backup");
- }
- system("sudo rm /usr/local/bin/cdr");
- system("sudo ln -s '$script_root/cdr' /usr/local/bin/cdr");
- system("ln -s $emacs_root/init/de-emacs.el ~/.emacs");
- system("sudo ln -s '$script_root/cdr' /usr/local/bin/cdr");
- }
- sub cdr_update {
- print "\nPulling git repository ...\n";
- }
- sub cdr_configure {
- }
- sub cl {
- mkdir("../cl");
- if ( -e "../cl/clbuild") {
- print "\nclbuild already exists";
- }
- else {
- system("cp -av clbuild/ ../cl/");
- }
- if ( $ARGV[1] eq 'nosbcl' ) {
- print "Doing basic setup ..";
- }
- else {
- cl_sbcl();
- }
- chdir($emacs_root);
- system("ln -s $emacs_root/dotfiles/sbcl/sbclrc ~/.sbclrc");
- system("ln -s $emacs_root/dotfiles/sbcl/swank.lisp ~/.swank.lisp");
- print "\n Do a M-x swank, connect and happy hacking\n";
- }
- sub cl_sbcl {
- chdir("$cl_root/clbuild");
- system('./clbuild buildsbcl');
- }
- sub setup_imap {
- my $imap = prompt("IMAP Server", "imap.gmail.com");
- my $port = prompt("Port(993)", "143");
- my $username = prompt("Username", "");
- my $password = prompt("Password", "");
- # write to ~/.authinfo
- }
- sub setup_jabber {
- }
- sub setup_maxima {
- }
- sub setup_mpd {
- }
- sub cd_emacs_root {
- chdir($script_root);
- chdir("../");
- return getcwd;
- };
- sub cd_cl_root {
- chdir($emacs_root);
- chdir("../cl");
- return getcwd;
- };
- sub prompt {
- local($prompt_string,$default_value) = @_;
- if ($defaultValue) {
- print $prompt_string, "[", $default_value, "]: ";
- } else {
- print $prompt_string, ": ";
- }
- $| = 1;
- $_ = <STDIN>;
- chomp;
- if ("$default_value") {
- return $_ ? $_ : $default_value; # return $_ if it has a value
- } else {
- return $_;
- }
- }
Add Comment
Please, Sign In to add comment