Check-in [4191d9fe50]
Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | manpage and build script (for local deb/ template) |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
4191d9fe50361a09278abd540cd8417f |
User & Date: | mario 2014-02-07 19:42:57 |
Context
2014-02-08
| ||
01:42 | Updated format list to tbl in manpage check-in: 7a72fe8b4c user: mario tags: trunk | |
2014-02-07
| ||
19:42 | manpage and build script (for local deb/ template) check-in: 4191d9fe50 user: mario tags: trunk | |
19:42 | 3.2.1 check-in: 434454639c user: mario tags: trunk | |
Changes
Added 1.1.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | .\" Shadows openssl man page 1ssl version .\" .TH version "February 2014" "BSD/Linux" "User Manuals" .SH NAME version \- copy version numbers across source code files .SH SYNOPSIS .B version [ .BI action " file.name" ] [ .B action ] [ .IB "file.name " action ] .SH DESCRIPTION version is a commandline tool to extract version numbers from source code files, optionally modify it, write it back to source code, or synchronize package build scripts. It's regex based, and looks for the common x.y.z version style, including build/patch suffixes. For reading and writing from and to source code it considers file extensions to infer the type and constrained context / syntax to modify. .SH OPTIONS Action names may be prepended with a single - or double -- dash. .PP .B File actions Every valid filename will be treated as such. The order of action and filename is insignificant for those actions that consume it. .TP .BI get " file.name" Reads and prints version number from source file. .TP .BI read " file.name" Just reads a version number from source code. Does not print it. .TP .BI write " file.name" Updates a file. Depending on file type inserts the currently proccessed version number into appropriate code context / syntax. .TP .IB ... " last" Reuses the last consumed filename with a new action. For instance .BI read " file1.c " "write last" will update to where the read action did previously load from. .PP .B Version data After reading from a file, the version number is kept as current value for further actions. .TP .RB - show Outputs the version number. .TP .RB - incr / ++ Increments the decimal after the last version dot (commonly understood as the patch version). For instance 0.0.x or 0.0.0.y .TP .RB - bump Adds or increments the build suffix, as in x.x.x-1 .br Additional alphanumeric suffixes or subversioning schemes may occur thereafter, like 1.2.3-1dev_2 or 3.5-0beta_2.7, and are ignored by the -bump action. Also allows a .BI bump :: 2 count argument. .TP .IR 1 . 2 . 3 - 0alpha Any commandline argument that matches the common numeric version number format will be understood as current version, for later modification or writing elsewhere. .PP .B Miscellaneous options File actions may be preceded by a -format option, which takes two optional arguments separated by .BR : colons. And in addition to filenames, version numbers itself can be input sources. .TP .RB - format : name Specifies a file type or regex name. The type may be any known file extension, a list of file extensions, or an internal format name specifying just one constrained regex context / code syntax. .TP .RB - format :: count The second option rules on how many regex replacements in a target file may occur. Which constrains the default mode to just replacing the first allowed format and version number. It's useful to allow updating two occurences in different .BR --format : "docblock,var" : 2 variations and locations. Actually the --format action is a virtual action. And the optional arguments may as well be merged into .BR write : fmt : cnt or .BR read : fmt actions. .TP .RB - dry / nowrite This is a debugging option, which wakes writing operations non-destructive; but just outputs the modified target file. .SH EXAMPLES .TP .IB version " get" " file.c" Reads from filename and outputs found version number. .TP .IB version " read" " file.c" " write" " dist/header.c" Looks for the first version number, and writes it to another file where appropriate syntax was found. .TP .IB version " read" " file.php" " ++ write" " file.php" Increments patch version number, and updates file. .TP .IB version " -read" " file.php" " -incr -bump -write" : "_raw_" : 2 " readme.txt" Reads from source, updates patch version and release suffix, then writes to a text file using the _raw_ format (any version number without context checks will be updated) two times. .TP .IB "version src/file.php" " read and then " src/out.c " write The order of read/write actions and filenames may be reversed, "and" and "then" are just filler no-op commands. .LP .LP .IB VERSION=$( "version get file.name" ) .br .BI version " $VERSION " "write file.name" .in +.8i The version tool is meant to be utilized from build preparation scripts. While both actions can be done in one call, it's sometimes useful to keep the current $VERSION number in shell context (e.g. for adapting output filenames). .TP .IB version " get:php" " /usr/bin/version" Just shows the version of the version tool. .SH FORMATS .TP .RI "Common file extensions " php ", " py ", " cpp ", " c ", " json ", " sh ", " xml ", " spec " are understood and mapped already to " some " of the internal context / syntax formats (as implemented per regex):" .TP .BR debian " (Debian package control)" Version: 1.0.0 .TP .BR rpmspec " (RPM package spec)" %version 1.0.0 .TP .BR plugin " (generic/php plugin meta data format in " # " or " // " or " /** " blocks)" # version: 1.0.0 .TP .B docblock " (documentation version numbers)" * @version 1.0.0 .TP .B const " (constant declarations)" const VERSION = '1.0.0'; .TP .BR var " (scripting languages syntax)" $Xyz_version = "1.0.0"; .TP .BR define " (PHP constant syntax)" define("XYZ_VERSION", '1.0.0'); .TP .BR ini " (configuration files)" version = "1.0.0" .TP .BR python " (module numbers)" __version__ = "1.0.0" .TP .BR composer " (JSON)" { "version": "1.0.0", .TP .BR xmltag " (XML)" <version>1.0.0</version> .TP .BR _raw_ " (match anything)" This matches virtually anywhere, as it just applies the common version number syntax regex, but does not take any syntax context into account. .SH "SEE ALSO" .BR "http://semver.org/#" (2.0.0) |
Added mk.
> > > > > > > | 1 2 3 4 5 6 7 | #!/bin/sh gzip -c9 < 1.1 > deb/usr/share/man/man1/version.1.gz VERSION=$(version --read version.php --bump --show --write::2 version.php --write deb/DEBIAN/control) fakeroot dpkg-deb -b deb/ version_$VERSION.deb dpkg-sig -s builder -k include-once -v version_$VERSION.deb |