Changeset 1413
- Timestamp:
- Jan 12, 2010, 10:58:27 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/locker-dev/locker/deploy/bin/onserver.pm
r1232 r1413 5 5 use File::Spec::Functions; 6 6 use File::Basename; 7 use File::Copy;8 7 use Socket; 9 8 use Cwd qw(abs_path); 10 9 use POSIX qw(strftime); 11 10 use LWP::UserAgent; 12 use IPC::Open2;13 11 use URI; 14 12 our @ISA = qw(Exporter); … … 17 15 our $server = "scripts.mit.edu"; 18 16 19 our ($tmp, $USER, $HOME, $ lname, $sname, $deploy, $addrend, $base_uri, $ua, $admin_username, $requires_sql, $addrlast, $sqlhost, $sqluser, $sqlpass, $sqldb, $admin_password, $scriptsdev, $human, $email);17 our ($tmp, $USER, $HOME, $sname, $deploy, $addrend, $base_uri, $ua, $admin_username, $requires_sql, $addrlast, $sqlhost, $sqluser, $sqlpass, $sqldb, $admin_password, $scriptsdev, $human, $email); 20 18 21 19 $tmp = ".scripts-tmp"; … … 80 78 $HOME = $ENV{HOME}; 81 79 82 ($ lname, $sname, $deploy, $addrend, $admin_username, $requires_sql, $scriptsdev, $human) = @ARGV;80 ($sname, $deploy, $addrend, $admin_username, $requires_sql, $scriptsdev, $human) = @ARGV; 83 81 chdir "$HOME/web_scripts/$addrend"; 84 82 $email = "$human\@mit.edu"; … … 124 122 } 125 123 126 # This code was originally in onathena127 my $repo = "/mit/scripts/git/autoinstalls$scriptsdev/$deploy.git";128 if(-e $repo) {129 # Much of this can be replaced with130 # system("git", "clone", "--shared", $repo, ".");131 # but only once we complete the FC11 transition and are running132 # a version of Git more recent than 1.6.1 on all servers.133 `git init`;134 open HTACCESS, '>', '.git/.htaccess' or die $!;135 print HTACCESS "Deny from all\n";136 close HTACCESS;137 open ALTERNATES, '>', ".git/objects/info/alternates" or die $!;138 print ALTERNATES "$repo/objects";139 close ALTERNATES;140 system("git", "remote", "add", "origin", $repo);141 `git config branch.master.remote origin`;142 `git config branch.master.merge refs/heads/master`;143 `git fetch origin`;144 `git branch --track master origin/master`;145 system("git checkout master"); # to get output146 } else {147 system("tar", "zxpf", "/mit/scripts/deploy$scriptsdev/$deploy.tar.gz");148 my @files = glob("* .*"); # You /don't/ want to match dotfiles149 if (@files == 3) {150 chdir $files[0] or die $!;151 for (glob("{,.??}*")) {152 move($_, catfile("..", $_)) || die $!;153 }154 chdir ".."155 }156 rmdir $files[0];157 }158 if(-f "/mit/scripts/deploy$scriptsdev/php.ini/$deploy") {159 # Copy in PHP file, perform substitutions, and make symlinks160 # to php.ini in all subdirectories161 my $nodot = $lname; $nodot =~ s/\.//;162 open(PHPIN, "/mit/scripts/deploy$scriptsdev/php.ini/$deploy") || die $!;163 open(PHPOUT, ">", "php.ini") || die $!;164 while(<PHPIN>) {165 s/SCRIPTS_USER/$lname/;166 s/SCRIPTS_NODOT/$nodot/;167 print PHPOUT $_ or die $!;168 }169 close(PHPOUT) || die $!;170 close(PHPIN) || die $!;171 # athrun doesn't exist on scripts. But find exists! Use alternate script172 system("/mit/scripts/bin/fix-php-ini-scripts");173 }174 175 124 print "\nConfiguring $sname...\n"; 176 125 if($requires_sql) { … … 178 127 } 179 128 180 if(-e $repo) { 181 # fake an empty commit to get version info 182 my $pid = open2(\*GIT_OUT, \*GIT_IN, "git commit-tree HEAD: -p HEAD") or die "Can't execute git process"; 183 print GIT_IN "User autoinstalled application\n\n"; 184 print GIT_IN "Installed-by: ", $ENV{'USER'}, '@', getclienthostname(), "\n"; 185 close(GIT_IN); 186 my $hash=<GIT_OUT>; 187 chomp($hash); 188 close(GIT_OUT); 189 waitpid $pid, 0; # reap zombies 190 system("git reset $hash"); 191 } else { 192 open(VERSION, ">.scripts-version") or die "Can't write scripts-version file: $!\n"; 193 print VERSION strftime("%F %T %z\n", localtime); 194 print VERSION $ENV{'USER'}, '@', getclienthostname(), "\n"; 195 my $tarball = abs_path("/mit/scripts/deploy$scriptsdev/$deploy.tar.gz"); 196 print VERSION $tarball, "\n"; 197 $tarball =~ s|/deploydev/|/deploy/|; 198 print VERSION dirname($tarball), "\n"; 199 close(VERSION); 200 } 129 open(VERSION, ">.scripts-version") or die "Can't write scripts-version file: $!\n"; 130 print VERSION strftime("%F %T %z\n", localtime); 131 print VERSION $ENV{'USER'}, '@', getclienthostname(), "\n"; 132 my $tarball = abs_path("/mit/scripts/deploy$scriptsdev/$deploy.tar.gz"); 133 print VERSION $tarball, "\n"; 134 $tarball =~ s|/deploydev/|/deploy/|; 135 print VERSION dirname($tarball), "\n"; 136 close(VERSION); 201 137 202 138 select STDOUT;
Note: See TracChangeset
for help on using the changeset viewer.