use built in file access API for reading/writing

This commit is contained in:
joshuaboud 2021-05-31 13:57:37 -03:00
parent 75cd0835af
commit fb2db3f52f
No known key found for this signature in database
GPG Key ID: 17EFB59E2A8BF50E

View File

@ -380,15 +380,10 @@ class NavFile extends NavEntry {
} }
var contents = ""; var contents = "";
try { try {
contents = await cockpit.spawn(["cat", this.path_str()], {superuser: "try"}); contents = await cockpit.file(this.path_str(), {superuser: "try"}).read();
} catch (e) { } catch (e) {
this.nav_window_ref.enable_buttons(); this.nav_window_ref.enable_buttons();
var message = ""; window.alert(e.message);
if (e.message === "protocol-error")
message = "Error reading file.";
else
message = e.message;
window.alert(message);
return; return;
} }
document.getElementById("nav-edit-contents-textarea").value = contents; document.getElementById("nav-edit-contents-textarea").value = contents;
@ -401,7 +396,11 @@ class NavFile extends NavEntry {
async write_to_file() { async write_to_file() {
var new_contents = document.getElementById("nav-edit-contents-textarea").value; var new_contents = document.getElementById("nav-edit-contents-textarea").value;
await cockpit.script("echo -n \"$1\" > $2", [new_contents, this.path_str()], {superuser: "try"}); try {
await cockpit.file(this.path_str(), {superuser: "try"}).replace(new_contents); // cockpit.script("echo -n \"$1\" > $2", [new_contents, this.path_str()], {superuser: "try"});
} catch (e) {
window.alert(e.message);
}
this.nav_window_ref.refresh(); this.nav_window_ref.refresh();
this.hide_edit_file_contents(); this.hide_edit_file_contents();
} }
@ -466,15 +465,10 @@ class NavFileLink extends NavFile{
} }
var contents = ""; var contents = "";
try { try {
contents = await cockpit.spawn(["cat", target_path], {superuser: "try"}); contents = await cockpit.file(this.path_str(), {superuser: "try"}).read();
} catch(e) { } catch(e) {
this.nav_window_ref.enable_buttons(); this.nav_window_ref.enable_buttons();
var message = ""; window.alert(e.message);
if (e.message === "protocol-error")
message = "Error reading file.";
else
message = e.message;
window.alert(message);
return; return;
} }
document.getElementById("nav-edit-contents-textarea").value = contents; document.getElementById("nav-edit-contents-textarea").value = contents;
@ -488,7 +482,11 @@ class NavFileLink extends NavFile{
async write_to_file() { async write_to_file() {
var target_path = this.get_link_target_path(); var target_path = this.get_link_target_path();
var new_contents = document.getElementById("nav-edit-contents-textarea").value; var new_contents = document.getElementById("nav-edit-contents-textarea").value;
await cockpit.script("echo -n \"$1\" > $2", [new_contents, target_path], {superuser: "try"}); try {
await cockpit.file(target_path, {superuser: "try"}).replace(new_contents);
} catch (e) {
window.alert(e.message);
}
this.nav_window_ref.refresh(); this.nav_window_ref.refresh();
this.hide_edit_file_contents(); this.hide_edit_file_contents();
} }