{ "info": { "author": "Py-3", "author_email": "vaishsha@adobe.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3" ], "description": "# PY_3\r\nImplementation of simple UNIX like shell using Python.\r\n\r\nMain module is commands.py and for running the shell using the command \r\n```bash\r\npython commands.py\r\n```\r\n\r\nAll commands are implemented as separated modules which are present in different files with the filename same as the name of the command.\r\n\r\n# SUPPORTED COMMANDS\r\n - Directory related commands \r\n - `ls`: list directory contents\r\n - `mkdir`: make directories\r\n - `pwd`: return working directory name\r\n - `rmdir`: remove directories\r\n - `cd`: change current working directory\r\n\r\n - FileDirectory related commands\r\n - `cat`: concatenate and print files\r\n - `cp`: copy files\r\n - `rm`: remove directory links\r\n - `mv`: move files\r\n - `grep`: file pattern searcher\r\n - `head`: display first lines of a file\r\n - `tail`: display the last part of a file\r\n - `sizeof`: size of file\r\n - `find`: walk a file hierarchy\r\n\r\n - Built-in commands\r\n - `date`: display date or time\r\n - `whoami`: display effective user id\r\n - `hostname`: print hostname of current host system\r\n - `timeit`: measures execution time\r\n - `exit`: terminate the shell\r\n - `history`: previous commands\r\n - `Ctrl-C` signal handling \r\n\r\n# Unittest\r\n\r\nUnittest module is used for testing for the entire shell. The unittest unit testing framework was originally inspired by JUnit and has a similar flavor as major unit testing frameworks in other languages. test_file.py has test for the modules in it.\r\n\r\nExample:\r\n```bash\r\npragyas-mbp-2:PY_3 pragkuma$ python test_file.py\r\n----------------------------------------------------------------------\r\nRan 22 tests in 0.112s\r\nOK\r\n```\r\n\r\n# Input/Output Format\r\n\r\nInput from the 'stdin' in an infinite loop till an \u201cexit\u201d is entered.\r\nThe corresponding output should be printed to 'stdout'.\r\n\r\nExample:\r\n\r\n```bash\r\npragyas-mbp-2:PY_3 pragkuma$ python commands.py \r\nMyShell> find . -name grep\r\n./grep\r\nMyShell> date -u\r\nMon Aug 5 09:14:11 UTC 2019\r\nMyShell> whoami\r\npragkuma\r\nMyShell> sizeof hostname.py\r\n2278 bytes\r\nMyShell> exit\r\nexiting prompt\r\n```\r\n\r\n# Help/Usage of command\r\n\r\nWrite the name of the command followed by --help in order to get the usage of the command.\r\n\r\nExample:\r\n\r\n```bash\r\nMyShell> find --help\r\nusage: \r\nNAME\r\n find -- walk a file hierarchy\r\nDESCRIPTION\r\n The find utility recursively descends the directory tree for each path listed,\r\n evaluating an expression (composed of the ``primaries'' and ``operands'' listed below)\r\n in terms of each file in the tree.\r\n\r\n [-h] [-name NAME] [args [args ...]]\r\n\r\npositional arguments:\r\n args enter the filenames\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n -name NAME, --name NAME\r\n expression determines what to find\r\n```\r\n\r\n\r\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://git.corp.adobe.com/pragkuma/PY_3", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "Adobe-cli", "package_url": "https://pypi.org/project/Adobe-cli/", "platform": "", "project_url": "https://pypi.org/project/Adobe-cli/", "project_urls": { "Homepage": "https://git.corp.adobe.com/pragkuma/PY_3" }, "release_url": "https://pypi.org/project/Adobe-cli/0.1/", "requires_dist": null, "requires_python": "", "summary": "A linux-like shell", "version": "0.1" }, "last_serial": 5633601, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d2f6ea7118441ee2fc37562e2c78c710", "sha256": "251f6be3692ea12cf3f3a42c12b443855f0a380f33c2d9b3de69d86d1a32abf2" }, "downloads": -1, "filename": "Adobe_cli-0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d2f6ea7118441ee2fc37562e2c78c710", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3421, "upload_time": "2019-08-05T10:33:31", "url": "https://files.pythonhosted.org/packages/9a/b9/20263298d588874016661dc38cad743cba4c8281ebf4e2d1919fbea15303/Adobe_cli-0.1-py2-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d2f6ea7118441ee2fc37562e2c78c710", "sha256": "251f6be3692ea12cf3f3a42c12b443855f0a380f33c2d9b3de69d86d1a32abf2" }, "downloads": -1, "filename": "Adobe_cli-0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d2f6ea7118441ee2fc37562e2c78c710", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3421, "upload_time": "2019-08-05T10:33:31", "url": "https://files.pythonhosted.org/packages/9a/b9/20263298d588874016661dc38cad743cba4c8281ebf4e2d1919fbea15303/Adobe_cli-0.1-py2-none-any.whl" } ] }