Skip to content

Commit d610e85

Browse files
committed
Fix some minor invalid URLs
modify validate_markdown_links.py a little Signed-off-by: Dongliang Mu <[email protected]>
1 parent 360a334 commit d610e85

22 files changed

+61
-61
lines changed

Diff for: CONTRIBUTORS.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
[@woodpenker](http://github.com/woodpenker)
3838

39-
[@tjm-1990](http://github.com/tjm-1990)
39+
@tjm-1990
4040

4141
[@up2wing](https://github.com/up2wing)
4242

@@ -48,4 +48,4 @@
4848

4949
[@Albertchamberlain](https://github.com/Albertchamberlain)
5050

51-
[@nannxnann](https://github.com/nannxnann)
51+
@nannxnann

Diff for: Cgroups/linux-cgroups-1.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@ struct cgroup_subsys cpuset_cgrp_subsys = {
435435

436436
* [control groups](https://en.wikipedia.org/wiki/Cgroups)
437437
* [PID](https://en.wikipedia.org/wiki/Process_identifier)
438-
* [cpuset](http://man7.org/linux/man-pages/man7/cpuset.7.html)
438+
* [cpuset](https://man7.org/linux/man-pages/man7/cpuset.7.html)
439439
* [block devices](https://en.wikipedia.org/wiki/Device_file)
440440
* [huge pages](https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt)
441441
* [sysfs](https://en.wikipedia.org/wiki/Sysfs)

Diff for: Concepts/linux-cpu-4.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ static struct notifier_block tracepoint_module_nb = {
331331
};
332332
```
333333

334-
When one of the `MODULE_STATE_LIVE`, `MODULE_STATE_COMING` or `MODULE_STATE_GOING` events occurred. For example the `MODULE_STATE_LIVE` the `MODULE_STATE_COMING` notifications will be sent during execution of the [init_module](http://man7.org/linux/man-pages/man2/init_module.2.html) [system call](/SysCall/linux-syscall-1.md). Or for example `MODULE_STATE_GOING` will be sent during execution of the [delete_module](http://man7.org/linux/man-pages/man2/delete_module.2.html) `system call`:
334+
When one of the `MODULE_STATE_LIVE`, `MODULE_STATE_COMING` or `MODULE_STATE_GOING` events occurred. For example the `MODULE_STATE_LIVE` the `MODULE_STATE_COMING` notifications will be sent during execution of the [init_module](https://man7.org/linux/man-pages/man2/init_module.2.html) [system call](/SysCall/linux-syscall-1.md). Or for example `MODULE_STATE_GOING` will be sent during execution of the [delete_module](https://man7.org/linux/man-pages/man2/delete_module.2.html) `system call`:
335335

336336
```C
337337
SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
@@ -364,6 +364,6 @@ Links
364364
* [semaphore](/SyncPrim/linux-sync-3.md)
365365
* [tracepoints](https://www.kernel.org/doc/Documentation/trace/tracepoints.txt)
366366
* [system call](/SysCall/linux-syscall-1.md)
367-
* [init_module system call](http://man7.org/linux/man-pages/man2/init_module.2.html)
368-
* [delete_module](http://man7.org/linux/man-pages/man2/delete_module.2.html)
367+
* [init_module system call](https://man7.org/linux/man-pages/man2/init_module.2.html)
368+
* [delete_module](https://man7.org/linux/man-pages/man2/delete_module.2.html)
369369
* [previous part](/Concepts/linux-cpu-3.md)

Diff for: DataStructures/linux-datastructures-1.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ struct list_head {
1414
};
1515
```
1616

17-
你可能注意到这和你以前见过的双向链表的实现方法是不同的。举个例子来说,在 [glib](http://www.gnu.org/software/libc/) 库里是这样实现的:
17+
你可能注意到这和你以前见过的双向链表的实现方法是不同的。举个例子来说,在 [glib](https://www.gnu.org/software/libc/) 库里是这样实现的:
1818

1919
```C
2020
struct GList {

Diff for: DataStructures/linux-datastructures-3.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ static inline void bitmap_zero(unsigned long *dst, unsigned int nbits)
340340
(__builtin_constant_p(nbits) && (nbits) <= BITS_PER_LONG)
341341
```
342342

343-
正如我们可以看到的,它检查 `nbits` 是否为编译期已知常量,并且其值不超过 `BITS_PER_LONG``64`。如果位数目没有超过一个 `long` 变量的位数,我们可以仅仅设置为 0。在其他情况,我们需要计算有多少个需要填充位数组的 `long` 变量并且使用 [memset](http://man7.org/linux/man-pages/man3/memset.3.html) 进行填充。
343+
正如我们可以看到的,它检查 `nbits` 是否为编译期已知常量,并且其值不超过 `BITS_PER_LONG``64`。如果位数目没有超过一个 `long` 变量的位数,我们可以仅仅设置为 0。在其他情况,我们需要计算有多少个需要填充位数组的 `long` 变量并且使用 [memset](https://man7.org/linux/man-pages/man3/memset.3.html) 进行填充。
344344

345345
`bitmap_fill` 函数的实现和 `biramp_zero` 函数很相似,除了我们需要在给定的位数组中填写 `0xff``0b11111111`
346346

@@ -356,7 +356,7 @@ static inline void bitmap_fill(unsigned long *dst, unsigned int nbits)
356356
}
357357
```
358358
359-
除了 `bitmap_fill` 和 `bitmap_zero`,[include/linux/bitmap.h](https://github.com/torvalds/linux/blob/master/include/linux/bitmap.h) 头文件也提供了和 `bitmap_zero` 很相似的 `bitmap_copy`,只是仅仅使用 [memcpy](http://man7.org/linux/man-pages/man3/memcpy.3.html) 而不是 [memset](http://man7.org/linux/man-pages/man3/memset.3.html) 这点差异而已。它也提供了位数组的按位操作,像 `bitmap_and`, `bitmap_or`, `bitamp_xor`等等。我们不会探讨这些函数的实现了,因为如果你理解了本部分的所有内容,这些函数的实现是很容易理解的。无论如何,如果你对这些函数是如何实现的感兴趣,你可以打开并研究 [include/linux/bitmap.h](https://github.com/torvalds/linux/blob/master/include/linux/bitmap.h) 头文件。
359+
除了 `bitmap_fill` 和 `bitmap_zero`,[include/linux/bitmap.h](https://github.com/torvalds/linux/blob/master/include/linux/bitmap.h) 头文件也提供了和 `bitmap_zero` 很相似的 `bitmap_copy`,只是仅仅使用 [memcpy](https://man7.org/linux/man-pages/man3/memcpy.3.html) 而不是 [memset](https://man7.org/linux/man-pages/man3/memset.3.html) 这点差异而已。它也提供了位数组的按位操作,像 `bitmap_and`, `bitmap_or`, `bitamp_xor`等等。我们不会探讨这些函数的实现了,因为如果你理解了本部分的所有内容,这些函数的实现是很容易理解的。无论如何,如果你对这些函数是如何实现的感兴趣,你可以打开并研究 [include/linux/bitmap.h](https://github.com/torvalds/linux/blob/master/include/linux/bitmap.h) 头文件。
360360
361361
本部分到此为止。
362362
@@ -381,8 +381,8 @@ static inline void bitmap_fill(unsigned long *dst, unsigned int nbits)
381381
* [bt instruction](http://x86.renejeschke.de/html/file_module_x86_id_22.html)
382382
* [sbb instruction](http://x86.renejeschke.de/html/file_module_x86_id_286.html)
383383
* [btc instruction](http://x86.renejeschke.de/html/file_module_x86_id_23.html)
384-
* [man memcpy](http://man7.org/linux/man-pages/man3/memcpy.3.html)
385-
* [man memset](http://man7.org/linux/man-pages/man3/memset.3.html)
384+
* [man memcpy](https://man7.org/linux/man-pages/man3/memcpy.3.html)
385+
* [man memset](https://man7.org/linux/man-pages/man3/memset.3.html)
386386
* [CF](https://en.wikipedia.org/wiki/FLAGS_register)
387387
* [inline assembler](https://en.wikipedia.org/wiki/Inline_assembler)
388388
* [gcc](https://en.wikipedia.org/wiki/GNU_Compiler_Collection)

Diff for: Initialization/linux-initialization-10.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ void arch_task_cache_init(void)
9797
}
9898
```
9999
100-
The `arch_task_cache_init` does initialization of the architecture-specific caches. In our case it is `x86_64`, so as we can see, the `arch_task_cache_init` allocates cache for the `task_xstate` which represents [FPU](http://en.wikipedia.org/wiki/Floating-point_unit) state and sets up offsets and sizes of all extended states in [xsave](http://www.felixcloutier.com/x86/XSAVES.html) area with the call of the `setup_xstate_comp` function. After the `arch_task_cache_init` we calculate default maximum number of threads with the:
100+
The `arch_task_cache_init` does initialization of the architecture-specific caches. In our case it is `x86_64`, so as we can see, the `arch_task_cache_init` allocates cache for the `task_xstate` which represents [FPU](http://en.wikipedia.org/wiki/Floating-point_unit) state and sets up offsets and sizes of all extended states in [xsave](https://www.felixcloutier.com/x86/XSAVES.html) area with the call of the `setup_xstate_comp` function. After the `arch_task_cache_init` we calculate default maximum number of threads with the:
101101
102102
```C
103103
set_max_threads(MAX_THREADS);
@@ -338,7 +338,7 @@ More about it will be in the chapter about scheduler. So for this moment the `st
338338
wait_for_completion(&kthreadd_done);
339339
```
340340

341-
After this we set `gfp_allowed_mask` to `__GFP_BITS_MASK` which means that system is already running, set allowed [cpus/mems](https://www.kernel.org/doc/Documentation/cgroups/cpusets.txt) to all CPUs and [NUMA](http://en.wikipedia.org/wiki/Non-uniform_memory_access) nodes with the `set_mems_allowed` function, allow `init` process to run on any CPU with the `set_cpus_allowed_ptr`, set pid for the `cad` or `Ctrl-Alt-Delete`, do preparation for booting of the other CPUs with the call of the `smp_prepare_cpus`, call early [initcalls](http://kernelnewbies.org/Documents/InitcallMechanism) with the `do_pre_smp_initcalls`, initialize `SMP` with the `smp_init` and initialize [lockup_detector](https://www.kernel.org/doc/Documentation/lockup-watchdogs.txt) with the call of the `lockup_detector_init` and initialize scheduler with the `sched_init_smp`.
341+
After this we set `gfp_allowed_mask` to `__GFP_BITS_MASK` which means that system is already running, set allowed [cpus/mems](https://www.kernel.org/doc/Documentation/cgroups/cpusets.txt) to all CPUs and [NUMA](http://en.wikipedia.org/wiki/Non-uniform_memory_access) nodes with the `set_mems_allowed` function, allow `init` process to run on any CPU with the `set_cpus_allowed_ptr`, set pid for the `cad` or `Ctrl-Alt-Delete`, do preparation for booting of the other CPUs with the call of the `smp_prepare_cpus`, call early [initcalls](https://kernelnewbies.org/Documents/InitcallMechanism) with the `do_pre_smp_initcalls`, initialize `SMP` with the `smp_init` and initialize [lockup_detector](https://www.kernel.org/doc/Documentation/lockup-watchdogs.txt) with the call of the `lockup_detector_init` and initialize scheduler with the `sched_init_smp`.
342342

343343
After this we can see the call of the following functions - `do_basic_setup`. Before we will call the `do_basic_setup` function, our kernel already initialized for this moment. As comment says:
344344

@@ -450,7 +450,7 @@ Links
450450
--------------------------------------------------------------------------------
451451
452452
* [SLAB](http://en.wikipedia.org/wiki/Slab_allocation)
453-
* [xsave](http://www.felixcloutier.com/x86/XSAVES.html)
453+
* [xsave](https://www.felixcloutier.com/x86/XSAVES.html)
454454
* [FPU](http://en.wikipedia.org/wiki/Floating-point_unit)
455455
* [Documentation/security/credentials.txt](https://github.com/torvalds/linux/blob/master/Documentation/security/credentials.rst)
456456
* [Documentation/x86/x86_64/mm](https://github.com/torvalds/linux/blob/16f73eb02d7e1765ccab3d2018e0bd98eb93d973/Documentation/x86/x86_64/mm.txt)

Diff for: Interrupts/linux-interrupts-10.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ module_exit(serial21285_exit);
3434
void cleanup_module(void) __attribute__((alias(#exitfn)));
3535
```
3636

37-
并被 [initcall](http://kernelnewbies.org/Documents/InitcallMechanism) 函数调用:
37+
并被 [initcall](https://kernelnewbies.org/Documents/InitcallMechanism) 函数调用:
3838

3939
* `early_initcall`
4040
* `pure_initcall`
@@ -456,7 +456,7 @@ native_irq_return_iret:
456456
* [StrongARM** SA-110/21285 评估板](http://netwinder.osuosl.org/pub/netwinder/docs/intel/datashts/27813501.pdf)
457457
* [IRQ](https://en.wikipedia.org/wiki/Interrupt_request_%28PC_architecture%29)
458458
* [模块](https://en.wikipedia.org/wiki/Loadable_kernel_module)
459-
* [initcall](http://kernelnewbies.org/Documents/InitcallMechanism)
459+
* [initcall](https://kernelnewbies.org/Documents/InitcallMechanism)
460460
* [uart](https://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter)
461461
* [ISA](https://en.wikipedia.org/wiki/Industry_Standard_Architecture)
462462
* [内存管理](/MM/)

Diff for: Interrupts/linux-interrupts-3.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ But unfortunately this method does not give a 100% guarantee. As described in th
214214
> stack but before we executed SWAPGS, then the only safe way to check
215215
> for GS is the slower method: the RDMSR.
216216
217-
In other words for example `NMI` could happen inside the critical section of a [swapgs](http://www.felixcloutier.com/x86/SWAPGS.html) instruction. In this way we should check value of the `MSR_GS_BASE` [model specific register](https://en.wikipedia.org/wiki/Model-specific_register) which stores pointer to the start of per-cpu area. So to check if we did come from userspace or not, we should to check value of the `MSR_GS_BASE` model specific register and if it is negative we came from kernel space, in other way we came from userspace:
217+
In other words for example `NMI` could happen inside the critical section of a [swapgs](https://www.felixcloutier.com/x86/SWAPGS.html) instruction. In this way we should check value of the `MSR_GS_BASE` [model specific register](https://en.wikipedia.org/wiki/Model-specific_register) which stores pointer to the start of per-cpu area. So to check if we did come from userspace or not, we should to check value of the `MSR_GS_BASE` model specific register and if it is negative we came from kernel space, in other way we came from userspace:
218218

219219
```assembly
220220
movl $MSR_GS_BASE,%ecx
@@ -351,7 +351,7 @@ testb $3, CS+8(%rsp)
351351
jz .Lerror_kernelspace
352352
```
353353

354-
because we may have potentially fault if as described in documentation truncated `%RIP` was reported. Anyway, in both cases the [SWAPGS](http://www.felixcloutier.com/x86/SWAPGS.html) instruction will be executed and values from `MSR_KERNEL_GS_BASE` and `MSR_GS_BASE` will be swapped. From this moment the `%gs` register will point to the base address of kernel structures. So, the `SWAPGS` instruction is called and it was main point of the `error_entry` routing.
354+
because we may have potentially fault if as described in documentation truncated `%RIP` was reported. Anyway, in both cases the [SWAPGS](https://www.felixcloutier.com/x86/SWAPGS.html) instruction will be executed and values from `MSR_KERNEL_GS_BASE` and `MSR_GS_BASE` will be swapped. From this moment the `%gs` register will point to the base address of kernel structures. So, the `SWAPGS` instruction is called and it was main point of the `error_entry` routing.
355355

356356
Now we can back to the `idtentry` macro. We may see following assembler code after the call of `error_entry`:
357357

@@ -515,7 +515,7 @@ Links
515515
* [CFI directives](https://sourceware.org/binutils/docs/as/CFI-directives.html)
516516
* [IRQ](http://en.wikipedia.org/wiki/Interrupt_request_%28PC_architecture%29)
517517
* [system call](http://en.wikipedia.org/wiki/System_call)
518-
* [swapgs](http://www.felixcloutier.com/x86/SWAPGS.html)
518+
* [swapgs](https://www.felixcloutier.com/x86/SWAPGS.html)
519519
* [SIGTRAP](https://en.wikipedia.org/wiki/Unix_signal#SIGTRAP)
520520
* [Per-CPU variables](https://0xax.gitbook.io/linux-insides/summary/concepts/linux-cpu-1)
521521
* [kgdb](https://en.wikipedia.org/wiki/KGDB)

Diff for: Interrupts/linux-interrupts-4.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ if (kmemcheck_active(regs))
150150
prefetchw(&mm->mmap_sem);
151151
```
152152

153-
After this we can see the call of the `prefetchw` which executes instruction with the same [name](http://www.felixcloutier.com/x86/PREFETCHW.html) which fetches [X86_FEATURE_3DNOW](https://en.wikipedia.org/?title=3DNow!) to get exclusive [cache line](https://en.wikipedia.org/wiki/CPU_cache). The main purpose of prefetching is to hide the latency of a memory access. In the next step we check that we got page fault not in the kernel space with the following condition:
153+
After this we can see the call of the `prefetchw` which executes instruction with the same [name](https://www.felixcloutier.com/x86/PREFETCHW.html) which fetches [X86_FEATURE_3DNOW](https://en.wikipedia.org/?title=3DNow!) to get exclusive [cache line](https://en.wikipedia.org/wiki/CPU_cache). The main purpose of prefetching is to hide the latency of a memory access. In the next step we check that we got page fault not in the kernel space with the following condition:
154154

155155
```C
156156
if (unlikely(fault_in_kernel_space(address))) {
@@ -444,7 +444,7 @@ Links
444444
* [RCU](https://en.wikipedia.org/wiki/Read-copy-update)
445445
* [this_cpu_* operations](https://github.com/torvalds/linux/blob/16f73eb02d7e1765ccab3d2018e0bd98eb93d973/Documentation/this_cpu_ops.txt)
446446
* [kmemcheck](https://www.kernel.org/doc/Documentation/kmemcheck.txt)
447-
* [prefetchw](http://www.felixcloutier.com/x86/PREFETCHW.html)
447+
* [prefetchw](https://www.felixcloutier.com/x86/PREFETCHW.html)
448448
* [3DNow](https://en.wikipedia.org/?title=3DNow!)
449449
* [CPU caches](https://en.wikipedia.org/wiki/CPU_cache)
450450
* [VFS](https://en.wikipedia.org/wiki/Virtual_file_system)

Diff for: LINKS.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Linux 启动
1616
------------------------
1717

1818
* [8250 UART Programming](http://en.wikibooks.org/wiki/Serial_Programming/8250_UART_Programming#UART_Registers)
19-
* [Serial ports on OSDEV](http://wiki.osdev.org/Serial_Ports)
19+
* [Serial ports on OSDEV](https://wiki.osdev.org/Serial_Ports)
2020

2121
VGA
2222
------------------------

Diff for: Misc/linux-misc-1.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -485,5 +485,5 @@ Happy Hacking!
485485
* [Linux kernel mail listing archive](https://lkml.org/)
486486
* [Linux kernel coding style guide](https://github.com/torvalds/linux/blob/master/Documentation/CodingStyle)
487487
* [How to Get Your Change Into the Linux Kernel](https://github.com/torvalds/linux/blob/master/Documentation/SubmittingPatches)
488-
* [Linux Kernel Newbies](http://kernelnewbies.org/)
488+
* [Linux Kernel Newbies](https://kernelnewbies.org/)
489489
* [plain text](https://en.wikipedia.org/wiki/Plain_text)

Diff for: Misc/linux-misc-2.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,7 @@ Kernel: arch/x86/boot/bzImage is ready (#5)
676676
* [uname](https://en.wikipedia.org/wiki/Uname)
677677
* [shell](https://en.wikipedia.org/wiki/Shell_%28computing%29)
678678
* [Kbuild](https://github.com/torvalds/linux/blob/master/Documentation/kbuild/kbuild.txt)
679-
* [binutils](http://www.gnu.org/software/binutils/)
679+
* [binutils](https://www.gnu.org/software/binutils/)
680680
* [gcc](https://gcc.gnu.org/)
681681
* [Documentation](https://github.com/torvalds/linux/blob/master/Documentation/kbuild/makefiles.txt)
682682
* [System.map](https://en.wikipedia.org/wiki/System.map)

Diff for: Misc/linux-misc-4.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ $ ./sum
119119
x + y + z = 6
120120
```
121121
122-
好的,直到现在所有事情看起来听挺好。你可能已经知道一个特殊的[系统调用](https://zh.wikipedia.org/wiki/%E7%B3%BB%E7%BB%9F%E8%B0%83%E7%94%A8)家族 - [exec*](http://man7.org/linux/man-pages/man3/execl.3.html) 系统调用。正如我们从帮助手册中读到的:
122+
好的,直到现在所有事情看起来听挺好。你可能已经知道一个特殊的[系统调用](https://zh.wikipedia.org/wiki/%E7%B3%BB%E7%BB%9F%E8%B0%83%E7%94%A8)家族 - [exec*](https://man7.org/linux/man-pages/man3/execl.3.html) 系统调用。正如我们从帮助手册中读到的:
123123
124124
> The exec() family of functions replaces the current process image with a new process image.
125125
@@ -368,7 +368,7 @@ $ readelf -e test | grep fini
368368
[15] .fini PROGBITS 0000000000400504 00000504
369369
```
370370

371-
这两个将被替换为二进制镜像的开始和结尾,包含分别被称为构造函数和析构函数的例程。这些例程的要点是在程序的真正代码执行之前,做一些初始化/终结,像全局变量如 [errno](http://man7.org/linux/man-pages/man3/errno.3.html) ,为系统例程分配和释放内存等等。
371+
这两个将被替换为二进制镜像的开始和结尾,包含分别被称为构造函数和析构函数的例程。这些例程的要点是在程序的真正代码执行之前,做一些初始化/终结,像全局变量如 [errno](https://man7.org/linux/man-pages/man3/errno.3.html) ,为系统例程分配和释放内存等等。
372372

373373
你可能可以从这些函数的名字推测,这两个会在 `main` 函数之前和之后被调用。`.init``.fini` 段的定义在 `/lib64/crti.o` 中。如果我们添加这个目标文件:
374374

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,4 @@
4141

4242
## 许可证
4343

44-
本项目使用 [BY-NC-SA Creative Commons](http://creativecommons.org/licenses/by-nc-sa/4.0/) 许可证。
44+
本项目使用 [BY-NC-SA Creative Commons](https://creativecommons.org/licenses/by-nc-sa/4.0/) 许可证。

Diff for: Scripts/validate_markdown_links.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def check_live_url(url):
1717

1818
result = False
1919
try:
20-
ret = urlopen(url, timeout=2)
20+
ret = urlopen(url, timeout=5)
2121
result = (ret.code == 200)
2222
except HTTPError as e:
2323
print(e, file=sys.stderr)
@@ -55,14 +55,14 @@ def main(path):
5555
print("markdown file name: " + url)
5656
continue
5757
if check_live_url(url):
58-
print(url)
58+
print(url, ": Success")
5959
else:
60-
print(url, file=sys.stderr)
60+
print(url, ": Failure")
6161

6262

6363
if __name__ == '__main__':
6464

6565
if len(sys.argv) == 2:
6666
main(sys.argv[1])
6767
else:
68-
print("Choose one path as argument one")
68+
print("Choose one path as the argument")

0 commit comments

Comments
 (0)