NOTICE
The development is halted indefinitely as the author discovered the
built-in CMake support is so much better in certain IDEs (Clion, and at
the time of this writing, the upcoming Visual Studio 2017) and in the
author's opinion it is also much more productive when working with certain
IDEs compared with the old-school text-editor plus miscellaneous tools
approach; feel free to use certain vi emulator plugins in those IDEs if you
think the default text editing capability is severvely limited.
Skaff is a Python library for building programming language dependent
scaffolding of software projects, and a command-line tool that uses this
library with built-in (CMake-based) C/C++ support.
Click any of the following badges to see details.
To create a project directory named nihil:
skaff nihil
Show usage help by:
skaff --help
For the detailed command-line reference manual, use man as usual:
man 1 skaff
A few more examples along with its detailed developers' documentation
will be
given on ReadTheDocs
later on.
Before version v0.5 this project is in alpha stage, there may be
serious bugs.
Beta stage starts at v0.5 at which point all the necessary test
cases would be added.
Once the version number gets to v1.0 it goes out of beta stage and
would be released on PyPI as well; more
features may be added later on.
The change log can be viewed here.
- Python 3.5+
- Setuptools 20.0+
Once downloaded, make sure the version of python is at least 3.5:
which python3 && python3 --version
And also remember to have python3-setuptools installed:
Ubuntu (>= 16.04)
sudo apt-get install python3-setuptools
FreeBSD (>= 10.3)
The pkg package manager requires a specific version number; unlike the
Ubuntu linux distribution listed above, so either install a version that
supports python version 3.5 or use the following command to install the
most recent version:
sudo pkg install `pkg search -ce 'Python packages installer' | sort | awk 'END{print $1}'`
To ensure there are no problems caused by Python version skew, run the
bundled unit test suite (done automatically by the continuous integration
system):
python3 ./setup.py test
As mentioned in the Versioning section, for now the only way to get the
package is here as well as the
BitBucket mirror;
there is no binary (or compiled-bytecode, if you prefer) package
available.
First grab the source code from here and then simply change directory to
where the un-compressed source directory resides and install by:
sudo python3 ./setup.py install --optimize 1 --record install_log.txt
Alternatively, to install (mininal changes to the file system: only a single
python script pointing to the 'cli.py' executable of source directory is
actually installed to one of the system $PATH; manual pages and
system-wide configuration files are not installed) the development version:
sudo python3 ./setup.py develop
To try out the program without installing anything, simply treat it as an
ordinary Python package (note this method is preferred if you are using Windows since the setup.py script would fail):
python3 -m skaff.cli -h
To uninstall the skaff program along with its data and manual pages
(before doing so, make sure there is no whitespace character in all the
paths recorded in the install_log.txt file created by the previous
install pass; you have been warned):
cat install_log.txt | sudo xargs rm -rf
sudo mandb
To uninstall the development version:
sudo python3 ./setup.py develop --uninstall
which skaff && sudo rm `which skaff`
- Linux
- FreeBSD
- Mac OS X (haven't tested, but I see no reason why it doesn't work)
- Windows (only 10 is tested)
- CMake is developed and maintained by Kitware.
- The colorscheme of Skaff's logo is inspired by this example.
- The BSD-2-Clause badge is from here.
- Inkscape is used to design the original SVG format logo.
- Motivation from Douglas Mcilroy: "As a programmer, it is your job to put yourself out of business. What you do today can be automated tomorrow."
Copyright © 2016, Jiahui Xie
Licensed under the BSD 2-Clause
License.
Distributed under the BSD 2-Clause
License.