TaskPipe::Tool::Command_Setup - the TaskPipe setup command
Setup is intended to be run once immediately after running package install (ie after installing the modules with cpan, cpanm or manually with make). Setup creates the directories TaskPipe will use to store projects, and deploys the global configuration files.
cpan
cpanm
make
You need to specify a value for root_dir at a minimum, e.g.:
root_dir
taskpipe setup --root_dir=/home/myusername/taskpipe
Subdirectories can also be specified on the command line, but will take defaults otherwise. (See options section below for default values)
You can also use setup to regenerate global directories and/or default global config files if you want to change overall directory structure or reset the global config files to factory defaults. Use with caution. Setup will not overwrite files or directories that already exist - it will ignore them. So you should delete the directories/files you want to regenerate prior to running setup.
You may be looking at this help because you want to know how to setup TaskPipe in general. In fact the command taskpipe setup does not completely setup TaskPipe on your system (sorry!) mainly because TaskPipe doesn't immediately know how to connect to your database.
taskpipe setup
taskpipe setup installs the skeleton directory structure and the global config file. You should run taskpipe setup immediately after install, because taskpipe needs to find the global config file to be able to do anything further.
taskpipe
A suggested workflow to achieve a full setup and working projects is as follows:
Do this using the cpan shell, cpanp, cpanm etc. or manually using make:
cpanp
perl Makefile.PL make make test make install
If you are reading this using the taskpipe help setup command, you have already successfully completed this step.
taskpipe help setup
setup
taskpipe setup --root_dir=~/taskpipe
The /taskpipe subdirectory inside your home directory is the suggested location to install TaskPipe and these docs will tend to assume this is your install location. However, any location where you have full read/write permissions is good.
/taskpipe
Note that TaskPipe installs a hidden file .taskpipe in your home directory which will store the path to your TaskPipe install. You need to make sure TaskPipe can create this file and it remains in place and readable.
.taskpipe
TaskPipe
Once you have run setup, you should find the following directory structure is created
/taskpipe /global /conf global.conf /lib /projects
To do this
Create the database that you are going to use for TaskPipe global tables. E.g. in MySQL
CREATE DATABASE taskpipe_global;
Edit the global config file to tell TaskPipe which database to use.
nano ~/taskpipe/global/conf/global.conf
Look for the section TaskPipe::SchemaManager::Settings_Global and fill in host, name etc. for your database. Make sure the database user account you specified has full privileges to your TaskPipe global database.
TaskPipe::SchemaManager::Settings_Global
host
name
Run deploy tables:
deploy tables
taskpipe deploy tables --scope=global
More comprehensive information on this step can be found in the help for deploy tables.
Generate global database schema files. TaskPipe uses the DBIx::Class ORM, and schema files need creating over each database being used. To do this, you should just be able to type:
DBIx::Class
taskpipe generate schema --scope=global
Schema files will be generated into the global lib dir (normally /global/lib).
/global/lib
More comprehensive information on this step can be found in the help for generate schema
generate schema
To do this for a new project called myproject:
myproject
Edit the global config file and change project to myproject in the section TaskPipe::PathSettings::Global. This basically means you have set myproject as the default project, so that you don't need to type --project=myproject each time you execute a project-related TaskPipe command at the terminal.
project
TaskPipe::PathSettings::Global
--project=myproject
Deploy project files:
taskpipe deploy files
See the help for deploy files for more comprehensive information on this step.
deploy files
Create a database to use for this project. E.g. in MySQL:
CREATE DATABASE myproject;
Make sure your database user account has full privileges to this database. E.g. in MySQL
GRANT ALL PRIVILEGES ON myproject.* TO 'taskpipe_user'@'localhost';
Edit the project config file and change the database connection information (host, name, ...) to match the project database. (Look for the section TaskPipe::SchemaManager::Settings_Project in your project config file (usually found in the /projects/myproject/conf/project.yml file.
TaskPipe::SchemaManager::Settings_Project
/projects/myproject/conf/project.yml
Deploy the project cache tables:
taskpipe deploy tables
See the help for deploy tables for more comprehensive information on this step.
Create the project itself. A project consists of several tasks, a plan of how to execute those tasks and some database tables to store gathered data. This is the meat and potatoes of TaskPipe, and here it is up to you to be creative. See the general instructions by reading the manpage for the TaskPipe module or typing
taskpipe help taskpipe
on the command line for more information on how to create projects.
Run generate schema over your project to create the project schema files
taskpipe generate schema
See the help for generate schema for more information.
Run your plan and gather your data:
taskpipe run plan
See the help for run plan for more information on this step.
run plan
The base directory where all TaskPipe files and subdirectories should be installed. This parameter is required.
Tom Gracey <tomgracey@gmail.com>
Copyright (c) Tom Gracey 2018
TaskPipe is free software, licensed under
The GNU Public License Version 3
To install TaskPipe, copy and paste the appropriate command in to your terminal.
cpanm TaskPipe
CPAN shell
perl -MCPAN -e shell install TaskPipe
For more information on module installation, please visit the detailed CPAN module installation guide.