installation instructions, tzk preflight
This commit is contained in:
parent
97a4611d56
commit
e0ce707894
15
docs/configuration.rst
Normal file
15
docs/configuration.rst
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
===============
|
||||||
|
Configuring tzk
|
||||||
|
===============
|
||||||
|
|
||||||
|
Change into a directory you'd like to use as your Zettelkasten repository.
|
||||||
|
The directory should be empty, so you'll probably want to create a new one, e.g.:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ mkdir my_zettelkasten
|
||||||
|
$ cd my_zettelkasten
|
||||||
|
```
|
||||||
|
|
||||||
|
Run ``tzk init``.
|
||||||
|
This will install TiddlyWiki,
|
||||||
|
set up a Git repository,
|
@ -1,7 +1,7 @@
|
|||||||
tzk
|
tzk
|
||||||
===
|
===
|
||||||
|
|
||||||
**tzk** (pronounced /tə.zɪːk/)
|
**tzk** (pronounced /tə'zɪːk/)
|
||||||
is a custom build tool and utility CLI
|
is a custom build tool and utility CLI
|
||||||
for Soren Bjornstad's Zettelkasten edition of TiddlyWiki.
|
for Soren Bjornstad's Zettelkasten edition of TiddlyWiki.
|
||||||
|
|
||||||
@ -9,6 +9,7 @@ for Soren Bjornstad's Zettelkasten edition of TiddlyWiki.
|
|||||||
:maxdepth: 3
|
:maxdepth: 3
|
||||||
:caption: Contents
|
:caption: Contents
|
||||||
|
|
||||||
|
installation
|
||||||
operations
|
operations
|
||||||
|
|
||||||
|
|
||||||
|
66
docs/installation.rst
Normal file
66
docs/installation.rst
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
==============
|
||||||
|
Installing tzk
|
||||||
|
==============
|
||||||
|
|
||||||
|
|
||||||
|
tzk itself
|
||||||
|
==========
|
||||||
|
|
||||||
|
On most systems, tzk may be installed directly from pip at a command line:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ pip install tzk
|
||||||
|
```
|
||||||
|
|
||||||
|
If you don't have Python 3.6 or greater on your computer,
|
||||||
|
you'll need to install it first.
|
||||||
|
If you aren't sure how to do that,
|
||||||
|
here's an `exhaustive guide`_ to installing Python on all major operating systems.
|
||||||
|
Once you've gotten Python installed,
|
||||||
|
you'll be able to use ``pip`` to install tzk as described above.
|
||||||
|
|
||||||
|
To check your work, run ``tzk --version``;
|
||||||
|
you should see a version number rather than an error,
|
||||||
|
something like:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ tzk --version
|
||||||
|
1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
.. _exhaustive guide: https://realpython.com/installing-python/#how-to-install-python-on-macos
|
||||||
|
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
In order to set up your Zettelkasten,
|
||||||
|
you'll also need ``npm`` and ``git``.
|
||||||
|
You can check if they're installed like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ npm --version
|
||||||
|
7.20.6
|
||||||
|
$ git --version
|
||||||
|
git version 2.32.0
|
||||||
|
```
|
||||||
|
|
||||||
|
Your versions will likely be a little different by the time you read this.
|
||||||
|
As long as you get a version number, you're good;
|
||||||
|
tzk does not use any features of either tool that require bleeding-edge versions.
|
||||||
|
|
||||||
|
If you don't have **npm**,
|
||||||
|
follow step 1 of the Node.js installation instructions in the `TiddlyWiki documentation`_.
|
||||||
|
You can skip all the remaining steps -- tzk takes care of that part for you.
|
||||||
|
|
||||||
|
If you don't have **git**,
|
||||||
|
follow the steps in the `Installing Git`_ section of Pro Git.
|
||||||
|
|
||||||
|
.. _TiddlyWiki documentation: https://tiddlywiki.com/#Installing%20TiddlyWiki%20on%20Node.js
|
||||||
|
.. _Installing Git: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
|
||||||
|
|
||||||
|
|
||||||
|
Checking your work
|
||||||
|
==================
|
||||||
|
|
||||||
|
Run ``tzk preflight`` to double-check that everything is correctly installed.
|
4
setup.py
4
setup.py
@ -22,6 +22,8 @@ setuptools.setup(
|
|||||||
"Programming Language :: Python :: 3",
|
"Programming Language :: Python :: 3",
|
||||||
"Programming Language :: Python :: 3.6",
|
"Programming Language :: Python :: 3.6",
|
||||||
"Programming Language :: Python :: 3.7",
|
"Programming Language :: Python :: 3.7",
|
||||||
|
"Programming Language :: Python :: 3.8",
|
||||||
|
"Programming Language :: Python :: 3.9",
|
||||||
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
||||||
"Operating System :: OS Independent",
|
"Operating System :: OS Independent",
|
||||||
],
|
],
|
||||||
@ -30,5 +32,5 @@ setuptools.setup(
|
|||||||
"tzk = tzk.__main__:launch"
|
"tzk = tzk.__main__:launch"
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
python_requires='>=3.8',
|
python_requires='>=3.6',
|
||||||
)
|
)
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
from abc import ABC, abstractmethod, abstractclassmethod
|
from abc import ABC, abstractmethod, abstractclassmethod
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
import shutil
|
|
||||||
import sys
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
@ -9,7 +8,7 @@ from typing import Optional
|
|||||||
from tzk.config import cm
|
from tzk.config import cm
|
||||||
from tzk import git
|
from tzk import git
|
||||||
from tzk import tw
|
from tzk import tw
|
||||||
from tzk.util import BuildError, fail, numerize
|
from tzk.util import BuildError, fail, numerize, require_dependencies
|
||||||
|
|
||||||
|
|
||||||
class CliCommand(ABC):
|
class CliCommand(ABC):
|
||||||
@ -141,13 +140,7 @@ class InitCommand(CliCommand):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def _precheck(self):
|
def _precheck(self):
|
||||||
if shutil.which("npm") is None:
|
require_dependencies()
|
||||||
fail("TZK requires NPM. Please install NPM and make it available on your PATH.\n"
|
|
||||||
"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm")
|
|
||||||
|
|
||||||
if shutil.which("git") is None:
|
|
||||||
fail("TZK requires Git. Please install Git and make it available on your PATH.\n"
|
|
||||||
"https://git-scm.com/book/en/v2/Getting-Started-Installing-Git")
|
|
||||||
|
|
||||||
if os.path.exists("package.json"):
|
if os.path.exists("package.json"):
|
||||||
fail("A 'package.json' file already exists in the current directory. "
|
fail("A 'package.json' file already exists in the current directory. "
|
||||||
@ -158,6 +151,20 @@ class InitCommand(CliCommand):
|
|||||||
tw.install(args.wiki_name, args.tiddlywiki_version_spec, args.author)
|
tw.install(args.wiki_name, args.tiddlywiki_version_spec, args.author)
|
||||||
|
|
||||||
|
|
||||||
|
class PreflightCommand(CliCommand):
|
||||||
|
cmd = "preflight"
|
||||||
|
help = "Check if tzk and all its dependencies are correctly installed."
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setup_arguments(cls, parser: argparse.ArgumentParser) -> None:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def execute(self, args: argparse.Namespace) -> None:
|
||||||
|
require_dependencies()
|
||||||
|
print("You're all set! Change into a directory you want to "
|
||||||
|
"turn into your tzk repository and run 'tzk init'.")
|
||||||
|
|
||||||
|
|
||||||
class BuildCommand(CliCommand):
|
class BuildCommand(CliCommand):
|
||||||
cmd = "build"
|
cmd = "build"
|
||||||
help = ("Build another wiki or derivative product, "
|
help = ("Build another wiki or derivative product, "
|
||||||
|
15
tzk/util.py
15
tzk/util.py
@ -3,6 +3,7 @@ util.py - miscellaneous utility functions
|
|||||||
"""
|
"""
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
from typing import NoReturn
|
from typing import NoReturn
|
||||||
|
|
||||||
@ -40,3 +41,17 @@ def pushd(directory: str):
|
|||||||
yield
|
yield
|
||||||
finally:
|
finally:
|
||||||
os.chdir(old_directory)
|
os.chdir(old_directory)
|
||||||
|
|
||||||
|
def require_dependencies() -> None:
|
||||||
|
"""
|
||||||
|
Raise an exception if dependencies of tzk aren't available.
|
||||||
|
"""
|
||||||
|
if shutil.which("npm") is None:
|
||||||
|
fail("npm is not available. "
|
||||||
|
"Please install NPM and make it available on your PATH.\n"
|
||||||
|
"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm")
|
||||||
|
|
||||||
|
if shutil.which("git") is None:
|
||||||
|
fail("Git is not available. "
|
||||||
|
"Please install Git and make it available on your PATH.\n"
|
||||||
|
"https://git-scm.com/book/en/v2/Getting-Started-Installing-Git")
|
Loading…
Reference in New Issue
Block a user