The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

orgsh - Navigate and manipulate in-memory Org document tree using a CLI shell

VERSION

version 0.001

SYNOPSIS

 % orgsh --help
 % orgsh [opts]

 orgsh> _

Load an Org document:

 orgsh> loadorg --as animals --source /home/budi/animals.org
 orgsh> loadorg animals /home/budi/animals.org

Load another Org document:

 orgsh> loadorg plants ~/plants.org

See loaded objects:

 orgsh> objects
 +-----------+---------------------------+-----+
 | name      | source                    | cwd |
 +-----------+---------------------------+-----+
 | animals   | /home/budi/animals.json   | /   |
 | plants    | /home/budi/plants.org     | /   |
 +-----------+---------------------------+-----+

Dump a loaded object:

 orgsh> dumpobj animals
 ...

Browse top-level children of a tree object:

 orgsh> setcurobj plants
 orgsh> ls -l
 ...

or:

 orgsh> ls -l --obj plants
 ...

Change "directory" to view another part of the tree (from hereon, please remember that you can set the object you want to work with with setcurobj command first, or specify the name of the object using --object option):

 orgsh> cd /dog
 orgsh> ls -l

Removing nodes of a tree object:

 orgsh> rm poo*

[NOT YET IMPLEMENTED] Reload an object from file (reverting all modifications):

 orgsh> reloadobj animals

[NOT YET IMPLEMENTED] Save a loaded object to file:

 orgsh> saveobj animals

[NOT YET IMPLEMENTED] Save a loaded object to another file:

 orgsh> saveobj animals /home/budi/animals-new.org

DESCRIPTION

This utility lets you navigate and manipulate in-memory Org tree objects. You can then browse the tree as if it were a filesystem, using command like cd and ls. You can prune nodes, add/modify nodes, as well as move/copy nodes around. You can save the changes back to file.

OPTIONS

  • --help-, -h, -?

    Show short help message and exit.

  • --version, -v

    Show version and exit.

COMMANDS

For now, use help command, or command --help.

SETTINGS

Settings are configuration and regulate how the shell behaves.

output_format => str (default: text)

Set output format for command results. The same formatting is used by Perinci::CmdLine. See that module or Perinci::Result::Format for more details.

debug_completion => bool (default: 0)

Whether to show debugging information when doing tab completion.

debug_time_command => bool (default: 0)

Whether to show how long a command takes.

FAQ

The prompt looks rather garbled (e.g. extra " m >" character)!

It looks to be an issue with Term::ReadLine::Perl. Try installing Term::ReadLine::Gnu instead.

How do I redirect output of command to files?

orgsh is meant to be a simple shell, not a full-blown Unix shell. So this feature is currently not implemented.

What about variables, aliases, looping, or $other_Unix_shell_feature?

Again, orgsh is meant to be a simple shell, not a full-blown Unix shell. So those features are currently not implemented.

ENVIRONMENT

ORGSH_HISTFILE => str (default: ~/.orgsh_history)

Specify location of command history file. Like in shells, can be set to empty string to disable history loading/saving.

ORGSHRC => str (default: ~/.orgshrc)

Specify location of settings file.

FILES

~/.orgsh_history

Command history file.

~/.orgshrc

Settings file (IOD format).

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2020 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.