.\" -*- mode: troff; coding: utf-8 -*-
.\" Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
. if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{\
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\" ========================================================================
.\"
.IX Title "CPAN2AUR 1"
.TH CPAN2AUR 1 2024-09-01 "perl v5.40.0" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH NAME
cpan2aur \- AUR maintainer utility for CPAN perl modules
.SH SYNOPSIS
.IX Header "SYNOPSIS"
.Vb 1
\& cpan2aur [\-v \-f]
\&
\& cpan2aur [\-v \-f] \-\-directory
\&
\& cpan2aur [\-v \-f] \-\-upload [Module::Names filenames.src.tar.gz
\& /pkg/dirs/]
\&
\& cpan2aur [\-v \-f] \-\-check
\&
\& \-h, \-\-help Display this usage message.
\& \-m, \-\-man Display full help manual page.
\& \-v, \-\-verbose Allow CPANPLUS to be more verbose.
\& \-f, \-\-force Overwrite files without asking.
\&
\& \-d, \-\-directory Create a source package directory with a standard
\& PKGBUILD.tt template file.
\& \-r, \-\-reverse Convert a PKGBUILD in the current directory to a
\& template file (PKGBUILD.tt).
\&
\& TODO: The upload feature is currently disabled due to AUR v4.0 changing
\& to a Git backend and HTTP Uploads removed.
\& \-u, \-\-upload [dir] Upload the generated source package to the AUR.
\& [file] * If a dir is specified cd to that dir and
\& [module] convert PKGBUILD.tt to a PKGBUILD to a
\& source package, then upload it.
\& * If a file is specified, upload it if it appears
\& to be a source package.
\& * If a module is specified, package and upload it.
\& * If nothing is specified, act upon the current
\& directory.
\& \-c, \-\-check Check if a source package or directory (with a
\& source package or PGKBUILD in it) is outdated.
\& If so, then \-\-upload a new version.
\& \-n, \-\-name Specify a different username to login to the AUR,
\& instead of the last one used.
\& \-p, \-\-pass Specify a password to use to login to AUR.
\& \-m, \-\-mono Disable color output, use monochrome black/white.
\& \-i, \-\-inc Rebuild the source package, incrementing the
\& release number.
\&
\& (Unlike GNU options, single\-letter options need their own hyphens
\& example: \-u \-d)
.Ve
.SH DESCRIPTION
.IX Header "DESCRIPTION"
This is a utility made for creating and uploading perl packages for
the AUR (Archlinux User Repository). cpan2aur's simplest usage,
without any flags, creates AUR source packages:
.IP \(bu 4
If you specify a \fIModule::Name\fR we create a source package file in
the current directory.
.IP \(bu 4
If you specify a \fIdirectory\fR we will generate that template
directory's source package.
.SS TEMPLATES
.IX Subsection "TEMPLATES"
With the \fI\-d\fR or \fI\-\-directory\fR flag cpan2aur will create a
directory to contain the source package and generate a \f(CW\*(C`PKGBUILD.tt\*(C'\fR
template inside it. This is best when starting to maintain a new
AUR package that requires manual PKGBUILD tweaking.
.PP
Templates are a powerful way to make maintaining packages on the AUR
easier. Most of the time you will not have to update the PKGBUILD.tt
template, you will just use the \fI\-\-upload\fR flag on a source package
directory containing a template. This will convert the template
to a PKGBUILD by filling in the new info for the new CPAN version.
.SS UPLOADING
.IX Subsection "UPLOADING"
With the \fI\-u\fR or \fI\-\-upload\fR flag cpan2aur will upload a source
package to the AUR. It will try to Do The Right Thing (tm) for
command line arguments. Arguments can be source package files,
directories for source packages, or module/distribution names.
.PP
We store previous logins inside the file \f(CW\*(C`~/.cpan2aur\*(C'\fR. The last
username that was used will be retried. To use a different username,
use the \fI\-n\fR or \fI\-\-name\fR flag or delete the \f(CW\*(C`~/.cpan2aur\*(C'\fR file.
.SS "AUTOMATIC UPDATING"
.IX Subsection "AUTOMATIC UPDATING"
You can even use the \fI\-\-check\fR flag to check if a new version
of the perl distribution is available on CPAN. If it is, cpan2aur
will go through the \fI\-\-upload\fR process. This is done by checking
the versions of previously build .src.tar.gz files or PKGBUILDs.
.SH EXAMPLE
.IX Header "EXAMPLE"
For example, I keep a copy of the source packages I maintain inside my
\&\f(CW\*(C`~/aur\*(C'\fR directory. Some of these packages I have created directories
and PKGBUILD.tt files for, because they require more customization.
.PP
.Vb 6
\& [juster@virtuarch ~]$ cd ~/aur
\& [juster@virtuarch aur]$ ls
\& perl\-alpm\-0.05\-1.src.tar.gz perl\-text\-csv\-xs\-0.70\-1.src.tar.gz
\& perl\-sepia perl\-text\-xsv\-0.21\-1.src.tar.gz
\& perl\-text\-csv perl\-tkx
\& [juster@virtuarch aur]$
.Ve
.PP
Now to check and see if any of these packages need updating, I just use the
\&\-\-check flag to find new versions and upload them automatically.
.PP
.Vb 10
\& [juster@virtuarch aur]$ cpan2aur \-\-check perl\-*
\& ==> Checking if perl\-alpm\-0.05\-1.src.tar.gz is up to date...
\& ==> Looking up module for ALPM on CPAN...
\& perl\-alpm\-0.05\-1.src.tar.gz is up to date.
\& ==> Checking if perl\-sepia is up to date...
\& ==> Looking up module for Sepia on CPAN...
\& perl\-sepia is up to date.
\& ==> Checking if perl\-text\-csv is up to date...
\& ==> Looking up module for Text\-CSV on CPAN...
\& perl\-text\-csv is up to date.
\& ==> Checking if perl\-text\-csv\-xs\-0.70\-1.src.tar.gz is up to date...
\& ==> Looking up module for Text\-CSV_XS on CPAN...
\& perl\-text\-csv\-xs\-0.70\-1.src.tar.gz is up to date.
\& ==> Checking if perl\-text\-xsv\-0.21\-1.src.tar.gz is up to date...
\& ==> Looking up module for Text\-xSV on CPAN...
\& perl\-text\-xsv\-0.21\-1.src.tar.gz is up to date.
\& ==> Checking if perl\-tkx is up to date...
\& ==> Looking up module for Tkx on CPAN...
\& perl\-tkx is up to date.
\& [juster@virtuarch aur]$
.Ve
.PP
It's kind of boring since I don't have anything outdated to upload but
I hope you get the idea...
.SH "SEE ALSO"
.IX Header "SEE ALSO"
.IP \(bu 4
CPANPLUS::Dist::Arch
.IP \(bu 4
.SH AUTHOR
.IX Header "AUTHOR"
Created by: Justin Davis \f(CW\*(C`\*(C'\fR
.PP
Serendipitously maintained by: John D Jones III \f(CW\*(C`\*(C'\fR
.SH "COPYRIGHT & LICENSE"
.IX Header "COPYRIGHT & LICENSE"
Copyright 2010\-2015 Justin Davis, all rights reserved.
.PP
Copyright 2015 John D Jones III, all rights reserved
.PP
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.