From c1b0a209d1c9f1a387b72d71927c2ef3b0a7ac64 Mon Sep 17 00:00:00 2001 From: Haseeb Qureshie Date: Sun, 8 Dec 2024 09:40:53 +0100 Subject: [PATCH 1/5] Added index_list files, still needs fixes --- .../cheerpx/src/assets/index_list_example.png | Bin 0 -> 28906 bytes .../docs/11-guides/File-System-support.md | 2 + .../docs/12-reference/21-index.list.md | 147 ++++++++++++++++++ 3 files changed, 149 insertions(+) create mode 100644 sites/cheerpx/src/assets/index_list_example.png create mode 100644 sites/cheerpx/src/content/docs/12-reference/21-index.list.md diff --git a/sites/cheerpx/src/assets/index_list_example.png b/sites/cheerpx/src/assets/index_list_example.png new file mode 100644 index 0000000000000000000000000000000000000000..df2dd4947ec0ac71141b736a146bfe849706f342 GIT binary patch literal 28906 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 literal 0 HcmV?d00001 diff --git a/sites/cheerpx/src/content/docs/11-guides/File-System-support.md b/sites/cheerpx/src/content/docs/11-guides/File-System-support.md index c9cf028d..06ab0531 100644 --- a/sites/cheerpx/src/content/docs/11-guides/File-System-support.md +++ b/sites/cheerpx/src/content/docs/11-guides/File-System-support.md @@ -36,6 +36,8 @@ This mounts the specified local directory at `/web` in the CheerpX filesystem. To be able to list the files, CheerpX will look for a file called index.list in the directory and each of its subdirectories. The file should contain a newline separated list of all files and folders contained in the directory. +For detailed information about the purpose and usage of index.list, refer to the [index.list](/docs/index_list) reference. + ### Accessing Files Files in the WebDevice are accessed relative to the current page's URL. For example, if your current page is `https://host/dir1/dir2/page.html`, then: diff --git a/sites/cheerpx/src/content/docs/12-reference/21-index.list.md b/sites/cheerpx/src/content/docs/12-reference/21-index.list.md new file mode 100644 index 00000000..3d5eed31 --- /dev/null +++ b/sites/cheerpx/src/content/docs/12-reference/21-index.list.md @@ -0,0 +1,147 @@ +--- +title: Index.list +description: Purpose and usage of index.list +--- + +## What is `index.list` + +The index.list file serves as a directory index for a WebDevice in CheerpX. It lists all files and subdirectories within the directory where it resides. + +## Purpose of index.list + +The primary purpose of index.list is to: + +- Enable the use of functions like os.listdir() to list directory contents. +- Provide seamless navigation of nested directories and files in the WebDevice. +- Ensure that CheerpX can recognize and display file structures for applications running in the virtual Linux environment. + +## Structure of `index.list` + +The `index.list` file contains a newline-separated list of all files and directories in the current directory. + +### Example directory structure + +Assume the directory structure is as follows: + +```bash +/web/ +├── index.list +├── main.py +├── data.txt +└── scripts/ + ├── index.list + └── helper.py +``` + +**Content of** `/web/index.list`: + +``` +main.py +data.txt +scripts +``` + +**Content of** `/web/scripts/index.list`: + +``` +helper.py +``` + +## How `index.list` Works + +1. Root Directory (/web/): + +- The `index.list` in the root directory lists `main.py`, `data.txt`, and the `scripts` subdirectory. +- This allows `os.listdir('/web')` to return the contents of the root directory. + +2. Subdirectory (`/web/scripts/`): + +- The `index.list` in the `scripts` directory lists `helper.py`. +- This lets `os.listdir('/web/scripts')` return the contents of the `scripts` directory. + +## How to Use index.list + +1. Creating `index.list` files + +To generate `index.list` files, use the `index.list.py` script that goes over the given directory structure and creates `index.list` files where needed. + +**index.list.py** + +```py +import os + +def generate_index_list(root_dir): + for dirpath, dirnames, filenames in os.walk(root_dir): + index_path = os.path.join(dirpath, 'index.list') + with open(index_path, 'w') as index_file: + # Write sorted directory and file names to index.list + for name in sorted(dirnames + filenames): + index_file.write(name + '\n') + print(f'index.list files created under {root_dir}') + +# Usage +generate_index_list('./web_root') +``` + +This script will walk through the `web_root` directory, create `index.list` files in each directory, and list the subdirectories and files within. + +2. Accessing Files in CheerpX + +Once `index.list` files are created, you can access and interact with the files and directories through CheerpX using Python. + +### Example code: + +```py +import os + +# List contents of the root directory in WebDevice +print(os.listdir('/web')) # Output: ['main.py', 'data.txt', 'scripts'] + +``` + +3. Integrating with Your HTML + +The index.html file, when served by an NGINX server configured with nginx.conf, will allow users to interact with the Python REPL through a browser: + +```html + + + + + Index listing + + + + +

