diff options
author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-07-30 00:42:15 +0200 |
---|---|---|
committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-07-30 00:42:15 +0200 |
commit | ae3866457f6273910d3a60e76c882513a8de3527 (patch) | |
tree | c38d35a28aabe688f9b81fb6ae6594121338e27d | |
parent | Changed new script name (diff) | |
download | joe-scripts-ae3866457f6273910d3a60e76c882513a8de3527.tar.gz joe-scripts-ae3866457f6273910d3a60e76c882513a8de3527.tar.bz2 joe-scripts-ae3866457f6273910d3a60e76c882513a8de3527.tar.xz joe-scripts-ae3866457f6273910d3a60e76c882513a8de3527.tar.zst joe-scripts-ae3866457f6273910d3a60e76c882513a8de3527.zip |
Style change
-rw-r--r-- | src/gitjoe/chpublic.pl | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/gitjoe/chpublic.pl b/src/gitjoe/chpublic.pl new file mode 100644 index 0000000..9f17618 --- /dev/null +++ b/src/gitjoe/chpublic.pl @@ -0,0 +1,43 @@ +#!/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, 2 needed " + . colored("[user - reponame]", 'bold') + . "\n"; + exit 1; + } + my $usr = $ARGV[0]; + my $repo = $ARGV[1]; + my $home_dir = '/usr/home/' . $usr . '/'; + if (substr($repo, -4) ne '.git') { + $repo = $repo . '.git'; + } + my $state; + if (-e $home_dir . $repo . '/git-daemon-export-ok') { + unlink($home_dir . $repo . '/git-daemon-export-ok'); + $state = 'private'; + } + else { + open(my $fh, '>', $home_dir . $repo . '/git-daemon-export-ok'); + close($fh); + $state = 'public'; + my (undef, undef, $uid, $gid) = getpwnam($usr); + chown $uid, $gid, $home_dir . $repo . '/git-daemon-export-ok'; + } + print "Changed git repository " . colored($repo, 'bold green') + . " for user " . colored($usr, 'bold green') . " visibility " + . colored('state', 'bold') . " to " . colored($state, 'bold green') . ".\n"; + exit; +} + +main(); + +__END__ |