Skip to content
dantleech edited this page Feb 15, 2014 · 7 revisions

Run commands directly

$ phpcr node:set-property foo bar --node-path=/cms/foo # perform node operation
$ phpcr node:set-property foo bar --node-path=/cms/foo --transport=mysql --db-name=mydb
$ phpcr workspace create foobar
$ phpcr # initiazte shell

Note that phpcr node:* commands are operate on the current node path (CNP) in the shell, and so require the --node-path option in standalone mode.

API Map

The shell should provide full access to the PHPCR implementation.

Repository

repository:get-descriptors      : Repository::{getDescriptorKeys,getDescriptor,isStandardDescriptor)
````

Session
-------

````
session:export:document-view                  : Session::exportDocumentView 
session:export:system-view                    : Session::exportSystemView 
session:import parent_abs_path uri --uid_behavior=[create_new,collision_remove_existing,collision_replace_existing,collision_throw]      
                                              : Session::exportSystemView 
session:info                                  : Session::{Session::getItem, getAAtribute,getAttributeNames,getRepository,getUserID,getWorkspace}
session:node:show                             : Session::{getNode,getNodeByIdentifier,getProperties,getProperty}
session:node:move src_abs_path dest_abs_path  : Session::{getNode,getNodeByIdentifier,getProperties,getProperty}
session:property:show                             : 
session:namespace:list                        : Session::{getNamespacePrefixes,getNamespaceURI,getNamespacePrefix}
session:namespace:set prefix uri              : Session::setNamespacePrefixes
session:logout                                : Session::logout
session:refresh                               : Session::refreshA
session:item:remove                           : Session::removeItem
session:save                                  : Session::save
session:impersonate username [attributes]     : Session::impersonate
````

Retention
---------

````
retention:hold:list  abs_path               : RetentionManager::getHolds
retention:hold:add   abs_path name --deep   : RetentionManager::addHold
retention:hold:remove  abs_path name        : RetentionManager::removeHold
retention:policy:get abs_path               : RetentionManager::getRetentionPolicy
````

Access Control
--------------

````
acm:privilege:list abs_path                        : AccessControlManager::getSupportedPrivleges
acm:policy:list abs_path --effective --applicable  : AccessControlManager::{getApplicablePolicies,getEffectivePolicies,getPolicies}
acm:privilege:list abs_path --supported            :
acm:session:privilege:list                         : AccessControlManager::getPrivleges
````

Workspace
---------

````
workspace:node:copy src_abs_path dest_abs_path src_workspace 
                                                   : Workspace::copy
workspace:node:clone-from src_workspace src_abs_path dest_abs_path --remove-existing
                                                   : Workspace::copy
workspace:create name                              : Workspace::create
workspace:delete name                              : Workspace::delete
workspace:list                                     : Workspace::getAccessibleWorkspaceNames
workspace:info                                     : Workspace::getName
workspace:query QUERY --lang=<lang>                : QueryManager::{createQuery,QueryManager::getSupportedQueryLanguages}
````

Node Type
---------

Note the create and edit commands will open an external EDITOR as defined by the environment

````
node-type:show node_type_name            : NodeTypeManager::getNodeType
node-type:list  --primary --mixin        : NodeTypeManager::{getAllNodeType,getPrimaryNodeTypes,getMixinNodeTypes}
node-type:create node_type_name          : NodeTypeManager::{registerNodeTypesCnd}
node-type:edit node_type_name            : NodeTypeManager::{registerNodeTypesCnd}
node-type:load cnd_path --allow-update   : NodeTypeManager::{registerNodeTypesCnd}
node-type:unregister node_type_name      : NodeTypeManager::unregisterNodeType
````

Version
-------

Can we reference versions by a hash? == VersionHistoryInterface::getVersionableIdentifier

````
version:checkin abs_path                 : VersionManager::checkin
version:checkout abs_path                : VersionManager::checkout
version:checkpoint abs_path              : VersionManager::checkpoint

version:history abs_path                                 : VersionManager::versionHistory
version:show abs_path --id=<id> --label=<label>   : VersionManager::getVersion,VersionInterface::getFrozenNode,VersionHistoryInterface::getAllLinearFrozenNodes
version:remove <id>
version:remove-label <label>
````

Node
----

All node operations take place in CWD

````
node:create [name] --before=<node_name>  : Node::{addNode,addNodeAutoNamed}
node:reorder dest_child_rel_path         : Node::orderBefore
node:rename new_name                     : Node::rename
node:set name value type                 : Node::setProperty
node:info                                : Node::{getIdentifier,getPath,getIndex,getPrimaryNodeType,getMixinNodeTypes,isCheckedOut}
node:definition                          : Node::{getDefinition}
node:references <name> --weak            : Node::{getReferences,getWeakReferences}
node:list --children --properties        : Node::{getNodes,getProperties,getNodeNames}                   
node:type:set-primary                    : Node::setPrimaryType
node:type:mixin-add <mixin_name>         : Node::addMixin
node:type:mixin-remove <mixin_name>      : Node::removeMixin
node:workspace:corresponding workspace_name        : Node::getCorrespondingNodePath
node:workspace:update workspace_name               : Node::update
node:shared:show                              : Node::getSharedSet
node:shared:remove                            : Node::removeSharedSet
node:lifecycle:follow-transition <transition> : Node::followLifecycleTransition
node:lifecycle:list                           : Node::getAllowedLifecycleTransitions
````

Lock
----

````
lock:add-token <name>              : LockManager::addLockToken
lock:remove-token <name>           : LockManager::removeToken
lock:get <abs_path>                : LockManager:get
lock:info <abs_path>               : LockManager:holdsLock,isLocked
lock:lock <abs_path> --deep --session-scoped --timeout-hint=<seconds> --owner-info=<string>
lock:unlock <abs_path>
````
Clone this wiki locally