From f0cb40d9e4b8d3285ac7125fb40433d65fae172e Mon Sep 17 00:00:00 2001
From: JozanLeClerc <bousset.rudy@gmail.com>
Date: Wed, 8 Jul 2020 16:43:14 +0200
Subject: Directory tree rework

---
 src/update/gitjoe.pl | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/update/serv.pl   | 28 +++++++++++++++++
 2 files changed, 114 insertions(+)
 create mode 100755 src/update/gitjoe.pl
 create mode 100755 src/update/serv.pl

(limited to 'src/update')

diff --git a/src/update/gitjoe.pl b/src/update/gitjoe.pl
new file mode 100755
index 0000000..fdf8a80
--- /dev/null
+++ b/src/update/gitjoe.pl
@@ -0,0 +1,86 @@
+#!/usr/local/bin/perl
+
+use strict;
+use warnings;
+use Term::ANSIColor;
+use File::Copy;
+
+sub get_repos_index {
+	my $user = $_[0];
+	my $home_dir = '/usr/home/' . $user . '/';
+	opendir(DIR, $home_dir);
+	my @repos;
+	my $i = 0;
+	while (my $dir = readdir(DIR)) {
+		next if ($dir =~ m/^\./);
+		next if (!(-e $home_dir . $dir . '/git-daemon-export-ok'));
+		$repos[$i] = $dir;
+		$i += 1;
+	}
+	closedir(DIR);
+	my @sorted_repos = sort @repos;
+	return @sorted_repos;
+}
+
+sub stagit_generate {
+	my ($user, @repos) = @_;
+	my $site_dir = '/usr/local/www/git-jozan/';
+	my $home_dir = '/usr/home/' . $user . '/';
+	chdir($site_dir);
+	system(
+		'/usr/local/bin/dash',
+		'-c',
+		'/bin/rm -rf ' . $user . '/'
+		);
+	mkdir($user, 0755);
+	my $i = 0;
+	my $repos_line = "";
+	copy('./css/site.css', './' . $user . '/style.css');
+	while ($i < @repos) {
+		chdir($site_dir . $user . '/');
+		$repos_line = $repos_line . ' ' . $home_dir . $repos[$i] . '/';
+		substr($repos[$i], -4) = "";
+		mkdir($repos[$i], 0755);
+		chdir($site_dir . $user . '/' . $repos[$i] . '/');
+		$repos[$i] = $repos[$i] . '.git';
+		system(
+			'/usr/local/bin/dash',
+			'-c',
+			'/usr/local/bin/stagit ' . $home_dir . $repos[$i] . '/'
+			);
+		copy('../style.css', './style.css');
+		$i += 1;
+	}
+	chdir($site_dir . $user . '/');
+	system(
+		'/usr/local/bin/dash',
+		'-c',
+		'/usr/local/bin/stagit-index ' . $repos_line . '> index.html'
+		);
+	return;
+}
+
+sub main {
+	my $home_dir = '/usr/home/';
+	my @users;
+	opendir(DIR, $home_dir);
+	my $i = 0;
+	while (my $dir = readdir(DIR)) {
+		next if ($dir eq 'git-ro');
+		next if ($dir =~ m/^\./);
+		$users[$i] = $dir;
+		$i += 1;
+	}
+	closedir(DIR);
+	$i = 0;
+	while ($i < @users) {
+		my @repos = get_repos_index($users[$i]);
+		stagit_generate($users[$i], @repos);
+		$i += 1;
+	}
+	exit;
+}
+
+main();
+
+__END__
diff --git a/src/update/serv.pl b/src/update/serv.pl
new file mode 100755
index 0000000..77c64ff
--- /dev/null
+++ b/src/update/serv.pl
@@ -0,0 +1,28 @@
+#!/usr/local/bin/perl
+
+use strict;
+use warnings;
+use Term::ANSIColor;
+
+sub main {
+	system(
+		'/usr/local/bin/dash',
+		'-c',
+		'git -C /usr/local/www/jozan pull >/dev/null 2>&1'
+		);
+	system(
+		'/usr/local/bin/dash',
+		'-c',
+		'git -C /usr/local/www/git-jozan pull >/dev/null 2>&1'
+		);
+	system(
+		'/usr/local/bin/dash',
+		'-c',
+		'git -C /root/scripts pull >/dev/null 2>&1'
+		);
+	exit;
+}
+
+main();
+
+__END__
-- 
cgit v1.2.3