+	
+
+```

From a6417e27548616801b5e806ffcbcf0e7c4f225fc Mon Sep 17 00:00:00 2001
From: Haseeb Qureshie 
Date: Mon, 9 Dec 2024 10:04:35 +0100
Subject: [PATCH 2/5] Changed image, text

---
 .../cheerpx/src/assets/index_list_example.png | Bin 28906 -> 28094 bytes
 .../docs/12-reference/21-index.list.md        |  77 ++++++++----------
 2 files changed, 33 insertions(+), 44 deletions(-)

diff --git a/sites/cheerpx/src/assets/index_list_example.png b/sites/cheerpx/src/assets/index_list_example.png
index df2dd4947ec0ac71141b736a146bfe849706f342..0303bd12b8cbdd9fd1e029e865e5c1c32cb68ac8 100644
GIT binary patch
literal 28094
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
JmWt~K{0AMZ?HB+6

literal 28906
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

diff --git a/sites/cheerpx/src/content/docs/12-reference/21-index.list.md b/sites/cheerpx/src/content/docs/12-reference/21-index.list.md
index 3d5eed31..e5c17ecd 100644
--- a/sites/cheerpx/src/content/docs/12-reference/21-index.list.md
+++ b/sites/cheerpx/src/content/docs/12-reference/21-index.list.md
@@ -9,11 +9,11 @@ The index.list file serves as a directory index for a WebDevice in CheerpX. It l
 
 ## Purpose of index.list
 
-The primary purpose of index.list is to:
+The primary purpose of index.list are:
 
-- Enable the use of functions like os.listdir() to list directory contents.
-- Provide seamless navigation of nested directories and files in the WebDevice.
-- Ensure that CheerpX can recognize and display file structures for applications running in the virtual Linux environment.
+- To enable the use of functions like os.listdir() to list directory contents.
+- To provide seamless navigation of nested directories and files in the WebDevice.
+- To ensure that CheerpX can recognize and display file structures for applications running in the virtual Linux environment.
 
 ## Structure of `index.list`
 
@@ -24,66 +24,47 @@ The `index.list` file contains a newline-separated list of all files and directo
 Assume the directory structure is as follows:
 
 ```bash
-/web/
-├── index.list
-├── main.py
-├── data.txt
-└── scripts/
+.
+├── cheerpXImage.ext2
+├── Dockerfile
+├── index.html
+├── index.list.py
+├── nginx.conf
+└── web_root
     ├── index.list
-    └── helper.py
+    ├── main.py
+    ├── script1.py
+    └── scripts
+        ├── index.list
+        └── script2.py
 ```
 
-**Content of** `/web/index.list`:
+**Content of** `/web_root/index.list`:
 
 ```
 main.py
-data.txt
+script1.py
 scripts
 ```
 
 **Content of** `/web/scripts/index.list`:
 
 ```
-helper.py
+script2.py
 ```
 
-## How `index.list` Works
-
-1. Root Directory (/web/):
-
-- The `index.list` in the root directory lists `main.py`, `data.txt`, and the `scripts` subdirectory.
-- This allows `os.listdir('/web')` to return the contents of the root directory.
-
-2. Subdirectory (`/web/scripts/`):
-
-- The `index.list` in the `scripts` directory lists `helper.py`.
-- This lets `os.listdir('/web/scripts')` return the contents of the `scripts` directory.
-
 ## How to Use index.list
 
 1. Creating `index.list` files
 
 To generate `index.list` files, use the `index.list.py` script that goes over the given directory structure and creates `index.list` files where needed.
 
-**index.list.py**
-
-```py
-import os
-
-def generate_index_list(root_dir):
-    for dirpath, dirnames, filenames in os.walk(root_dir):
-        index_path = os.path.join(dirpath, 'index.list')
-        with open(index_path, 'w') as index_file:
-            # Write sorted directory and file names to index.list
-            for name in sorted(dirnames + filenames):
-                index_file.write(name + '\n')
-    print(f'index.list files created under {root_dir}')
-
-# Usage
-generate_index_list('./web_root')
+```bash
+python3 index.list.py
 ```
 
