aboutsummaryrefslogtreecommitdiffstats
path: root/src/gitjoe/newrepo.pl
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-07-08 16:43:14 +0200
committerJozanLeClerc <bousset.rudy@gmail.com>2020-07-08 16:43:14 +0200
commitf0cb40d9e4b8d3285ac7125fb40433d65fae172e (patch)
treedd4f02807e2744c2f21cef41d717c1778aa7d479 /src/gitjoe/newrepo.pl
parentFile owner fixes (diff)
downloadjoe-scripts-f0cb40d9e4b8d3285ac7125fb40433d65fae172e.tar.gz
joe-scripts-f0cb40d9e4b8d3285ac7125fb40433d65fae172e.tar.bz2
joe-scripts-f0cb40d9e4b8d3285ac7125fb40433d65fae172e.tar.xz
joe-scripts-f0cb40d9e4b8d3285ac7125fb40433d65fae172e.tar.zst
joe-scripts-f0cb40d9e4b8d3285ac7125fb40433d65fae172e.zip
Directory tree rework
Diffstat (limited to 'src/gitjoe/newrepo.pl')
-rwxr-xr-xsrc/gitjoe/newrepo.pl95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/gitjoe/newrepo.pl b/src/gitjoe/newrepo.pl
new file mode 100755
index 0000000..951b1b5
--- /dev/null
+++ b/src/gitjoe/newrepo.pl
@@ -0,0 +1,95 @@
+#!/usr/local/bin/perl
+
+use strict;
+use warnings;
+use Term::ANSIColor;
+
+sub main {
+ my $argc = $#ARGV + 1;
+ if ($argc < 2) {
+ print colored("Failed!\n", 'bold red')
+ . "Missing argument, at least 2 needed "
+ . colored("[user - reponame - (description)]", 'bold')
+ . "\n";
+ exit 1;
+ }
+ my $usr = $ARGV[0];
+ my $repo = $ARGV[1];
+ my $desc = "";
+ if ($argc >= 3) {
+ $desc = $ARGV[2];
+ }
+ my $home_dir = '/usr/home/' . $usr . '/';
+ if (substr($repo, -4) ne '.git') {
+ $repo = $repo . '.git';
+ }
+ $repo = $repo . '/';
+ system(
+ '/usr/local/bin/dash',
+ '-c',
+ '/bin/mkdir -v ' . $home_dir . $repo
+ );
+ system(
+ '/usr/local/bin/dash',
+ '-c',
+ '/usr/local/bin/git -C ' . $home_dir . $repo . ' init --bare'
+ );
+ system(
+ '/usr/local/bin/dash',
+ '-c',
+ '/usr/sbin/chown -v -R ' . $usr . ':' . $usr . ' ' . $home_dir . $repo
+ );
+ system(
+ '/usr/local/bin/dash',
+ '-c',
+ '/usr/bin/touch ' . $home_dir . $repo . 'git-daemon-export-ok'
+ );
+ system(
+ '/usr/local/bin/dash',
+ '-c',
+ '/usr/sbin/chown -v ' . $usr . ':' . $usr . ' ' . $home_dir . $repo . 'git-daemon-export-ok'
+ );
+ open(my $owner_fh, '>:encoding(UTF-8)', $home_dir . $repo . 'owner');
+ print $owner_fh $usr;
+ close($owner_fh);
+ system(
+ '/usr/local/bin/dash',
+ '-c',
+ '/usr/sbin/chown -v ' . $usr . ':' . $usr . ' ' . $home_dir . $repo . 'owner'
+ );
+ open(my $url_fh, '>:encoding(UTF-8)', $home_dir . $repo . 'url');
+ substr($repo, -1) = "";
+ print $url_fh 'git://jozanleclerc.xyz/' . $usr . '/' . $repo;
+ close($url_fh);
+ $repo = $repo . '/';
+ system(
+ '/usr/local/bin/dash',
+ '-c',
+ '/usr/sbin/chown -v ' . $usr . ':' . $usr . ' ' . $home_dir . $repo . 'url'
+ );
+ if ($argc >= 3) {
+ open(my $desc_fh, '>:encoding(UTF-8)', $home_dir . $repo . 'description');
+ print $desc_fh $desc;
+ close($desc_fh);
+ system(
+ '/usr/local/bin/dash',
+ '-c',
+ '/usr/sbin/chown -v ' . $usr . ':' . $usr . ' ' . $home_dir . $repo . 'description'
+ );
+ }
+ else {
+ open(my $desc_fh, '>:encoding(UTF-8)', $home_dir . $repo . 'description');
+ print $desc_fh 'No description yet';
+ close($desc_fh);
+ system(
+ '/usr/local/bin/dash',
+ '-c',
+ '/usr/sbin/chown -v ' . $usr . ':' . $usr . ' ' . $home_dir . $repo . 'description'
+ );
+ }
+ exit;
+}
+
+main();
+
+__END__