aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-07-30 00:42:15 +0200
committerJozanLeClerc <bousset.rudy@gmail.com>2020-07-30 00:42:15 +0200
commitae3866457f6273910d3a60e76c882513a8de3527 (patch)
treec38d35a28aabe688f9b81fb6ae6594121338e27d
parentChanged new script name (diff)
downloadjoe-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.pl43
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__