-This script will walk through the `web_root` directory, create `index.list` files in each directory, and list the subdirectories and files within.
+> [!note] Note
+> You need to create the `web_root` directory to use this script effectively.
 
 2. Accessing Files in CheerpX
 
@@ -95,13 +76,14 @@ Once `index.list` files are created, you can access and interact with the files
 import os
 
 # List contents of the root directory in WebDevice
-print(os.listdir('/web'))  # Output: ['main.py', 'data.txt', 'scripts']
+print(os.listdir('/web'))
+# Output: ['main.py', 'data.txt', 'scripts']
 
 ```
 
 3. Integrating with Your HTML
 
-The index.html file, when served by an NGINX server configured with nginx.conf, will allow users to interact with the Python REPL through a browser:
+The following index.html file, when served by an NGINX server configured with nginx.conf, will allow you to interact with the Python REPL through a browser:
 
 ```html
 
@@ -145,3 +127,10 @@ The index.html file, when served by an NGINX server configured with nginx.conf,
 	
 
 ```
+
+> [!note] Note
+> Make sure to create your custom disk image and start the NGINX server. For more information, refer to the guides on Custom disk images and Basic server setup.
+
+### Visual example:
+
+![](../../../assets/index_list_example.png)

From 8d6c122e8ba1caa7c8e09955cf153e99fedc01ab Mon Sep 17 00:00:00 2001
From: Haseeb Qureshie 
Date: Mon, 9 Dec 2024 10:08:29 +0100
Subject: [PATCH 3/5] Changed link

---
 sites/cheerpx/src/content/docs/11-guides/File-System-support.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sites/cheerpx/src/content/docs/11-guides/File-System-support.md b/sites/cheerpx/src/content/docs/11-guides/File-System-support.md
index 06ab0531..a8aca8a8 100644
--- a/sites/cheerpx/src/content/docs/11-guides/File-System-support.md
+++ b/sites/cheerpx/src/content/docs/11-guides/File-System-support.md
@@ -36,7 +36,7 @@ This mounts the specified local directory at `/web` in the CheerpX filesystem.
 
 To be able to list the files, CheerpX will look for a file called index.list in the directory and each of its subdirectories. The file should contain a newline separated list of all files and folders contained in the directory.
 
-For detailed information about the purpose and usage of index.list, refer to the [index.list](/docs/index_list) reference.
+For detailed information about the purpose and usage of index.list, refer to the [index.list](/docs/reference/index.list) reference.
 
 ### Accessing Files
 

From 86dd03a06a50b6771211e192d75d2a3cea36128e Mon Sep 17 00:00:00 2001
From: Haseeb Qureshie 
Date: Mon, 9 Dec 2024 16:11:02 +0100
Subject: [PATCH 4/5] removed file and img, add section in Webdevice

---
 .../cheerpx/src/assets/index_list_example.png | Bin 28094 -> 0 bytes
 .../docs/11-guides/File-System-support.md     |  32 ++++-
 .../docs/12-reference/21-index.list.md        | 136 ------------------
 3 files changed, 29 insertions(+), 139 deletions(-)
 delete mode 100644 sites/cheerpx/src/assets/index_list_example.png
 delete mode 100644 sites/cheerpx/src/content/docs/12-reference/21-index.list.md

diff --git a/sites/cheerpx/src/assets/index_list_example.png b/sites/cheerpx/src/assets/index_list_example.png
deleted file mode 100644
index 0303bd12b8cbdd9fd1e029e865e5c1c32cb68ac8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 28094
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
JmWt~K{0AMZ?HB+6

diff --git a/sites/cheerpx/src/content/docs/11-guides/File-System-support.md b/sites/cheerpx/src/content/docs/11-guides/File-System-support.md
index a8aca8a8..655a636c 100644
--- a/sites/cheerpx/src/content/docs/11-guides/File-System-support.md
+++ b/sites/cheerpx/src/content/docs/11-guides/File-System-support.md
@@ -32,11 +32,37 @@ const cx = await CheerpX.Linux.create({
 });
 ```
 
