--- /dev/null
+#!/usr/bin/perl
+#use strict;
+
+use Getopt::Long qw(GetOptions);
+use Term::ReadKey;
+use JIRA::REST;
+use Data::Dumper;
+
+sub getpass {
+ ReadMode( "noecho");
+ print "Password: ";
+ chomp (my $pwd = <>);
+ ReadMode ("original");
+ return $pwd;
+}
+
+sub getuser {
+ print "User: ";
+ chomp (my $usr = <>);
+ return $usr;
+}
+
+sub get_text {
+ my @chars = ("A".."Z", "a".."z");
+ my $string;
+ $string .= $chars[rand @chars] for 1..8;
+
+ my $editor = $ENV{"EDITOR"} || $ENV{"VISUAL"} || `which emacs` || `which vi`;
+
+ system("$editor /tmp/TEXT.$string");
+ my $text = `cat /tmp/TEXT.$string`;
+ unlink("/tmp/TEXT.$string");
+ return $text;
+}
+
+#my $user = getuser();
+#my $pass = getpass();
+
+my %opts;
+
+my $hashtxt = `git log -1 --oneline 2>/dev/null`;
+my ($hash) = split(" ", $hashtxt);
+
+GetOptions(
+ 'summary=s' => \$opts{summary},
+ 'desc=s' => \$opts{desc},
+ 'components=s' => \$opts{components},
+ 'hash=s' => \$opts{hash},
+ 'user=s' => \$opts{user},
+ 'pass=s' => \$opts{pass},
+ 'type=s' => \$opts{type},
+ 'debug' => \$opts{debug},
+ ) or die "Usage: $0 --debug --from NAME\n";
+
+
+if ($opts{components}) {
+ $opts{components_array} = [map {{name => $_}} split(" ", $opts{components})];
+} else {
+ $opts{components_array} = [map {{name => $_}} qw(freeswitch-core)];
+}
+
+
+#print Dumper \%opts;
+#exit;
+
+if (!$opts{user}) {
+ $opts{user} = getuser();
+}
+
+if (!$opts{pass}) {
+ $opts{pass} = getpass();
+}
+
+my $jira = JIRA::REST->new('https://freeswitch.org/jira', $opts{user}, $opts{pass}) or die "login incorrect:";
+my $issue = $jira->GET("/issue/FS-7985") or die "login incorrect:";
+#print Dumper $issue;
+#exit;
+
+if (!$opts{type}) {
+ $opts{type} = "Bug";
+}
+
+if (!$opts{summary}) {
+ die "missing summary:";
+}
+
+if (!$opts{desc}) {
+ $opts{desc} = get_text();
+
+ if (!$opts{desc}) {
+ die "missing desc:";
+ }
+}
+
+if (!$opts{hash}) {
+ $opts{hash} = $hash;
+
+ if (!$opts{hash}) {
+ $opts{hash} = "N/A";
+ }
+}
+
+
+
+my $issue = $jira->POST('/issue', undef, {
+ fields => {
+ project => { key => 'FS' },
+ issuetype => { name => $opts{type} },
+ summary => $opts{summary},
+ description => $opts{desc},
+ customfield_10024 => $opts{hash},
+ customfield_10025 => $opts{hash},
+ components => $opts{components_array}
+ },
+ });
+
+
+print "Issue Posted";
+
+
+__END__
+
+my $jira = JIRA::REST->new('https://freeswitch.org/jira', $user, $pass);
+
+#$issue = $jira->GET("/issue/FS-7985");
+#print Dumper $issue;
+