目次
ansi2html - Linux コンソールの ANSI カラー出力を HTML 変換
ソースコード: GitHub - kilobyte/colorized-logs: tools for logs with ANSI color
pycontribs/ansi2html: Convert text with ansi color codes to HTML
ansi2html コマンドは Linux ターミナルのカラー出力を HTML へ変換する。
インストール
ansi2html コマンドは colorized-logs または python3-ansi2html パッケージに含まれています😊
pipetty コマンドなども必要な場合は colorized-logs パッケージをインストールする。
Fedora
$ dnf provides ansi2html
Last metadata expiration check: 6 days, 8:00:19 ago on 2021年03月24日 02時11分04秒. colorized-logs-2.5-4.fc33.x86_64 : Tools for logs with ANSI color Repo : fedora Matched from: Filename : /usr/bin/ansi2html python3-ansi2html-1.5.1-10.fc33.noarch : Python module that converts text with ANSI color to HTML Repo : fedora Matched from: Filename : /usr/bin/ansi2html
ここでは colorized-logs パッケージをインストールする。
$ sudo dnf install -y colorized-logs
Last metadata expiration check: 5:46:09 ago on 2021年03月30日 04時39分50秒.
Dependencies resolved.
====================================================================================================
Package Architecture Version Repository Size
====================================================================================================
Installing:
colorized-logs x86_64 2.5-4.fc33 fedora 31 k
Transaction Summary
====================================================================================================
Install 1 Package
Total download size: 31 k
Installed size: 75 k
Downloading Packages:
colorized-logs-2.5-4.fc33.x86_64.rpm 87 kB/s | 31 kB 00:00
----------------------------------------------------------------------------------------------------
Total 15 kB/s | 31 kB 00:02
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : colorized-logs-2.5-4.fc33.x86_64 1/1
Running scriptlet: colorized-logs-2.5-4.fc33.x86_64 1/1
Verifying : colorized-logs-2.5-4.fc33.x86_64 1/1
Installed:
colorized-logs-2.5-4.fc33.x86_64
Complete!
DietPi
$ apt-file search ansi2html
colorized-logs: /usr/bin/ansi2html colorized-logs: /usr/share/man/man1/ansi2html.1.gz gitlab: /usr/share/gitlab/lib/gitlab/ci/ansi2html.rb gitlab: /usr/share/gitlab/spec/lib/gitlab/ci/ansi2html_spec.rb
$ sudo apt install -y colorized-logs
Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: less Suggested packages: colordiff colormake ccze colortail The following NEW packages will be installed: colorized-logs less 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 132 kB of archives. After this operation, 302 kB of additional disk space will be used. Get:1 http://ftp.udx.icscoe.jp/Linux/raspbian/raspbian bullseye/main armhf less armhf 551-2 [117 kB] Get:2 http://ftp.udx.icscoe.jp/Linux/raspbian/raspbian bullseye/main armhf colorized-logs armhf 2.5-1 [14.9 kB] Fetched 132 kB in 2s (59.0 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package less. (Reading database ... 67623 files and directories currently installed.) Preparing to unpack .../archives/less_551-2_armhf.deb ... Unpacking less (551-2) ... Selecting previously unselected package colorized-logs. Preparing to unpack .../colorized-logs_2.5-1_armhf.deb ... Unpacking colorized-logs (2.5-1) ... Setting up less (551-2) ... Setting up colorized-logs (2.5-1) ... Processing triggers for mailcap (3.69) ...
Linux ターミナルのカラー出力を HTML へ変換
$ dmesg --color=always | ansi2html > dmesg.html
[ 0.000000] Linux version 5.4.91-microsoft-standard-WSL2 (oe-user@oe-host) (gcc version 9.3.0 (GCC)) #1 SMP Mon Jan 25 18:39:31 UTC 2021 [ 0.000000] Command line: initrd=\initrd.img panic=-1 nr_cpus=4 swiotlb=force pty.legacy_count=0 [ 0.000000] KERNEL supported cpus: [ 0.000000] Intel GenuineIntel [ 0.000000] AMD AuthenticAMD [ 0.000000] Centaur CentaurHauls [ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers' [ 0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers' [ 0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers' [ 0.000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256 [ 0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format. [ 0.000000] BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ffff] usable [ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000e0fff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000001fffff] ACPI data [ 0.000000] BIOS-e820: [mem 0x0000000000200000-0x00000000f7ffffff] usable [ 0.000000] BIOS-e820: [mem 0x0000000100000000-0x00000002041fffff] usable [ 0.000000] NX (Execute Disable) protection: active [ 0.000000] DMI not present or invalid. [ 0.000000] Hypervisor detected: Microsoft Hyper-V [ 0.000000] Hyper-V: features 0x2e7f, privilege high: 0x3b8030, hints 0x26c2c, misc 0xe0bed7b2 [ 0.000000] Hyper-V Host Build:21322-10.0-1-0.1000 [ 0.000000] Hyper-V: LAPIC Timer Frequency: 0x1e8480 [ 0.000000] tsc: Marking TSC unstable due to running on Hyper-V [ 0.000000] Hyper-V: Using hypercall for remote TLB flush [ 0.000000] clocksource: hyperv_clocksource_tsc_page: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns [ 0.000002] tsc: Detected 2394.559 MHz processor [ 0.000012] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved [ 0.000014] e820: remove [mem 0x000a0000-0x000fffff] usable [ 0.000016] last_pfn = 0x204200 max_arch_pfn = 0x400000000 [ 0.000047] MTRR default type: uncachable [ 0.000047] MTRR fixed ranges disabled: [ 0.000049] 00000-FFFFF uncachable [ 0.000049] MTRR variable ranges disabled: [ 0.000049] 0 disabled [ 0.000050] 1 disabled [ 0.000050] 2 disabled [ 0.000050] 3 disabled [ 0.000051] 4 disabled [ 0.000051] 5 disabled [ 0.000051] 6 disabled [ 0.000052] 7 disabled [ 0.000052] Disabled [ 0.000053] x86/PAT: MTRRs disabled, skipping PAT initialization too. [ 0.000061] CPU MTRRs all blank - virtualized system. [ 0.000062] x86/PAT: Configuration [0-7]: WB WT UC- UC WB WT UC- UC [ 0.000063] last_pfn = 0xf8000 max_arch_pfn = 0x400000000 [ 0.000565] RAMDISK: [mem 0x03035000-0x03043fff] [ 0.000570] ACPI: Early table checksum verification disabled [ 0.000585] ACPI: RSDP 0x00000000000E0000 000024 (v02 VRTUAL) [ 0.000588] ACPI: XSDT 0x0000000000100000 000044 (v01 VRTUAL MICROSFT 00000001 MSFT 00000001) [ 0.000593] ACPI: FACP 0x0000000000101000 000114 (v06 VRTUAL MICROSFT 00000001 MSFT 00000001) [ 0.000597] ACPI: DSDT 0x00000000001011B8 01E184 (v02 MSFTVM DSDT01 00000001 MSFT 05000000) [ 0.000600] ACPI: FACS 0x0000000000101114 000040 [ 0.000603] ACPI: OEM0 0x0000000000101154 000064 (v01 VRTUAL MICROSFT 00000001 MSFT 00000001) [ 0.000605] ACPI: SRAT 0x000000000011F33C 0002F0 (v02 VRTUAL MICROSFT 00000001 MSFT 00000001) [ 0.000608] ACPI: APIC 0x000000000011F62C 000068 (v04 VRTUAL MICROSFT 00000001 MSFT 00000001) [ 0.000614] ACPI: Local APIC address 0xfee00000 [ 0.000897] Zone ranges: [ 0.000898] DMA [mem 0x0000000000001000-0x0000000000ffffff] [ 0.000900] DMA32 [mem 0x0000000001000000-0x00000000ffffffff] [ 0.000901] Normal [mem 0x0000000100000000-0x00000002041fffff] [ 0.000901] Movable zone start for each node [ 0.000902] Early memory node ranges [ 0.000903] node 0: [mem 0x0000000000001000-0x000000000009ffff] [ 0.000904] node 0: [mem 0x0000000000200000-0x00000000f7ffffff] [ 0.000904] node 0: [mem 0x0000000100000000-0x00000002041fffff] [ 0.001546] Zeroed struct page in unavailable ranges: 16225 pages [ 0.001548] Initmem setup node 0 [mem 0x0000000000001000-0x00000002041fffff] [ 0.001549] On node 0 totalpages: 2080927 [ 0.001550] DMA zone: 59 pages used for memmap [ 0.001551] DMA zone: 22 pages reserved [ 0.001551] DMA zone: 3743 pages, LIFO batch:0 [ 0.001595] DMA32 zone: 16320 pages used for memmap [ 0.001596] DMA32 zone: 1011712 pages, LIFO batch:63 [ 0.024987] Normal zone: 16648 pages used for memmap [ 0.024988] Normal zone: 1065472 pages, LIFO batch:63 [ 0.026203] ACPI: Local APIC address 0xfee00000 [ 0.026212] ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1]) [ 0.026816] IOAPIC[0]: apic_id 4, version 17, address 0xfec00000, GSI 0-23 [ 0.026820] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) [ 0.026823] ACPI: IRQ9 used by override. [ 0.026826] Using ACPI (MADT) for SMP configuration information [ 0.026836] smpboot: Allowing 4 CPUs, 0 hotplug CPUs [ 0.026849] [mem 0xf8000000-0xffffffff] available for PCI devices [ 0.026850] Booting paravirtualized kernel on Hyper-V [ 0.026852] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.158906] setup_percpu: NR_CPUS:256 nr_cpumask_bits:256 nr_cpu_ids:4 nr_node_ids:1 [ 0.159312] percpu: Embedded 50 pages/cpu s167256 r8192 d29352 u524288 [ 0.159316] pcpu-alloc: s167256 r8192 d29352 u524288 alloc=1*2097152 [ 0.159317] pcpu-alloc: [0] 0 1 2 3 [ 0.159329] Built 1 zonelists, mobility grouping on. Total pages: 2047878 [ 0.159330] Kernel command line: initrd=\initrd.img panic=-1 nr_cpus=4 swiotlb=force pty.legacy_count=0 [ 0.161456] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear) [ 0.162492] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear) [ 0.162553] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.185016] Memory: 4094392K/8323708K available (16390K kernel code, 1624K rwdata, 3180K rodata, 1572K init, 2216K bss, 243108K reserved, 0K cma-reserved) [ 0.185360] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.185366] Kernel/User page tables isolation: enabled [ 0.185378] ftrace: allocating 44895 entries in 176 pages [ 0.200924] rcu: Hierarchical RCU implementation. [ 0.200926] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4. [ 0.200926] All grace periods are expedited (rcu_expedited). [ 0.200927] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [ 0.200927] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 [ 0.203376] Using NULL legacy PIC [ 0.203377] NR_IRQS: 16640, nr_irqs: 456, preallocated irqs: 0 [ 0.203871] random: crng done (trusting CPU's manufacturer) [ 0.203891] Console: colour dummy device 80x25 [ 0.203894] printk: console [tty0] enabled [ 0.203899] ACPI: Core revision 20190816 [ 0.204020] Failed to register legacy timer interrupt [ 0.204021] APIC: Switch to symmetric I/O mode setup [ 0.204041] Hyper-V: Using IPI hypercalls [ 0.204041] Hyper-V: Using enlightened APIC (xapic mode) [ 0.204146] Calibrating delay loop (skipped), value calculated using timer frequency.. 4789.11 BogoMIPS (lpj=23945590) [ 0.204148] pid_max: default: 32768 minimum: 301 [ 0.204159] LSM: Security Framework initializing [ 0.204177] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear) [ 0.204189] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear) [ 0.204403] Last level iTLB entries: 4KB 512, 2MB 8, 4MB 8 [ 0.204404] Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32, 1GB 0 [ 0.204407] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization [ 0.204408] Spectre V2 : Mitigation: Full generic retpoline [ 0.204409] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch [ 0.204409] Spectre V2 : Enabling Restricted Speculation for firmware calls [ 0.204410] Spectre V2 : mitigation: Enabling conditional Indirect Branch Prediction Barrier [ 0.204411] Spectre V2 : User space: Mitigation: STIBP via seccomp and prctl [ 0.204412] Speculative Store Bypass: Mitigation: Speculative Store Bypass disabled via prctl and seccomp [ 0.204415] SRBDS: Unknown: Dependent on hypervisor status [ 0.204416] MDS: Vulnerable: Clear CPU buffers attempted, no microcode [ 0.204580] Freeing SMP alternatives memory: 48K [ 0.204663] smpboot: CPU0: Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz (family: 0x6, model: 0x3a, stepping: 0x9) [ 0.204982] Performance Events: unsupported p6 CPU model 58 no PMU driver, software events only. [ 0.205006] rcu: Hierarchical SRCU implementation. [ 0.205063] smp: Bringing up secondary CPUs ... [ 0.205119] x86: Booting SMP configuration: [ 0.205120] .... node #0, CPUs: #1 [ 0.205640] MDS CPU bug present and SMT on, data leak possible. See https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html for more details. [ 0.205640] #2 #3 [ 0.205640] smp: Brought up 1 node, 4 CPUs [ 0.205640] smpboot: Max logical packages: 1 [ 0.205640] smpboot: Total of 4 processors activated (19156.47 BogoMIPS) [ 0.226388] node 0 initialised, 996552 pages in 20ms [ 0.226470] devtmpfs: initialized [ 0.226470] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.226470] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) [ 0.226470] xor: automatically using best checksumming function avx [ 0.226470] NET: Registered protocol family 16 [ 0.226470] ACPI: bus type PCI registered [ 0.226470] PCI: Fatal: No config space access function found [ 0.227530] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages [ 0.234294] raid6: Forced to use recovery algorithm intx1 [ 0.234294] raid6: Forced gen() algo avx2x4 [ 0.234294] ACPI: Added _OSI(Module Device) [ 0.234294] ACPI: Added _OSI(Processor Device) [ 0.234294] ACPI: Added _OSI(3.0 _SCP Extensions) [ 0.234294] ACPI: Added _OSI(Processor Aggregator Device) [ 0.234294] ACPI: Added _OSI(Linux-Dell-Video) [ 0.234294] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio) [ 0.234294] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics) [ 0.247360] ACPI: 1 ACPI AML tables successfully acquired and loaded [ 0.248339] ACPI: Interpreter enabled [ 0.248339] ACPI: (supports S0 S5) [ 0.248339] ACPI: Using IOAPIC for interrupt routing [ 0.248339] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug [ 0.248339] ACPI: Enabled 2 GPEs in block 00 to 0F [ 0.248339] iommu: Default domain type: Translated [ 0.248339] SCSI subsystem initialized [ 0.248363] hv_vmbus: Vmbus version:5.0 [ 0.248363] PCI: Using ACPI for IRQ routing [ 0.248363] PCI: System does not support PCI [ 0.248363] hv_vmbus: Unknown GUID: c376c1c3-d276-48d2-90a9-c04748072c60 [ 0.248363] clocksource: Switched to clocksource hyperv_clocksource_tsc_page [ 0.359068] VFS: Disk quotas dquot_6.6.0 [ 0.359078] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 0.359096] FS-Cache: Loaded [ 0.359120] pnp: PnP ACPI init [ 0.359314] pnp 00:00: Plug and Play ACPI device, IDs PNP0b00 (active) [ 0.359332] pnp: PnP ACPI: found 1 devices [ 0.367685] NET: Registered protocol family 2 [ 0.367932] tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear) [ 0.367945] TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear) [ 0.368045] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes, linear) [ 0.368607] TCP: Hash tables configured (established 65536 bind 65536) [ 0.368635] UDP hash table entries: 4096 (order: 5, 131072 bytes, linear) [ 0.368655] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes, linear) [ 0.368702] NET: Registered protocol family 1 [ 0.369162] RPC: Registered named UNIX socket transport module. [ 0.369163] RPC: Registered udp transport module. [ 0.369164] RPC: Registered tcp transport module. [ 0.369165] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.369167] PCI: CLS 0 bytes, default 64 [ 0.369204] Trying to unpack rootfs image as initramfs... [ 0.369336] Freeing initrd memory: 60K [ 0.369339] PCI-DMA: Using software bounce buffering for IO (SWIOTLB) [ 0.369340] software IO TLB: mapped [mem 0xf4000000-0xf8000000] (64MB) [ 0.369377] KVM: vmx: using Hyper-V Enlightened VMCS [ 0.372918] kvm: already loaded the other module [ 0.375220] Initialise system trusted keyrings [ 0.375372] workingset: timestamp_bits=46 max_order=21 bucket_order=0 [ 0.376455] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.376687] NFS: Registering the id_resolver key type [ 0.376691] Key type id_resolver registered [ 0.376692] Key type id_legacy registered [ 0.376695] Installing knfsd (copyright (C) 1996 okir@monad.swb.de). [ 0.377635] Key type cifs.idmap registered [ 0.377721] fuse: init (API version 7.31) [ 0.377915] SGI XFS with ACLs, security attributes, realtime, scrub, repair, no debug enabled [ 0.378331] 9p: Installing v9fs 9p2000 file system support [ 0.378348] FS-Cache: Netfs '9p' registered for caching [ 0.378503] FS-Cache: Netfs 'ceph' registered for caching [ 0.378506] ceph: loaded (mds proto 32) [ 0.382334] NET: Registered protocol family 38 [ 0.382337] Key type asymmetric registered [ 0.382337] Asymmetric key parser 'x509' registered [ 0.382349] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250) [ 0.382682] hv_vmbus: registering driver hv_pci [ 0.382959] ACPI: AC Adapter [AC1] (on-line) [ 0.383313] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled [ 0.383877] Non-volatile memory driver v1.3 [ 0.384079] battery: ACPI: Battery Slot [BAT1] (battery present) [ 0.386519] brd: module loaded [ 0.387580] loop: module loaded [ 0.387620] hv_vmbus: registering driver hv_storvsc [ 0.387676] Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) [ 0.388382] wireguard: WireGuard 1.0.0 loaded. See www.wireguard.com for information. [ 0.388383] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. [ 0.388409] tun: Universal TUN/TAP device driver, 1.6 [ 0.388519] PPP generic driver version 2.4.2 [ 0.388651] PPP BSD Compression module registered [ 0.388653] PPP Deflate Compression module registered [ 0.388659] PPP MPPE Compression module registered [ 0.388661] NET: Registered protocol family 24 [ 0.388669] hv_vmbus: registering driver hv_netvsc [ 0.388801] VFIO - User Level meta-driver version: 0.3 [ 0.388969] hv_vmbus: registering driver hyperv_keyboard [ 0.389324] rtc_cmos 00:00: RTC can wake from S4 [ 0.389718] scsi host0: storvsc_host_t [ 0.392400] rtc_cmos 00:00: registered as rtc0 [ 0.392412] rtc_cmos 00:00: alarms up to one month, 114 bytes nvram [ 0.392814] device-mapper: ioctl: 4.41.0-ioctl (2019-09-16) initialised: dm-devel@redhat.com [ 0.393034] device-mapper: raid: Loading target version 1.14.0 [ 0.393143] hv_utils: Registering HyperV Utility Driver [ 0.393144] hv_vmbus: registering driver hv_utils [ 0.393195] hv_vmbus: registering driver hv_balloon [ 0.393211] dxgk:err: dxg_drv_init Version: 5 [ 0.393215] hv_vmbus: registering driver dxgkrnl [ 0.393242] drop_monitor: Initializing network drop monitor service [ 0.393259] Mirror/redirect action on [ 0.393349] hv_utils: cannot register PTP clock: 0 [ 0.393541] IPVS: Registered protocols (TCP, UDP) [ 0.393562] IPVS: Connection hash table configured (size=4096, memory=64Kbytes) [ 0.394059] IPVS: ipvs loaded. [ 0.394060] IPVS: [rr] scheduler registered. [ 0.394061] IPVS: [wrr] scheduler registered. [ 0.394062] IPVS: [sh] scheduler registered. [ 0.394112] ipip: IPv4 and MPLS over IPv4 tunneling driver [ 0.395396] ipt_CLUSTERIP: ClusterIP Version 0.8 loaded successfully [ 0.395885] Initializing XFRM netlink socket [ 0.396015] NET: Registered protocol family 10 [ 0.396428] hv_balloon: Using Dynamic Memory protocol version 2.0 [ 0.397334] hv_utils: TimeSync IC version 4.0 [ 0.397512] Segment Routing with IPv6 [ 0.398610] hv_balloon: Cold memory discard enabled [ 0.398939] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 0.399091] NET: Registered protocol family 17 [ 0.399122] Bridge firewalling registered [ 0.399131] 8021q: 802.1Q VLAN Support v1.8 [ 0.399166] sctp: Hash tables configured (bind 256/256) [ 0.399258] 9pnet: Installing 9P2000 support [ 0.399273] Key type dns_resolver registered [ 0.399288] Key type ceph registered [ 0.399545] libceph: loaded (mon/osd proto 15/24) [ 0.399547] hv_vmbus: registering driver hv_sock [ 0.399682] NET: Registered protocol family 40 [ 0.399711] IPI shorthand broadcast: enabled [ 0.399837] registered taskstats version 1 [ 0.399845] Loading compiled-in X.509 certificates [ 0.400303] Btrfs loaded, crc32c=crc32c-generic [ 0.401452] rtc_cmos 00:00: setting system clock to 2021-03-19T21:06:27 UTC (1616187987) [ 0.401478] Unstable clock detected, switching default tracing clock to "global" If you want to keep using the local clock, then add: "trace_clock=local" on the kernel command line [ 0.403529] Freeing unused kernel image memory: 1572K [ 0.423944] hv_pci a8492c6e-d071-4bc1-a290-ee2afbaf08e9: PCI VMBus probing: Using version 0x10002 [ 0.424806] hv_pci a8492c6e-d071-4bc1-a290-ee2afbaf08e9: PCI host bridge to bus d071:00 [ 0.425127] pci d071:00:00.0: [1414:008e] type 00 class 0x030200 [ 0.432843] hv_vmbus: Unknown GUID: 6e382d18-3336-4f4b-acc4-2b7703d4df4a [ 0.432905] hv_vmbus: Unknown GUID: dde9cbc0-5060-4436-9448-ea1254a5d177 [ 0.474332] Write protecting the kernel read-only data: 22528k [ 0.476631] Freeing unused kernel image memory: 1992K [ 0.477923] Freeing unused kernel image memory: 916K [ 0.478148] Run /init as init process [ 2.710822] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 3.093020] scsi 0:0:0:0: Direct-Access Msft Virtual Disk 1.0 PQ: 0 ANSI: 5 [ 3.094631] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ 3.109524] sd 0:0:0:0: [sda] 536870912 512-byte logical blocks: (275 GB/256 GiB) [ 3.109527] sd 0:0:0:0: [sda] 4096-byte physical blocks [ 3.110039] sd 0:0:0:0: [sda] Write Protect is off [ 3.110042] sd 0:0:0:0: [sda] Mode Sense: 0f 00 00 00 [ 3.111507] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 3.406889] sd 0:0:0:0: [sda] Attached SCSI disk [ 3.510709] EXT4-fs (sda): mounted filesystem with ordered data mode. Opts: (null) [ 3.619610] hv_pci 30d1b8c5-2b62-4982-b88c-14def9bcd2c5: PCI VMBus probing: Using version 0x10002 [ 3.761035] hv_pci 30d1b8c5-2b62-4982-b88c-14def9bcd2c5: PCI host bridge to bus 2b62:00 [ 3.761038] pci_bus 2b62:00: root bus resource [mem 0xe00000000-0xe00002fff window] [ 3.761853] pci 2b62:00:00.0: [1af4:1049] type 00 class 0x010000 [ 3.767071] pci 2b62:00:00.0: reg 0x10: [mem 0xe00000000-0xe00000fff 64bit] [ 3.768699] pci 2b62:00:00.0: reg 0x18: [mem 0xe00001000-0xe00001fff 64bit] [ 3.769695] pci 2b62:00:00.0: reg 0x20: [mem 0xe00002000-0xe00002fff 64bit] [ 3.777366] pci 2b62:00:00.0: BAR 0: assigned [mem 0xe00000000-0xe00000fff 64bit] [ 3.778372] pci 2b62:00:00.0: BAR 2: assigned [mem 0xe00001000-0xe00001fff 64bit] [ 3.779338] pci 2b62:00:00.0: BAR 4: assigned [mem 0xe00002000-0xe00002fff 64bit] [ 4.133206] Adding 2097152k swap on /swap/file. Priority:-2 extents:1 across:2097152k [ 5.364497] scsi 0:0:0:1: Direct-Access Msft Virtual Disk 1.0 PQ: 0 ANSI: 5 [ 5.364939] sd 0:0:0:1: Attached scsi generic sg1 type 0 [ 5.366239] sd 0:0:0:1: [sdb] 536870912 512-byte logical blocks: (275 GB/256 GiB) [ 5.366242] sd 0:0:0:1: [sdb] 4096-byte physical blocks [ 5.366432] sd 0:0:0:1: [sdb] Write Protect is off [ 5.366434] sd 0:0:0:1: [sdb] Mode Sense: 0f 00 00 00 [ 5.366810] sd 0:0:0:1: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 5.370215] sd 0:0:0:1: [sdb] Attached SCSI disk [ 5.717026] EXT4-fs (sdb): recovery complete [ 5.719229] EXT4-fs (sdb): mounted filesystem with ordered data mode. Opts: discard,errors=remount-ro,data=ordered [ 5.732089] FS-Cache: Duplicate cookie detected [ 5.732093] FS-Cache: O-cookie c=00000000c3d31845 [p=00000000b229a3bf fl=222 nc=0 na=1] [ 5.732094] FS-Cache: O-cookie d=00000000edcd1005 n=0000000073b35055 [ 5.732094] FS-Cache: O-key=[10] '34323934393337383438' [ 5.732098] FS-Cache: N-cookie c=0000000029a08174 [p=00000000b229a3bf fl=2 nc=0 na=1] [ 5.732099] FS-Cache: N-cookie d=00000000edcd1005 n=000000006dd1ac16 [ 5.732099] FS-Cache: N-key=[10] '34323934393337383438' [ 5.958511] hv_pci 0230a7c4-efca-47ea-9d15-b8d4162460a3: PCI VMBus probing: Using version 0x10002 [ 6.031445] hv_pci 0230a7c4-efca-47ea-9d15-b8d4162460a3: PCI host bridge to bus efca:00 [ 6.031447] pci_bus efca:00: root bus resource [mem 0xe00004000-0xe00006fff window] [ 6.032171] pci efca:00:00.0: [1af4:1049] type 00 class 0x010000 [ 6.034328] pci efca:00:00.0: reg 0x10: [mem 0xe00004000-0xe00004fff 64bit] [ 6.035348] pci efca:00:00.0: reg 0x18: [mem 0xe00005000-0xe00005fff 64bit] [ 6.036289] pci efca:00:00.0: reg 0x20: [mem 0xe00006000-0xe00006fff 64bit] [ 6.042691] pci efca:00:00.0: BAR 0: assigned [mem 0xe00004000-0xe00004fff 64bit] [ 6.043397] pci efca:00:00.0: BAR 2: assigned [mem 0xe00005000-0xe00005fff 64bit] [ 6.044066] pci efca:00:00.0: BAR 4: assigned [mem 0xe00006000-0xe00006fff 64bit] [ 6.675294] cgroup: systemd (147) created nested cgroup for controller "memory" which has incomplete hierarchy support. Nested cgroups may change behavior in the future. [ 6.675295] cgroup: "memory" requires setting use_hierarchy to 1 on the root [ 49.193919] hv_balloon: Max. dynamic memory size: 8130 MB [ 4076.736267] hv_utils: TimeSync IC version 4.0 [58651.616048] hv_utils: TimeSync IC version 4.0 [115801.510965] hv_utils: TimeSync IC version 4.0 [140567.612418] scsi 0:0:0:2: Direct-Access Msft Virtual Disk 1.0 PQ: 0 ANSI: 5 [140567.617345] sd 0:0:0:2: Attached scsi generic sg2 type 0 [140567.619640] sd 0:0:0:2: [sdc] 536870912 512-byte logical blocks: (275 GB/256 GiB) [140567.619647] sd 0:0:0:2: [sdc] 4096-byte physical blocks [140567.619962] sd 0:0:0:2: [sdc] Write Protect is off [140567.619968] sd 0:0:0:2: [sdc] Mode Sense: 0f 00 00 00 [140567.620320] sd 0:0:0:2: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [140567.647215] sd 0:0:0:2: [sdc] Attached SCSI disk [140567.682754] EXT4-fs (sdc): mounted filesystem with ordered data mode. Opts: discard,errors=remount-ro,data=ordered [140677.565867] EXT4-fs (sdc): mounted filesystem with ordered data mode. Opts: discard,errors=remount-ro,data=ordered [140678.605424] hv_pci ca92d1a4-4c1e-4052-b7b3-236b5f0ebb70: PCI VMBus probing: Using version 0x10002 [140678.683448] hv_pci ca92d1a4-4c1e-4052-b7b3-236b5f0ebb70: PCI host bridge to bus 4c1e:00 [140678.683452] pci_bus 4c1e:00: root bus resource [mem 0xe00008000-0xe0000afff window] [140678.684819] pci 4c1e:00:00.0: [1af4:1049] type 00 class 0x010000 [140678.687984] pci 4c1e:00:00.0: reg 0x10: [mem 0xe00008000-0xe00008fff 64bit] [140678.688961] pci 4c1e:00:00.0: reg 0x18: [mem 0xe00009000-0xe00009fff 64bit] [140678.689934] pci 4c1e:00:00.0: reg 0x20: [mem 0xe0000a000-0xe0000afff 64bit] [140678.696947] pci 4c1e:00:00.0: BAR 0: assigned [mem 0xe00008000-0xe00008fff 64bit] [140678.697666] pci 4c1e:00:00.0: BAR 2: assigned [mem 0xe00009000-0xe00009fff 64bit] [140678.698399] pci 4c1e:00:00.0: BAR 4: assigned [mem 0xe0000a000-0xe0000afff 64bit] [142941.489967] EXT4-fs (sdc): mounted filesystem with ordered data mode. Opts: discard,errors=remount-ro,data=ordered [142941.510843] FS-Cache: Duplicate cookie detected [142941.511027] FS-Cache: O-cookie c=00000000af988317 [p=00000000b229a3bf fl=222 nc=0 na=1] [142941.511028] FS-Cache: O-cookie d=00000000edcd1005 n=000000003b77323b [142941.511029] FS-Cache: O-key=[10] '34333039323331343236' [142941.511033] FS-Cache: N-cookie c=000000007c84384f [p=00000000b229a3bf fl=2 nc=0 na=1] [142941.511034] FS-Cache: N-cookie d=00000000edcd1005 n=000000007fbdad8c [142941.511034] FS-Cache: N-key=[10] '34333039323331343236' [143185.728632] EXT4-fs (sdc): mounted filesystem with ordered data mode. Opts: discard,errors=remount-ro,data=ordered [143185.743548] FS-Cache: Duplicate cookie detected [143185.743551] FS-Cache: O-cookie c=000000007cde7055 [p=00000000b229a3bf fl=222 nc=0 na=1] [143185.743552] FS-Cache: O-cookie d=00000000edcd1005 n=00000000d8434e4f [143185.743552] FS-Cache: O-key=[10] '34333039323535383439' [143185.743555] FS-Cache: N-cookie c=000000007715f8c4 [p=00000000b229a3bf fl=2 nc=0 na=1] [143185.743556] FS-Cache: N-cookie d=00000000edcd1005 n=0000000024c33a1d [143185.743556] FS-Cache: N-key=[10] '34333039323535383439' [147066.976928] hv_utils: TimeSync IC version 4.0 [154251.435802] hv_utils: TimeSync IC version 4.0 [196908.591661] hv_utils: TimeSync IC version 4.0 [201032.525087] hv_utils: TimeSync IC version 4.0 [213253.770253] hv_utils: TimeSync IC version 4.0 [223539.354245] hv_utils: TimeSync IC version 4.0 [228883.357907] hv_utils: TimeSync IC version 4.0 [248253.626232] hv_utils: TimeSync IC version 4.0 [253800.553722] hv_utils: TimeSync IC version 4.0 [262850.318119] hv_utils: TimeSync IC version 4.0 [270326.754068] hv_utils: TimeSync IC version 4.0 [280212.389173] hv_utils: TimeSync IC version 4.0 [281569.923583] init: (110) ERROR: LogException:33: TELEMETRY: (null) No such file or directory @d:\os\src\onecore\VM\linux\mountutil\mountutilcpp.h:19 (MountEnum) [286101.650493] hv_utils: TimeSync IC version 4.0 [288247.362168] hv_utils: TimeSync IC version 4.0 [298912.708070] hv_utils: TimeSync IC version 4.0
ビルドのカラー出力を変換
$ pipetty make -C build | ansi2html | tee build.html
make: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' make[1]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' [ 3%] Built target libhamcore make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' [ 6%] Built target hamcorebuilder make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' [ 7%] Built target hamcore-archive-build make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' Scanning dependencies of target cedar make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' [ 7%] Building C object src/Cedar/CMakeFiles/cedar.dir/Account.c.o [ 8%] Building C object src/Cedar/CMakeFiles/cedar.dir/Admin.c.o [ 9%] Building C object src/Cedar/CMakeFiles/cedar.dir/AzureClient.c.o [ 10%] Building C object src/Cedar/CMakeFiles/cedar.dir/AzureServer.c.o [ 11%] Building C object src/Cedar/CMakeFiles/cedar.dir/Bridge.c.o [ 12%] Building C object src/Cedar/CMakeFiles/cedar.dir/BridgeUnix.c.o [ 12%] Building C object src/Cedar/CMakeFiles/cedar.dir/BridgeWin32.c.o [ 13%] Building C object src/Cedar/CMakeFiles/cedar.dir/CM.c.o [ 14%] Building C object src/Cedar/CMakeFiles/cedar.dir/Cedar.c.o [ 15%] Building C object src/Cedar/CMakeFiles/cedar.dir/CedarPch.c.o [ 16%] Building C object src/Cedar/CMakeFiles/cedar.dir/Client.c.o [ 17%] Building C object src/Cedar/CMakeFiles/cedar.dir/Command.c.o /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘CheckThread1’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:278:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 278 | InputToNull((void *)check_thread_global_1); | ^ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘CheckMemory’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:568:16: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 568 | InputToNull((void *)(UINT)(((UCHAR *)pp[i])[j] = j % 256)); | ^ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘StrToPortList’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:7855:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 7855 | if (IsInList(o, (void *)n)) | ^ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:7861:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 7861 | Add(o, (void *)n); | ^ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘PsClusterSettingMember’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:7938:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 7938 | t.Ports[i] = (UINT)LIST_DATA(ports, i); | ^ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘CmdEvalHostAndPort’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:8010:39: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 8010 | ret = ParseHostPort(tmp, NULL, NULL, (UINT)param); | ^ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘PsWgkEnum’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:10676:26: warning: passing argument 1 of ‘CopyStrToUni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 10676 | key = CopyStrToUni(wgk->Key); | ~~~^~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:249, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:8: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Internat.h:69:29: note: expected ‘char *’ but argument is of type ‘const char *’ 69 | wchar_t *CopyStrToUni(char *str); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:10677:26: warning: passing argument 1 of ‘CopyStrToUni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 10677 | hub = CopyStrToUni(wgk->Hub); | ~~~^~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:249, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:8: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Internat.h:69:29: note: expected ‘char *’ but argument is of type ‘const char *’ 69 | wchar_t *CopyStrToUni(char *str); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:10678:27: warning: passing argument 1 of ‘CopyStrToUni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 10678 | user = CopyStrToUni(wgk->User); | ~~~^~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:249, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:8: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Internat.h:69:29: note: expected ‘char *’ but argument is of type ‘const char *’ 69 | wchar_t *CopyStrToUni(char *str); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘PsPortsUDPSet’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:22757:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 22757 | t.Ports[i] = (UINT)LIST_DATA(ports, i); | ^ [ 17%] Building C object src/Cedar/CMakeFiles/cedar.dir/Connection.c.o [ 18%] Building C object src/Cedar/CMakeFiles/cedar.dir/Console.c.o [ 19%] Building C object src/Cedar/CMakeFiles/cedar.dir/DDNS.c.o [ 20%] Building C object src/Cedar/CMakeFiles/cedar.dir/Database.c.o [ 21%] Building C object src/Cedar/CMakeFiles/cedar.dir/EM.c.o [ 22%] Building C object src/Cedar/CMakeFiles/cedar.dir/EtherLog.c.o [ 22%] Building C object src/Cedar/CMakeFiles/cedar.dir/Hub.c.o [ 23%] Building C object src/Cedar/CMakeFiles/cedar.dir/IPC.c.o [ 24%] Building C object src/Cedar/CMakeFiles/cedar.dir/Layer3.c.o [ 25%] Building C object src/Cedar/CMakeFiles/cedar.dir/Link.c.o [ 26%] Building C object src/Cedar/CMakeFiles/cedar.dir/Listener.c.o [ 27%] Building C object src/Cedar/CMakeFiles/cedar.dir/Logging.c.o /home/tomoyan/work/SoftEtherVPN/src/Cedar/Logging.c: In function ‘PacketLogParseProc’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Logging.c:1576:32: warning: taking address of packed member of ‘struct PKT’ may result in an unaligned pointer value [-Waddress-of-packed-member] 1576 | ICMPV6_HEADER_INFO *icmp = &p->ICMPv6HeaderPacketInfo; | ^~~~~~~~~~~~~~~~~~~~~~~~~~ [ 28%] Building C object src/Cedar/CMakeFiles/cedar.dir/NM.c.o [ 28%] Building C object src/Cedar/CMakeFiles/cedar.dir/Nat.c.o [ 29%] Building C object src/Cedar/CMakeFiles/cedar.dir/NativeStack.c.o [ 30%] Building C object src/Cedar/CMakeFiles/cedar.dir/NullLan.c.o [ 31%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto.c.o /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c: In function ‘ProtoLog’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:20:29: warning: passing argument 1 of ‘CopyStrToUni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 20 | proto_name = CopyStrToUni(session->Impl->Name()); | ^~~~~~~~~~~~~~~~~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:249, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Internat.h:69:29: note: expected ‘char *’ but argument is of type ‘const char *’ 69 | wchar_t *CopyStrToUni(char *str); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c: In function ‘ProtoContainerCompare’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:72:28: warning: passing argument 1 of ‘StrCmpi’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 72 | return StrCmpi(container_1->Name, container_2->Name); | ~~~~~~~~~~~^~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:39:19: note: expected ‘char *’ but argument is of type ‘const char *’ 39 | int StrCmpi(char *str1, char *str2); | ~~~~~~^~~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:72:47: warning: passing argument 2 of ‘StrCmpi’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 72 | return StrCmpi(container_1->Name, container_2->Name); | ~~~~~~~~~~~^~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:39:31: note: expected ‘char *’ but argument is of type ‘const char *’ 39 | int StrCmpi(char *str1, char *str2); | ~~~~~~^~~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c: In function ‘ProtoSessionNew’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:407:26: warning: passing argument 2 of ‘CopyIP’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 407 | CopyIP(&session->SrcIp, src_ip); | ^~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:270, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Network.h:1266:26: note: expected ‘IP *’ but argument is of type ‘const IP *’ 1266 | void CopyIP(IP *dst, IP *src); | ~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:409:26: warning: passing argument 2 of ‘CopyIP’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 409 | CopyIP(&session->DstIp, dst_ip); | ^~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:270, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Network.h:1266:26: note: expected ‘IP *’ but argument is of type ‘const IP *’ 1266 | void CopyIP(IP *dst, IP *src); | ~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c: In function ‘ProtoSetListenIP’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:458:38: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 458 | Copy(&proto->UdpListener->ListenIP, ip, sizeof(proto->UdpListener->ListenIP)); | ^~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const IP *’ 182 | void Copy(void *dst, void *src, UINT size); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c: In function ‘ProtoHandleConnection’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:513:19: warning: passing argument 1 of ‘StrCmp’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 513 | if (StrCmp(tmp->Name, protocol) == 0) | ~~~^~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:38:18: note: expected ‘char *’ but argument is of type ‘const char * const’ 38 | int StrCmp(char *str1, char *str2); | ~~~~~~^~~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:513:27: warning: passing argument 2 of ‘StrCmp’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 513 | if (StrCmp(tmp->Name, protocol) == 0) | ^~~~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:38:30: note: expected ‘char *’ but argument is of type ‘const char *’ 38 | int StrCmp(char *str1, char *str2); | ~~~~~~^~~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:558:38: warning: passing argument 1 of ‘CopyStrToUni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 558 | proto_name = CopyStrToUni(container->Name); | ~~~~~~~~~^~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:249, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Internat.h:69:29: note: expected ‘char *’ but argument is of type ‘const char * const’ 69 | wchar_t *CopyStrToUni(char *str); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:651:38: warning: passing argument 1 of ‘CopyStrToUni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 651 | wchar_t *proto_name = CopyStrToUni(impl->Name()); | ^~~~~~~~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:249, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Internat.h:69:29: note: expected ‘char *’ but argument is of type ‘const char *’ 69 | wchar_t *CopyStrToUni(char *str); | ~~~~~~^~~ [ 32%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_EtherIP.c.o [ 33%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_IKE.c.o [ 33%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_IPsec.c.o [ 34%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_IkePacket.c.o [ 35%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_L2TP.c.o [ 36%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_OpenVPN.c.o /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_OpenVPN.c: In function ‘OvsIsPacketForMe’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_OpenVPN.c:90:43: warning: passing argument 1 of ‘OvsParsePacket’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 90 | OPENVPN_PACKET *packet = OvsParsePacket(data, size); | ^~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Cedar/Cedar.h:1040, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:19, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_OpenVPN.c:8: /home/tomoyan/work/SoftEtherVPN/src/./Cedar/Proto_OpenVPN.h:233:39: note: expected ‘UCHAR *’ {aka ‘unsigned char *’} but argument is of type ‘const void *’ 233 | OPENVPN_PACKET *OvsParsePacket(UCHAR *data, UINT size); | ~~~~~~~^~~~ [ 37%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_PPP.c.o [ 38%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_SSTP.c.o /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_SSTP.c: In function ‘NewSstpServer’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_SSTP.c:1013:55: warning: passing argument 3 of ‘StrCpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 1013 | StrCpy(s->ClientHostName, sizeof(s->ClientHostName), hostname); | ^~~~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_SSTP.c:8: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:30:41: note: expected ‘char *’ but argument is of type ‘const char *’ 30 | UINT StrCpy(char *dst, UINT size, char *src); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_SSTP.c:1014:59: warning: passing argument 3 of ‘StrCpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 1014 | StrCpy(s->ClientCipherName, sizeof(s->ClientCipherName), cipher); | ^~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_SSTP.c:8: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:30:41: note: expected ‘char *’ but argument is of type ‘const char *’ 30 | UINT StrCpy(char *dst, UINT size, char *src); | ~~~~~~^~~ [ 38%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_Win7.c.o [ 39%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_WireGuard.c.o /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsOptionStringValue’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:46:13: warning: passing argument 1 of ‘StrCmp’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 46 | if (StrCmp(name, "PresharedKey") == 0 || StrCmp(name, "PrivateKey") == 0) | ^~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:38:18: note: expected ‘char *’ but argument is of type ‘const char *’ 38 | int StrCmp(char *str1, char *str2); | ~~~~~~^~~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:46:50: warning: passing argument 1 of ‘StrCmp’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 46 | if (StrCmp(name, "PresharedKey") == 0 || StrCmp(name, "PrivateKey") == 0) | ^~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:38:18: note: expected ‘char *’ but argument is of type ‘const char *’ 38 | int StrCmp(char *str1, char *str2); | ~~~~~~^~~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsProcessDatagrams’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:238:28: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 238 | Copy(&session->IPLocal, &packet->DstIP, sizeof(session->IPLocal)); | ^~~~~~~~~~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const IP *’ 182 | void Copy(void *dst, void *src, UINT size); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:239:29: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 239 | Copy(&session->IPRemote, &packet->SrcIP, sizeof(session->IPRemote)); | ^~~~~~~~~~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const IP *’ 182 | void Copy(void *dst, void *src, UINT size); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsDetectMessageType’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:402:27: warning: passing argument 1 of ‘IsZero’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 402 | if (IsZero(packet->Header.Reserved, sizeof(packet->Header.Reserved)) == false) | ~~~~~~~~~~~~~~^~~~~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:344:19: note: expected ‘void *’ but argument is of type ‘const BYTE *’ {aka ‘const unsigned char *’} 344 | bool IsZero(void *data, UINT size); | ~~~~~~^~~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsMSS’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:425:12: warning: passing argument 1 of ‘IsIP4’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 425 | if (IsIP4(&session->IPRemote)) | ^~~~~~~~~~~~~~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:270, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Network.h:1268:16: note: expected ‘IP *’ but argument is of type ‘const IP *’ 1268 | bool IsIP4(IP *ip); | ~~~~^~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsIPCNew’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:465:53: warning: passing argument 3 of ‘StrCpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 465 | StrCpy(param.ClientName, sizeof(param.ClientName), WgsName()); | ^~~~~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:30:41: note: expected ‘char *’ but argument is of type ‘const char *’ 30 | UINT StrCpy(char *dst, UINT size, char *src); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsCreateTransportData’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:824:32: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 824 | Copy(ret->EncapsulatedPacket, data, size); | ^~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const void *’ 182 | void Copy(void *dst, void *src, UINT size); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsEncryptData’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:929:42: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 929 | Copy(iv + sizeof(iv) - sizeof(counter), &counter, sizeof(counter)); | ^~~~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const UINT64 *’ {aka ‘const long unsigned int *’} 182 | void Copy(void *dst, void *src, UINT size); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsDecryptData’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:947:42: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 947 | Copy(iv + sizeof(iv) - sizeof(counter), &counter, sizeof(counter)); | ^~~~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const UINT64 *’ {aka ‘const long unsigned int *’} 182 | void Copy(void *dst, void *src, UINT size); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsEphemeral’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1000:22: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 1000 | Copy(ephemeral_dst, ephemeral_src, WG_KEY_SIZE); | ^~~~~~~~~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const BYTE *’ {aka ‘const unsigned char *’} 182 | void Copy(void *dst, void *src, UINT size); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsHKDF’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1011:15: warning: passing argument 2 of ‘SetMdKey’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 1011 | SetMdKey(md, chaining_key, WG_HASH_SIZE); | ^~~~~~~~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:252, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Encrypt.h:433:29: note: expected ‘void *’ but argument is of type ‘const BYTE *’ {aka ‘const unsigned char *’} 433 | bool SetMdKey(MD *md, void *key, UINT key_size); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1014:24: warning: passing argument 3 of ‘MdProcess’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 1014 | MdProcess(md, secret, data, data_size); | ^~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:252, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Encrypt.h:434:42: note: expected ‘void *’ but argument is of type ‘const BYTE *’ {aka ‘const unsigned char *’} 434 | UINT MdProcess(MD *md, void *dest, void *src, UINT size); | ~~~~~~^~~ [ 40%] Building C object src/Cedar/CMakeFiles/cedar.dir/Protocol.c.o [ 41%] Building C object src/Cedar/CMakeFiles/cedar.dir/Radius.c.o [ 42%] Building C object src/Cedar/CMakeFiles/cedar.dir/Remote.c.o [ 43%] Building C object src/Cedar/CMakeFiles/cedar.dir/SM.c.o [ 43%] Building C object src/Cedar/CMakeFiles/cedar.dir/SW.c.o [ 44%] Building C object src/Cedar/CMakeFiles/cedar.dir/Sam.c.o [ 45%] Building C object src/Cedar/CMakeFiles/cedar.dir/SeLowUser.c.o [ 46%] Building C object src/Cedar/CMakeFiles/cedar.dir/SecureInfo.c.o [ 47%] Building C object src/Cedar/CMakeFiles/cedar.dir/SecureNAT.c.o [ 48%] Building C object src/Cedar/CMakeFiles/cedar.dir/Server.c.o /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c: In function ‘SiLoadConfigurationCfg’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:2751:35: warning: passing argument 2 of ‘CfgGetFolder’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 2751 | FOLDER *f = CfgGetFolder(f9, name); | ^~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:264, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:8: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Cfg.h:98:44: note: expected ‘char *’ but argument is of type ‘const char *’ 98 | FOLDER *CfgGetFolder(FOLDER *parent, char *name); | ~~~~~~^~~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:2755:42: warning: passing argument 3 of ‘StrCpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 2755 | StrCpy(wgk->Key, sizeof(wgk->Key), name); | ^~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:8: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:30:41: note: expected ‘char *’ but argument is of type ‘const char *’ 30 | UINT StrCpy(char *dst, UINT size, char *src); | ~~~~~~^~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c: In function ‘SiLoadProtoCfg’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:6342:41: warning: passing argument 2 of ‘CfgGetFolder’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 6342 | FOLDER *ff = CfgGetFolder(f, container->Name); | ~~~~~~~~~^~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:264, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:8: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Cfg.h:98:44: note: expected ‘char *’ but argument is of type ‘const char * const’ 98 | FOLDER *CfgGetFolder(FOLDER *parent, char *name); | ~~~~~~^~~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c: In function ‘SiWriteProtoCfg’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:6396:44: warning: passing argument 2 of ‘CfgCreateFolder’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 6396 | FOLDER *ff = CfgCreateFolder(f, container->Name); | ~~~~~~~~~^~~~~~ In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:264, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18, from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:8: /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Cfg.h:84:47: note: expected ‘char *’ but argument is of type ‘const char * const’ 84 | FOLDER *CfgCreateFolder(FOLDER *parent, char *name); | ~~~~~~^~~~ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c: In function ‘SiCalledDeleteIpTable’: /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:7697:28: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 7697 | if (IsInList(h->IpTable, (void *)key)) | ^ /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:7699:24: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 7699 | IP_TABLE_ENTRY *e = (IP_TABLE_ENTRY *)key; | ^ [ 49%] Building C object src/Cedar/CMakeFiles/cedar.dir/Session.c.o [ 49%] Building C object src/Cedar/CMakeFiles/cedar.dir/UT.c.o [ 50%] Building C object src/Cedar/CMakeFiles/cedar.dir/UdpAccel.c.o [ 51%] Building C object src/Cedar/CMakeFiles/cedar.dir/VG.c.o [ 52%] Building C object src/Cedar/CMakeFiles/cedar.dir/VLan.c.o [ 53%] Building C object src/Cedar/CMakeFiles/cedar.dir/VLanUnix.c.o [ 54%] Building C object src/Cedar/CMakeFiles/cedar.dir/VLanWin32.c.o [ 54%] Building C object src/Cedar/CMakeFiles/cedar.dir/Virtual.c.o [ 55%] Building C object src/Cedar/CMakeFiles/cedar.dir/WaterMark.c.o [ 56%] Building C object src/Cedar/CMakeFiles/cedar.dir/WebUI.c.o [ 57%] Building C object src/Cedar/CMakeFiles/cedar.dir/WinUi.c.o [ 58%] Building C object src/Cedar/CMakeFiles/cedar.dir/Wpc.c.o [ 59%] Building C object src/Cedar/CMakeFiles/cedar.dir/__/__/3rdparty/BLAKE2/sse/blake2s.c.o [ 59%] Linking C shared library ../../libcedar.so make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' [ 59%] Built target cedar make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' [ 70%] Built target cpu_features make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' [ 89%] Built target mayaqua make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' [ 91%] Built target list_cpu_features make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' [ 92%] Linking C executable ../../vpnserver make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' [ 93%] Built target vpnserver make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' [ 93%] Linking C executable ../../vpnclient make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' [ 94%] Built target vpnclient make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' [ 95%] Linking C executable ../../vpnbridge make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' [ 96%] Built target vpnbridge make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' [ 97%] Linking C executable ../../vpncmd make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' [ 98%] Built target vpncmd make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build' [ 99%] Linking C executable ../../vpntest make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' [100%] Built target vpntest make[1]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build' make: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
ansi2html の出力内容
$ ls -al --color=always | ansi2html > fedora_ls-al.html
total 73540 drwx------ 7 tomoyan tomoyan 4096 6月 4 13:44 . drwxr-xr-x 3 root root 4096 3月 14 15:05 .. -rw------- 1 tomoyan tomoyan 7005 6月 1 06:59 .bash_history -rw-r--r-- 1 tomoyan tomoyan 18 7月 27 2020 .bash_logout -rw-r--r-- 1 tomoyan tomoyan 141 7月 27 2020 .bash_profile -rw-r--r-- 1 tomoyan tomoyan 376 7月 27 2020 .bashrc drwxr-xr-x 3 tomoyan tomoyan 4096 6月 4 13:44 .cache drwx------ 3 tomoyan tomoyan 4096 3月 31 14:15 .config -rw-r--r-- 1 tomoyan tomoyan 0 6月 4 13:48 fedora_ls-al.html drwxr-xr-x 7 tomoyan tomoyan 4096 3月 14 15:22 genie drwxr-xr-x 12 tomoyan tomoyan 4096 3月 19 04:01 openlitespeed -rw-r--r-- 1 tomoyan tomoyan 75249876 3月 17 03:57 openlitespeed-1.7.9.tgz drwxr-xr-x 5 tomoyan tomoyan 4096 6月 4 13:44 py39def
- fedora_ls-al.html
<!DOCTYPE html> <html> <head> <style type="text/css"> body {background-color: black;} pre { font-weight: normal; color: #bbb; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word; overflow-wrap: break-word; } b {font-weight: normal} b.BOLD {color: #fff} b.ITA {font-style: italic} b.UND {text-decoration: underline} b.STR {text-decoration: line-through} b.UNDSTR {text-decoration: underline line-through} b.BLK {color: #000000} b.RED {color: #aa0000} b.GRN {color: #00aa00} b.YEL {color: #aa5500} b.BLU {color: #0000aa} b.MAG {color: #aa00aa} b.CYN {color: #00aaaa} b.WHI {color: #aaaaaa} b.HIK {color: #555555} b.HIR {color: #ff5555} b.HIG {color: #55ff55} b.HIY {color: #ffff55} b.HIB {color: #5555ff} b.HIM {color: #ff55ff} b.HIC {color: #55ffff} b.HIW {color: #ffffff} b.BBLK {background-color: #000000} b.BRED {background-color: #aa0000} b.BGRN {background-color: #00aa00} b.BYEL {background-color: #aa5500} b.BBLU {background-color: #0000aa} b.BMAG {background-color: #aa00aa} b.BCYN {background-color: #00aaaa} b.BWHI {background-color: #aaaaaa} </style> </head> <spanody> <pre>total 73540 drwx------ 7 tomoyan tomoyan 4096 6月 4 13:44 <span class=HIB>.</span> drwxr-xr-x 3 root root 4096 3月 14 15:05 <span class=HIB>..</span> -rw------- 1 tomoyan tomoyan 7005 6月 1 06:59 .bash_history -rw-r--r-- 1 tomoyan tomoyan 18 7月 27 2020 .bash_logout -rw-r--r-- 1 tomoyan tomoyan 141 7月 27 2020 .bash_profile -rw-r--r-- 1 tomoyan tomoyan 376 7月 27 2020 .bashrc drwxr-xr-x 3 tomoyan tomoyan 4096 6月 4 13:44 <span class=HIB>.cache</span> drwx------ 3 tomoyan tomoyan 4096 3月 31 14:15 <span class=HIB>.config</span> -rw-r--r-- 1 tomoyan tomoyan 0 6月 4 13:48 fedora_ll.html drwxr-xr-x 7 tomoyan tomoyan 4096 3月 14 15:22 <span class=HIB>genie</span> drwxr-xr-x 12 tomoyan tomoyan 4096 3月 19 04:01 <span class=HIB>openlitespeed</span> -rw-r--r-- 1 tomoyan tomoyan 75249876 3月 17 03:57 <span class=HIR>openlitespeed-1.7.9.tgz</span> drwxr-xr-x 5 tomoyan tomoyan 4096 6月 4 13:44 <span class=HIB>py39def</span> </pre> </body> </html>
小枝🤤 画面出力と同時に ansi2html で HTML ファイルにも同時出力する🤔
処理結果のパイプでエスケープカラーコードが失われないようにする...🤔
まずは、処理結果を普通にパイプするとエスケープカラーコードが失われるので、オプションに --color=always
を指定してエスケープカラーコードが失われないようにする…🤔
$ ls -l --color=alway | cat
合計 12 lrwxrwxrwx 1 tomoyan tomoyan 20 8月 21 12:53 DataShare -> /var/samba/DataShare -rwxrwxrwx. 1 tomoyan tomoyan 99 8月 18 14:32 exec_jupyterlab.sh -rw-r--r-- 1 tomoyan tomoyan 0 9月 18 15:34 ls-l.html drwxr-xr-x 1 tomoyan tomoyan 132 9月 18 15:19 my_projects drwxr-xr-x. 1 tomoyan tomoyan 198 9月 17 14:05 pyJupyterLab drwxrwxr-x. 1 tomoyan tomoyan 1334 9月 9 11:19 work drwxr-xr-x. 1 tomoyan tomoyan 644 9月 10 11:32 ダウンロード drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 テンプレート drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 デスクトップ drwxr-xr-x. 1 tomoyan tomoyan 84 9月 6 18:59 ドキュメント drwxr-xr-x. 1 tomoyan tomoyan 54 8月 18 14:13 ビデオ drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 音楽 drwxr-xr-x. 1 tomoyan tomoyan 3530 9月 16 10:06 画像 drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 公開
処理結果をパイプすると画面で出力内容を確認することはできない😇
ls -l --color=always
の処理結果を ansi2html
にパイプで渡すと、HTML ファイルには書き込まれるが画面には何も出力されないので出力内容が確認できない😇
$ ls -l --color=alway | ansi2html > ls-l.html
tee コマンドは画面出力とファイル出力を行うので ansi2html
の処理結果は画面で確認しつつファイル出力できるが…🤔
普通の出力結果で内容を確認したい😅
$ ls -l --color=always | ansi2html | tee ls-l.html
<!DOCTYPE html> <html> <head> <style type="text/css"> body {background-color: black;} pre { font-weight: normal; color: #bbb; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word; overflow-wrap: break-word; } b {font-weight: normal} b.BOLD {color: #fff} b.ITA {font-style: italic} b.UND {text-decoration: underline} b.STR {text-decoration: line-through} b.UNDSTR {text-decoration: underline line-through} b.BLK {color: #000000} b.RED {color: #aa0000} b.GRN {color: #00aa00} b.YEL {color: #aa5500} b.BLU {color: #0000aa} b.MAG {color: #aa00aa} b.CYN {color: #00aaaa} b.WHI {color: #aaaaaa} b.HIK {color: #555555} b.HIR {color: #ff5555} b.HIG {color: #55ff55} b.HIY {color: #ffff55} b.HIB {color: #5555ff} b.HIM {color: #ff55ff} b.HIC {color: #55ffff} b.HIW {color: #ffffff} b.BBLK {background-color: #000000} b.BRED {background-color: #aa0000} b.BGRN {background-color: #00aa00} b.BYEL {background-color: #aa5500} b.BBLU {background-color: #0000aa} b.BMAG {background-color: #aa00aa} b.BCYN {background-color: #00aaaa} b.BWHI {background-color: #aaaaaa} </style> </head> <spanody> <pre>合計 16 lrwxrwxrwx 1 tomoyan tomoyan 20 8月 21 12:53 <span class=HIC>DataShare</span> -> <span class="BLU BGRN">/var/samba/DataShare</span> -rw-r--r-- 1 tomoyan tomoyan 2645 9月 18 15:55 cat -rwxrwxrwx. 1 tomoyan tomoyan 99 8月 18 14:32 <span class=HIG>exec_jupyterlab.sh</span> -rw-r--r-- 1 tomoyan tomoyan 0 9月 18 16:23 ls-l.html drwxr-xr-x 1 tomoyan tomoyan 132 9月 18 15:19 <span class=HIB>my_projects</span> drwxr-xr-x. 1 tomoyan tomoyan 198 9月 17 14:05 <span class=HIB>pyJupyterLab</span> drwxrwxr-x. 1 tomoyan tomoyan 1334 9月 9 11:19 <span class=HIB>work</span> drwxr-xr-x. 1 tomoyan tomoyan 644 9月 10 11:32 <span class=HIB>ダウンロード</span> drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 <span class=HIB>テンプレート</span> drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 <span class=HIB>デスクトップ</span> drwxr-xr-x. 1 tomoyan tomoyan 84 9月 6 18:59 <span class=HIB>ドキュメント</span> drwxr-xr-x. 1 tomoyan tomoyan 54 8月 18 14:13 <span class=HIB>ビデオ</span> drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 <span class=HIB>音楽</span> drwxr-xr-x. 1 tomoyan tomoyan 3530 9月 16 10:06 <span class=HIB>画像</span> drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 <span class=HIB>公開</span> </pre> </body> </html>
標準出力を tee コマンドで二重化して片方はパイプしてもう片方は画面出力することを考える...🤔
tee コマンドは標準出力と同時にファイル出力できる🤔
しかし、通常は標準出力はパイプで ansi2html コマンドに渡り、ファイル出力は画面では見られないので、結局そのままでは画面で処理内容を確認することは不可能です😢
ファイル出力を画面で確認できれば良いので、出力先を /dev/tty
(現在の画面) に変更する…🤔 /dev/tty は画面をファイルとして扱える🤤
出力を二重化できるということは、標準出力をパイプして他の処理に吸い取られても、ファイル出力を現在の画面で確認できることを意味します🤔
$ ls -l --color=always | tee /dev/tty
合計 16 lrwxrwxrwx 1 tomoyan tomoyan 20 8月 21 12:53 DataShare -> /var/samba/DataShare -rw-r--r-- 1 tomoyan tomoyan 2645 9月 18 15:55 cat -rwxrwxrwx. 1 tomoyan tomoyan 99 8月 18 14:32 exec_jupyterlab.sh -rw-r--r-- 1 tomoyan tomoyan 0 9月 18 16:23 ls-l.html drwxr-xr-x 1 tomoyan tomoyan 132 9月 18 15:19 my_projects drwxr-xr-x. 1 tomoyan tomoyan 198 9月 17 14:05 pyJupyterLab drwxrwxr-x. 1 tomoyan tomoyan 1334 9月 9 11:19 work drwxr-xr-x. 1 tomoyan tomoyan 644 9月 10 11:32 ダウンロード drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 テンプレート drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 デスクトップ drwxr-xr-x. 1 tomoyan tomoyan 84 9月 6 18:59 ドキュメント drwxr-xr-x. 1 tomoyan tomoyan 54 8月 18 14:13 ビデオ drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 音楽 drwxr-xr-x. 1 tomoyan tomoyan 3530 9月 16 10:06 画像 drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 公開 合計 16 lrwxrwxrwx 1 tomoyan tomoyan 20 8月 21 12:53 DataShare -> /var/samba/DataShare -rw-r--r-- 1 tomoyan tomoyan 2645 9月 18 15:55 cat -rwxrwxrwx. 1 tomoyan tomoyan 99 8月 18 14:32 exec_jupyterlab.sh -rw-r--r-- 1 tomoyan tomoyan 0 9月 18 16:23 ls-l.html drwxr-xr-x 1 tomoyan tomoyan 132 9月 18 15:19 my_projects drwxr-xr-x. 1 tomoyan tomoyan 198 9月 17 14:05 pyJupyterLab drwxrwxr-x. 1 tomoyan tomoyan 1334 9月 9 11:19 work drwxr-xr-x. 1 tomoyan tomoyan 644 9月 10 11:32 ダウンロード drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 テンプレート drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 デスクトップ drwxr-xr-x. 1 tomoyan tomoyan 84 9月 6 18:59 ドキュメント drwxr-xr-x. 1 tomoyan tomoyan 54 8月 18 14:13 ビデオ drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 音楽 drwxr-xr-x. 1 tomoyan tomoyan 3530 9月 16 10:06 画像 drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 公開
stddata=$(ls -l --color=always | tee /dev/tty)
を実行すると、標準出力を変数に格納しながら /dev/tty (現在の画面) で確認できる😍
そして、一旦変数に格納した標準出力の内容を echo "$stddata" | ansi2html > ls-l.html
で HTML ファイルへ出力します🤔
この方法で通常の画面出力で確認しながら、HTML ファイルへの出力も同時に行うことができる😻
$ stddata=$(ls -l --color=always | tee /dev/tty) && echo "$stddata" | ansi2html > ls-l.html
合計 16 lrwxrwxrwx 1 tomoyan tomoyan 20 8月 21 12:53 DataShare -> /var/samba/DataShare -rw-r--r-- 1 tomoyan tomoyan 2645 9月 18 15:55 cat -rwxrwxrwx. 1 tomoyan tomoyan 99 8月 18 14:32 exec_jupyterlab.sh -rw-r--r-- 1 tomoyan tomoyan 0 9月 18 16:23 ls-l.html drwxr-xr-x 1 tomoyan tomoyan 132 9月 18 15:19 my_projects drwxr-xr-x. 1 tomoyan tomoyan 198 9月 17 14:05 pyJupyterLab drwxrwxr-x. 1 tomoyan tomoyan 1334 9月 9 11:19 work drwxr-xr-x. 1 tomoyan tomoyan 644 9月 10 11:32 ダウンロード drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 テンプレート drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 デスクトップ drwxr-xr-x. 1 tomoyan tomoyan 84 9月 6 18:59 ドキュメント drwxr-xr-x. 1 tomoyan tomoyan 54 8月 18 14:13 ビデオ drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 音楽 drwxr-xr-x. 1 tomoyan tomoyan 3530 9月 16 10:06 画像 drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 公開
$ cat ls-l.html
<!DOCTYPE html> <html> <head> <style type="text/css"> body {background-color: black;} pre { font-weight: normal; color: #bbb; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word; overflow-wrap: break-word; } b {font-weight: normal} b.BOLD {color: #fff} b.ITA {font-style: italic} b.UND {text-decoration: underline} b.STR {text-decoration: line-through} b.UNDSTR {text-decoration: underline line-through} b.BLK {color: #000000} b.RED {color: #aa0000} b.GRN {color: #00aa00} b.YEL {color: #aa5500} b.BLU {color: #0000aa} b.MAG {color: #aa00aa} b.CYN {color: #00aaaa} b.WHI {color: #aaaaaa} b.HIK {color: #555555} b.HIR {color: #ff5555} b.HIG {color: #55ff55} b.HIY {color: #ffff55} b.HIB {color: #5555ff} b.HIM {color: #ff55ff} b.HIC {color: #55ffff} b.HIW {color: #ffffff} b.BBLK {background-color: #000000} b.BRED {background-color: #aa0000} b.BGRN {background-color: #00aa00} b.BYEL {background-color: #aa5500} b.BBLU {background-color: #0000aa} b.BMAG {background-color: #aa00aa} b.BCYN {background-color: #00aaaa} b.BWHI {background-color: #aaaaaa} </style> </head> <spanody> <pre>合計 16 lrwxrwxrwx 1 tomoyan tomoyan 20 8月 21 12:53 <span class=HIC>DataShare</span> -> <span class="BLU BGRN">/var/samba/DataShare</span> -rw-r--r-- 1 tomoyan tomoyan 2645 9月 18 15:55 cat -rwxrwxrwx. 1 tomoyan tomoyan 99 8月 18 14:32 <span class=HIG>exec_jupyterlab.sh</span> -rw-r--r-- 1 tomoyan tomoyan 0 9月 18 16:23 ls-l.html drwxr-xr-x 1 tomoyan tomoyan 132 9月 18 15:19 <span class=HIB>my_projects</span> drwxr-xr-x. 1 tomoyan tomoyan 198 9月 17 14:05 <span class=HIB>pyJupyterLab</span> drwxrwxr-x. 1 tomoyan tomoyan 1334 9月 9 11:19 <span class=HIB>work</span> drwxr-xr-x. 1 tomoyan tomoyan 644 9月 10 11:32 <span class=HIB>ダウンロード</span> drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 <span class=HIB>テンプレート</span> drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 <span class=HIB>デスクトップ</span> drwxr-xr-x. 1 tomoyan tomoyan 84 9月 6 18:59 <span class=HIB>ドキュメント</span> drwxr-xr-x. 1 tomoyan tomoyan 54 8月 18 14:13 <span class=HIB>ビデオ</span> drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 <span class=HIB>音楽</span> drwxr-xr-x. 1 tomoyan tomoyan 3530 9月 16 10:06 <span class=HIB>画像</span> drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 <span class=HIB>公開</span> </pre> </body> </html>
スタイル一覧
BOLD | <b class=BOLD>BOLD</b> |
ITA | <b class=ITA>ITA</b> |
UND | <b class=UND>UND</b> |
STR | <b class=STR>STR</b> |
UNDSTR | <b class=UNDSTR>UNDSTR</b> |
BLK | <b class=BLK>BLK</b> |
RED | <b class=RED>RED</b> |
GRN | <b class=GRN>GRN</b> |
YEL | <b class=YEL>YEL</b> |
BLU | <b class=BLU>BLU</b> |
custom | |
---|---|
DiYE | <b class=DiYE>DiYE</b> |
BoHIK | <b class=BoHIK>BoHIK</b> |
MAG | <b class=MAG>MAG</b> |
CYN | <b class=CYN>CYN</b> |
WHI | <b class=WHI>WHI</b> |
HIK | <b class=HIK>HIK</b> |
HIR | <b class=HIR>HIR</b> |
HIG | <b class=HIG>HIG</b> |
HIY | <b class=HIY>HIY</b> |
HIB | <b class=HIB>HIB</b> |
HIM | <b class=HIM>HIM</b> |
HIC | <b class=HIC>HIC</b> |
HIW | <b class=HIW>HIW</b> |
BBLK | <b class=BBLK>BBLK</b> |
BRED | <b class=BRED>BRED</b> |
BGRN | <b class=BGRN>BGRN</b> |
BYEL | <b class=BYEL>BYEL</b> |
BBLU | <b class=BBLU>BBLU</b> |
BMAG | <b class=BMAG>BMAG</b> |
BCYN | <b class=BCYN>BCYN</b> |
BWHI | <b class=BWHI>BWHI</b> |
<b class=BSc> <span class=BScBLU> <b class=BScHGRY> <b class=BScINDG>
※ ansi2html オリジナルカラーから当サイトテーマ用にアレンジしています🤔
Dokuwiki 雛形
<WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>command</b> subcommand <b class=HIK>--options</b> <b class=DiYE>...</b> </pre></html></WRAP> <WRAP color_result><html><pre> </pre></html></WRAP> <WRAP color_result_long><html><pre> </pre></html></WRAP> <WRAP color_mincode><html><pre> </pre></html></WRAP> <WRAP color_mincode_long><html><pre> </pre></html></WRAP> </WRAP>
$ command subcommand --options ...
<WRAP color_term> <WRAP color_command><html><pre> (pyJupyterLab) <b class=GRN>$</b> <b class=HIY>pip</b> install jupyterlab-nvdashboard </pre></html></WRAP> <WRAP color_result><html><pre> ... Downloading https://www.piwheels.org/simple/bokeh/bokeh-2.4.3-py3-none-any.whl (18.5 MB) <b class=PipBAR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</b> <b class=GRN>18.5/18.5 MB</b> <b class=RED>130.2 kB/s</b> eta <b class=CYN>0:00:00</b> </pre></html></WRAP> </WRAP>
(pyJupyterLab) $ pip install jupyterlab-nvdashboard
... Downloading https://www.piwheels.org/simple/bokeh/bokeh-2.4.3-py3-none-any.whl (18.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.5/18.5 MB 130.2 kB/s eta 0:00:00
ansi2html に処理結果をパイプする場合は '--color=auto' ではなく '--color=always' を指定する
RedHat 系 Linux では bash の alias が以下のように登録されています。
$ alias
alias diff='diff --color=auto' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias zegrep='zegrep --color=auto' alias zfgrep='zfgrep --color=auto' alias zgrep='zgrep --color=auto'
通常の ls -l
も --color=auto
と同じで、処理結果をパイプするとエスケープカラーコードが失われる🤔
$ ls -l | cat
合計 20 lrwxrwxrwx 1 tomoyan tomoyan 20 8月 21 12:53 DataShare -> /var/samba/DataShare -rw-r--r-- 1 tomoyan tomoyan 2645 9月 18 15:55 cat -rwxrwxrwx. 1 tomoyan tomoyan 99 8月 18 14:32 exec_jupyterlab.sh -rw-r--r-- 1 tomoyan tomoyan 2341 9月 18 15:37 ls-l.html drwxr-xr-x 1 tomoyan tomoyan 132 9月 18 15:19 my_projects drwxr-xr-x. 1 tomoyan tomoyan 198 9月 17 14:05 pyJupyterLab drwxrwxr-x. 1 tomoyan tomoyan 1334 9月 9 11:19 work drwxr-xr-x. 1 tomoyan tomoyan 644 9月 10 11:32 ダウンロード drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 テンプレート drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 デスクトップ drwxr-xr-x. 1 tomoyan tomoyan 84 9月 6 18:59 ドキュメント drwxr-xr-x. 1 tomoyan tomoyan 54 8月 18 14:13 ビデオ drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 音楽 drwxr-xr-x. 1 tomoyan tomoyan 3530 9月 16 10:06 画像 drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 公開
--color=auto
が指定されているとパイプやリダイレクト にエスケープカラーコードを出力しないので --color=always
を指定し直す必要がある🤔
(alias が --color=auto
である理由はパイプやリダイレクトで grep や sort されることを考慮していると思われる😅
man ls より
... --color[=WHEN] カラー出力をする。 WHEN には 'always' (デフォルト値)、 'never'、 'auto' が指定でき る。詳細は下記を参照 ... デフォルトまたは --color=never を指定した場合、ファイルの種類を判別するための カラー表示は無効となります。 --color=auto を指定した場合、標準出力が端末に接続 されている場合のみカラーコードを出力します。LS_COLORS 環境 変数によって動作 を設定できます。LS_COLORS を設定する場合は dircolors を使用してください。 ...
--color=always
を指定すると処理結果をパイプやリダイレクトしてもエスケープカラーコードが失われることはない😊
$ ls -l --color=always | cat
合計 16 lrwxrwxrwx 1 tomoyan tomoyan 20 8月 21 12:53 DataShare -> /var/samba/DataShare -rwxrwxrwx. 1 tomoyan tomoyan 99 8月 18 14:32 exec_jupyterlab.sh -rw-r--r-- 1 tomoyan tomoyan 2341 9月 18 15:34 ls-l.html drwxr-xr-x 1 tomoyan tomoyan 132 9月 18 15:19 my_projects drwxr-xr-x. 1 tomoyan tomoyan 198 9月 17 14:05 pyJupyterLab drwxrwxr-x. 1 tomoyan tomoyan 1334 9月 9 11:19 work drwxr-xr-x. 1 tomoyan tomoyan 644 9月 10 11:32 ダウンロード drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 テンプレート drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 デスクトップ drwxr-xr-x. 1 tomoyan tomoyan 84 9月 6 18:59 ドキュメント drwxr-xr-x. 1 tomoyan tomoyan 54 8月 18 14:13 ビデオ drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 音楽 drwxr-xr-x. 1 tomoyan tomoyan 3530 9月 16 10:06 画像 drwxr-xr-x. 1 tomoyan tomoyan 0 8月 18 08:54 公開
参考文献
command line - Converting colored output into html - Unix & Linux Stack Exchange
pycontribs/ansi2html: Convert text with ansi color codes to HTML
コンソールのカラー出力 - ArchWiki
grepコマンドの--color=alwaysオプションを使うべきではない - Qiita
teeコマンドの使い方 - Qiita