-This mounts the specified local directory at `/web` in the CheerpX filesystem.
+This will mount the specified directory at `/web` in the CheerpX filesystem. To enable listing the directory contents, CheerpX looks for an `index.list` file in the directory and any subdirectories. This file should contain a newline-separated list of all files and subdirectories within the directory.
 
-To be able to list the files, CheerpX will look for a file called index.list in the directory and each of its subdirectories. The file should contain a newline separated list of all files and folders contained in the directory.
+### Why use an `index.list` File?
 
-For detailed information about the purpose and usage of index.list, refer to the [index.list](/docs/reference/index.list) reference.
+The `index.list` file enables CheerpX to provide directory listing functionality in its WebDevice. It ensures seamless navigation of directories, compatibility with Linux-based tools, and support for navigating directories operations like `os.listdir()`. Since browsers restrict direct access to local files, `index.list` helps simulate a directory structure for virtual environments, making it essential for managing and accessing files effectively.
+
+### Creating an `index.list` File
+
+To generate an `index.list` in every directory without including it in the directory listing, use the following command:
+
+```bash
+find . -type d -exec sh -c 'cd "{}" && ls > .index.list && mv .index.list index.list' \;
+```
+
+**Explanation**:
+
+1. `find . -type d`: This part of the command finds all directories (`-type d`) starting from the current directory (`.`).
+
+2. `exec`: The `-exec` option runs the provided command for each directory found by `find`.
+
+3. `sh -c 'cd "{}" && ls > .index.list && mv .index.list index.list'`:
+
+- `sh -c`: Runs the following string as a shell command.
+- `cd "{}"`: Changes the current directory to the directory being processed ({} is replaced with the directory path by find).
+- `ls > .index.list`: Lists all files and directories in the current directory and writes the output to a temporary file named .index.list.
+- `mv .index.list index.list`: Renames .index.list to index.list.
+
+4. `\;`: This marks the end of the -exec command for find.
+
+> [!warning] Warning
+> Be careful when using this command. It will overwrite existing index.list files in every directory it processes. Ensure you run it only in the intended directory and back up any important data before execution. Misuse in the wrong directory could cause unintentional data loss.
 
 ### Accessing Files
 
diff --git a/sites/cheerpx/src/content/docs/12-reference/21-index.list.md b/sites/cheerpx/src/content/docs/12-reference/21-index.list.md
deleted file mode 100644
index e5c17ecd..00000000
--- a/sites/cheerpx/src/content/docs/12-reference/21-index.list.md
+++ /dev/null
@@ -1,136 +0,0 @@
----
-title: Index.list
-description: Purpose and usage of index.list
----
-
-## What is `index.list`
-
-The index.list file serves as a directory index for a WebDevice in CheerpX. It lists all files and subdirectories within the directory where it resides.
-
-## Purpose of index.list
-
-The primary purpose of index.list are:
-
-- To enable the use of functions like os.listdir() to list directory contents.
-- To provide seamless navigation of nested directories and files in the WebDevice.
-- To ensure that CheerpX can recognize and display file structures for applications running in the virtual Linux environment.
-
-## Structure of `index.list`
-
-The `index.list` file contains a newline-separated list of all files and directories in the current directory.
-
-### Example directory structure
-
-Assume the directory structure is as follows:
-
-```bash
-.
-├── cheerpXImage.ext2
-├── Dockerfile
-├── index.html
-├── index.list.py
-├── nginx.conf
-└── web_root
-    ├── index.list
-    ├── main.py
-    ├── script1.py
-    └── scripts
-        ├── index.list
-        └── script2.py
-```
-
-**Content of** `/web_root/index.list`:
-
-```
-main.py
-script1.py
-scripts
-```
-
-**Content of** `/web/scripts/index.list`:
-
-```
-script2.py
-```
-
-## How to Use index.list
-
-1. Creating `index.list` files
-
-To generate `index.list` files, use the `index.list.py` script that goes over the given directory structure and creates `index.list` files where needed.
-
-```bash
-python3 index.list.py
-```
-
-> [!note] Note
-> You need to create the `web_root` directory to use this script effectively.
-
-2. Accessing Files in CheerpX
-
-Once `index.list` files are created, you can access and interact with the files and directories through CheerpX using Python.
-
-### Example code:
-
-```py
-import os
-
-# List contents of the root directory in WebDevice
-print(os.listdir('/web'))
-# Output: ['main.py', 'data.txt', 'scripts']
-
-```
-
-3. Integrating with Your HTML
-
-The following index.html file, when served by an NGINX server configured with nginx.conf, will allow you to interact with the Python REPL through a browser:
-
-```html
-
-
-	
-		
-		Index listing
-		
-		
-	
-	
-		

-	
-
-```
-
-> [!note] Note
-> Make sure to create your custom disk image and start the NGINX server. For more information, refer to the guides on Custom disk images and Basic server setup.
-
-### Visual example:
-
-![](../../../assets/index_list_example.png)

