跳转到主要内容

用于处理根目录内组织的项目和应用程序的实用工具。

项目描述

## 简介

这个想法受到Git和Django的启发,它们假设项目是组织在目录中的。许多其他应用程序和项目也以这种方式工作,如Ruby on Rails和Maven。

许多项目,如源代码仓库、Web应用程序等,存储代码、配置、脚本、虚拟环境等的相对位置,相对于项目或应用程序的根目录。

当执行脚本、应用程序、可执行文件、二进制文件、程序或命令时,它需要找到它应该操作的项目根目录。例如,git status 只在从git存储库内部调用时才工作。或者,Django manage.py 脚本可以在任何地方运行,但它知道要操作其所在的位置的Web应用程序。

项目命令中可以看到两个子组织原则,它们围绕如何找到项目的根目录

  • 在“cwd”方法中,以git为例,代码和可执行文件根据当前工作目录找到项目。例如,要在git存储库中工作,必须首先通过cd到存储库目录树中的某个位置。

  • 在“which”方法中,以django manage.py 脚本为例,代码和可执行文件根据可执行文件本身的路径找到项目。例如,django manage.py 脚本期望位于项目的根目录中。

“cwd”方法的一个优点是,可以使用一组二进制文件与多个项目一起使用。

“which”方法的优点之一是可以从任何地方运行二进制文件。另一个优点是每个项目都可以关联不同的代码/二进制文件版本。这对于部署应用程序的多个版本非常有用。

## 贡献

欢迎在GitHub上提交pull request。

## 要求

  • 可能是Python 2.7(因为这是唯一经过测试的版本。)

## 安装

### 从pypi.python.org安装

使用pip下载和安装

pip安装projd

### 从github.com安装

使用GitHub,可以克隆并安装特定版本的软件包

cd ~ git clone git@github.com:todddeluca/projd.git cd projd python setup.py install

或使用pip

pip install git+git://github.com/todddeluca/projd.git#egg=projd

## 使用

有两个函数可以根据包含特定标记的根目录来查找项目的根目录,一个是基于当前工作目录的。

例如,要找到git仓库的根目录,可以这样操作

import projd root = projd.cwd_token_dir(‘.git’)

要找到包含正在执行的脚本的项目的根目录(类似于django manage.py文件的工作方式),可以这样操作

import projd root = projd.script_token_dir(‘.git’)

支持