Nautilus 3.22 は 7z 形式の圧縮と展開をサポートした。
でも p7zip パッケージは入っていない、あれ?
もしかして自前対応なのだろうか。
というかあのダイアログは file-roller ではないし、あれは何?
これはソースコードを見てみるしかないな。
https://github.com/GNOME/nautilus/blob/master/src/nautilus-file-operations.c
凄く長いけど今現在で 8782 行目
autoar_compressor_new という関数をやっと見つける。
正体はコイツか!
gnome-autoar Reference Manual: gnome-autoar Reference Manual
マニュアルも普通に見つかった。
よし早速使ってみよう。
#!/usr/bin/gjs
const GnomeAutoar = imports.gi.GnomeAutoar;
const Gio = imports.gi.Gio;
let infiles = [Gio.File.new_for_path("blog.php")];
let outfile = Gio.File.new_for_path("test.7z");
let ar = new GnomeAutoar.Compressor({
source_files: infiles,
output_file: outfile,
format: 4,
filter:1,
create_top_level_directory: false
});
ar.start(null);
//=> JS ERROR: Error: Cannot convert non-null JS value to G_POINTER
あれ?
GnomeAutoar.Compressor – Classes – GnomeAutoar 0.1
source-files の定義が int ってなんだよ…
Gjs や PyGObject からは現行では使えないのかな?
もう少し調べる。