From 0e0c7f1e981f87530f09432f135967750fc08ac9 Mon Sep 17 00:00:00 2001
From: Haseeb Qureshie 
Date: Sun, 22 Dec 2024 21:15:17 +0100
Subject: [PATCH 5/5] Fix capital letters

---
 .../docs/11-guides/File-System-support.md        | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/sites/cheerpx/src/content/docs/11-guides/File-System-support.md b/sites/cheerpx/src/content/docs/11-guides/File-System-support.md
index 655a636c..de50f5f8 100644
--- a/sites/cheerpx/src/content/docs/11-guides/File-System-support.md
+++ b/sites/cheerpx/src/content/docs/11-guides/File-System-support.md
@@ -34,11 +34,11 @@ const cx = await CheerpX.Linux.create({
 
 This will mount the specified directory at `/web` in the CheerpX filesystem. To enable listing the directory contents, CheerpX looks for an `index.list` file in the directory and any subdirectories. This file should contain a newline-separated list of all files and subdirectories within the directory.
 
-### Why use an `index.list` File?
+### Why use an `index.list` file?
 
 The `index.list` file enables CheerpX to provide directory listing functionality in its WebDevice. It ensures seamless navigation of directories, compatibility with Linux-based tools, and support for navigating directories operations like `os.listdir()`. Since browsers restrict direct access to local files, `index.list` helps simulate a directory structure for virtual environments, making it essential for managing and accessing files effectively.
 
-### Creating an `index.list` File
+### Creating an `index.list` file
 
 To generate an `index.list` in every directory without including it in the directory listing, use the following command:
 
@@ -64,7 +64,7 @@ find . -type d -exec sh -c 'cd "{}" && ls > .index.list && mv .index.list index.
 > [!warning] Warning
 > Be careful when using this command. It will overwrite existing index.list files in every directory it processes. Ensure you run it only in the intended directory and back up any important data before execution. Misuse in the wrong directory could cause unintentional data loss.
 
-### Accessing Files
+### Accessing files
 
 Files in the WebDevice are accessed relative to the current page's URL. For example, if your current page is `https://host/dir1/dir2/page.html`, then:
 
@@ -92,7 +92,7 @@ const cx = await CheerpX.Linux.create({
 
 This setup creates a virtual filesystem at `/files` that is backed by IndexedDB.
 
-### Reading Files from JavaScript
+### Reading files from JavaScript
 
 You can read files from an `IDBDevice` in JavaScript using the `readFileAsBlob` method:
 
@@ -143,12 +143,12 @@ const cx = await CheerpX.Linux.create({
 });
 ```
 
-### Adding Files
+### Adding files
 
 You can add files to a DataDevice from JavaScript using the `writeFile` method:
 
 ```javascript
-await dataDevice.writeFile("/filename", "File content here");
+await dataDevice.writeFile("/filename", "file content here");
 ```
 
 ### `dataDevice.writeFile`
@@ -206,7 +206,7 @@ const cx = await CheerpX.Linux.create({
 
 This setup creates an ext2 filesystem that loads its initial data from an HTTP source and uses IndexedDB for persistent storage of changes.
 
-### Device Configuration Options
+### Device configuration options
 
 CheerpX supports various types of devices that can be used in the OverlayDevice configuration:
 
@@ -214,7 +214,7 @@ CheerpX supports various types of devices that can be used in the OverlayDevice
 2. **GitHubDevice**: Ideal for projects forked from the [WebVM](https://github.com/leaningtech/webvm/) repository. The Integrated GitHub Action will take care of preparing disk chunks for efficient access.
 3. **OverlayDevice**: `OverlayDevice` supports chaining, making it possible to efficiently "fork" disk images while only storing the changes from previous versions.
 
-## Best Practices
+## Best practices
 
 1. Use WebDevice for read-only access to server-side files.
 2. Utilize IDBDevice for persistent storage of user data or application state.