# POSIX Summary: Work with common POSIX-compliant commands.. ## Available Commands ### append Append content to a file. Argument is the file name. - `content` (str): The content to be appended. ```ini [add to the log file] append: /path/to/file.log content: This is a test. ``` ### archive Create an archive (tarball). Argument is the target file or directory. - `absolute` (bool): Don't strip leading slashes from file names. Default `False` - `exclude` (str): Exclude file name patterns. - `file_name` (str): The name of the archive file. Default `archive.tgz` - `strip` (int): Strip component paths to the given depth. - `to_path` (str): The path to where the archive will be created. Default `.` - `view` (bool): View the progress. Default `False` ```ini [create an archive of the site] archive: /path/to/file_or_directory file_name: testing.tgz to: /tmp ``` ### certbot Alias: ssl Use Let's Encrypt (certbot) to acquire an SSL certificate. Argument is the domain name. - `email`: The email address for "agree tos". Default: `webmaster@domain_name` - `webroot`: The webroot to use. Default: `/var/www/maint/www` ```ini [get an SSL cert] ssl: example.app email: webmaster@example.app ``` ### copy Copy a file or directory. First argument is the target file/directory. Second argument is the destination. - `overwrite` (bool): Overwrite an existing target. - `recursive` (bool): Copy directories recursively. ```ini [copy a directory] copy: /path/to/directory /path/to/new_directory overwrite: yes recursive: yes ``` ### dir Create a directory. Argument is the path. - `group` (str): Set the group to the given group name. - `mode` (str): Set the mode on the path. - `owner` (str): Set the owner to the given owner name. - `recursive` (str): Create the full path even if intermediate directories do not exist. ```ini [create a directory] dir: /path/to/directory group: www-data mode: 755 owner: deploy recursive: yes ``` ### extract Extract an archive (tarball). Argument is the path to the archive file. - `absolute` (bool): Don't strip leading slashes from file names. Default `False` - `exclude` (str): Exclude file name patterns. - `strip` (int): Strip component paths to the given depth. - `to_path` (str): The path to where the archive will be created. Default `./` - `view` (bool): View the progress. Default `False` ```ini [extract an archive] extract: /path/to/archive.tgz ``` ### link Create a symlink. First argument is the source. - `force` (bool): Force creation of the link. - `target` (str): The location of the link. Defaults to the current directory and the base name of the source. ```ini [create a symlink] link: /path/to/project/releases/1.0 cd: /path/to/project force: yes target: current ``` ### move Move a file or directory. First argument is the target. Second argument is the desitnation. ```ini [move a file] move: /path/to/file.txt /new/path/to/file.txt ``` ### perms Set permissions on a file or directory. Argument is the path. - `group` (str): Set the group to the given group name. - `mode` (str): Set the mode on the path. - `owner` (str): Set the owner to the given owner name. - `recursive` (bool): Apply permission recursively (directories only). ```ini [set permissions on the shared directory] perms: /path/to/project/shared group: www-data mode: 775 owner: deploy recursive: yes ``` ### push Alias: rsync Push (rsync) a path to a remote server. First argument is the local path. Second argument is the remote path. - `delete` (bool): Delete existing files/directories. Default `False` - `host` (str): The host name. Required. - `key_file` (str): Use the given SSL (private) key. - `links` (bool): Copy symlinks. Default `True - `exclude` (str): Exclude patterns from the given (local) file. - `port` (int): The TCP port on the host. Default: `22` - `recursive` (bool): Operate recursively on directories. - `user` (str): The username. ```ini [push the project to the server] push: /path/to/project /path/on/server key_file: ~/.ssh/example_app host: example.app user: deploy ``` ### remove Remove a file or directory. Argument is the path. - `force` (bool): Force the removal. Default `False` - `recursive` (bool): Remove all directories in the path. Default `False` ```ini [remove a directory] remove: /path/to/directory force: yes recusrive: yes ``` ### replace Replace something in a file. First argument is the path. - `backup`: Backup file extension. Default `.b` - `delimiiter`: The sed delimiter. Default: `/` - `find`: The text to be found. Required. - `sub`: The text to be replaced. Required. ```ini [replace text in a file] replace: /path/to/file.txt find: testing sub: 123 ``` ### scopy Copy a file to a remote server. First argument is the local file name. Second argument is the remote destination. - `key_file` (str): The private key file to use for the connection. - `host` (str): The host name. Required. - `port` (int): The TCP port. Default: `22` - `user` (str): The username. Required. ```ini [copy a file to the server] scopy: /path/to/local.txt path/to/remove.txt host: example.app user: deploy ``` ### sync Sync (rsync) local files and directories. First argument is the target. Second argument is the destination. - `delete` (bool): Delete existing files/directories. - `links` (bool): Copy symlinks. - `exclude` (str): Exclude patterns from the given (local) file. - `recursive` (bool): Operate recursively on directories. ```ini [syncrhonize files on the local machine] sync: /path/to/project /path/to/sync/directory ``` ### touch Touch a file, whether it exists or not. Argument is the path. ```ini [touch a file] touch: /path/to/file.txt ``` ### wait Wait for n number of seconds before continuing. Argument is the number of seconds. ```ini [wait just a minute] wait: 60 ``` ### write Write to a file. Argument is the path. - `content` (str): The content to write to the file. Replaces existing content. ```ini [replace an existing file] write: /path/to/file.txt content: This whole file has been replaced. ```