aboutsummaryrefslogtreecommitdiff
path: root/tests/new.testscript
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2019-08-08 14:23:51 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2019-08-12 14:32:26 +0200
commit67097bb095819072579994595a2e2cb6e0cd9600 (patch)
tree7a8c6ac3e87e81cec19f6293a30da9ffbff412df /tests/new.testscript
parent1bc3177c5acbddc96584004b86db82f489b78346 (diff)
Add support for creating new projects with existing files
We also recognize and handle the following existing entries in the project root: .git -- assume VCS is already initialized and is Git LICENSE -- try to guess the license from contents README.md -- try to extract the summary line from contents Overall, the idea is to streamline the workflow where one creates a project on one of the hosting services (GitHub, GitLab) and then initializes it with bdep-new. Also, to this effect, specifying the project name is now optional and if omitted the current working directory (or --output-dir, if specified) is assumed to be the project name. Here is an example of this workflow: $ # create project with LICENSE and README.md on Git hosting service $ git clone .../libhello.git $ cd libhello $ bdep new -t lib
Diffstat (limited to 'tests/new.testscript')
-rw-r--r--tests/new.testscript32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/new.testscript b/tests/new.testscript
index 8a6ff65..161fda1 100644
--- a/tests/new.testscript
+++ b/tests/new.testscript
@@ -230,6 +230,38 @@ status += -d prj
EOE
}
+ # Test create-from-existin functionality.
+ #
+ : exist
+ :
+ {
+ : basics
+ :
+ mkdir libfoo &!libfoo/;
+ git -C libfoo init -q;
+ cat <<EOI >=libfoo/README.md &!libfoo/README.md;
+ # libfoo
+
+ cool foo
+
+ Some more stuff.
+ EOI
+ cat <<EOI >=libfoo/LICENSE &!libfoo/LICENSE;
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ ...
+ EOI
+ $* -t lib --output-dir libfoo 2>>/"EOE" &libfoo/***;
+ created new library project libfoo in $~/libfoo/
+ EOE
+ test -f libfoo/.gitignore;
+ sed -n -e 's/^summary: (.+)$/\1/p' libfoo/manifest >'cool foo';
+ sed -n -e 's/^license: ([^ ]+).*$/\1/p' libfoo/manifest >'ASLv2'
+ }
+
: pkg
:
{