diff options
author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-07-08 16:43:14 +0200 |
---|---|---|
committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-07-08 16:43:14 +0200 |
commit | f0cb40d9e4b8d3285ac7125fb40433d65fae172e (patch) | |
tree | dd4f02807e2744c2f21cef41d717c1778aa7d479 /src/gitjoe/newrepo.pl | |
parent | File owner fixes (diff) | |
download | joe-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-x | src/gitjoe/newrepo.pl | 95 |
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__ |