mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-11 21:13:02 +00:00
Rename "crash" to "panic"
We are not really sending crash reports but Rust panics, so might as well be clear about that.
This commit is contained in:
parent
da3870ea31
commit
875cb13e6d
2 changed files with 16 additions and 20 deletions
|
@ -26,7 +26,7 @@ pub fn routes(state: Arc<AppState>) -> Router<Body> {
|
|||
put(update_user).delete(destroy_user).get(get_user),
|
||||
)
|
||||
.route("/users/:id/access_tokens", post(create_access_token))
|
||||
.route("/crash", post(trace_crash))
|
||||
.route("/panic", post(trace_panic))
|
||||
.layer(
|
||||
ServiceBuilder::new()
|
||||
.layer(Extension(state))
|
||||
|
@ -132,14 +132,14 @@ async fn get_user(
|
|||
}
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
struct Crash {
|
||||
struct Panic {
|
||||
version: String,
|
||||
text: String,
|
||||
}
|
||||
|
||||
#[instrument(skip(crash))]
|
||||
async fn trace_crash(crash: Json<Crash>) -> Result<()> {
|
||||
tracing::error!(version = %crash.version, text = %crash.text, "crash report");
|
||||
#[instrument(skip(panic))]
|
||||
async fn trace_panic(panic: Json<Panic>) -> Result<()> {
|
||||
tracing::error!(version = %panic.version, text = %panic.text, "panic report");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ fn main() {
|
|||
init_logger(&logs_dir_path);
|
||||
|
||||
let mut app = gpui::App::new(Assets).unwrap();
|
||||
init_crash_handler(logs_dir_path, http.clone(), app.background());
|
||||
init_panic_hook(logs_dir_path, http.clone(), app.background());
|
||||
|
||||
load_embedded_fonts(&app);
|
||||
|
||||
|
@ -257,22 +257,18 @@ fn init_logger(logs_dir_path: &Path) {
|
|||
}
|
||||
}
|
||||
|
||||
fn init_crash_handler(
|
||||
logs_dir_path: PathBuf,
|
||||
http: Arc<dyn HttpClient>,
|
||||
background: Arc<Background>,
|
||||
) {
|
||||
fn init_panic_hook(logs_dir_path: PathBuf, http: Arc<dyn HttpClient>, background: Arc<Background>) {
|
||||
background
|
||||
.spawn({
|
||||
let logs_dir_path = logs_dir_path.clone();
|
||||
|
||||
async move {
|
||||
let crash_report_url = format!("{}/api/crash", &*client::ZED_SERVER_URL);
|
||||
let panic_report_url = format!("{}/api/panic", &*client::ZED_SERVER_URL);
|
||||
let mut children = smol::fs::read_dir(&logs_dir_path).await?;
|
||||
while let Some(child) = children.next().await {
|
||||
let child = child?;
|
||||
let child_path = child.path();
|
||||
if child_path.extension() != Some(OsStr::new("crash")) {
|
||||
if child_path.extension() != Some(OsStr::new("panic")) {
|
||||
continue;
|
||||
}
|
||||
let filename = if let Some(filename) = child_path.file_name() {
|
||||
|
@ -293,7 +289,7 @@ fn init_crash_handler(
|
|||
|
||||
let text = smol::fs::read_to_string(&child_path)
|
||||
.await
|
||||
.context("error reading crash file")?;
|
||||
.context("error reading panic file")?;
|
||||
let body = serde_json::to_string(&json!({
|
||||
"text": text,
|
||||
"version": version,
|
||||
|
@ -301,19 +297,19 @@ fn init_crash_handler(
|
|||
}))
|
||||
.unwrap();
|
||||
let request = Request::builder()
|
||||
.uri(&crash_report_url)
|
||||
.uri(&panic_report_url)
|
||||
.method(http::Method::POST)
|
||||
.redirect_policy(isahc::config::RedirectPolicy::Follow)
|
||||
.header("Content-Type", "application/json")
|
||||
.body(AsyncBody::from(body))?;
|
||||
let response = http.send(request).await.context("error sending crash")?;
|
||||
let response = http.send(request).await.context("error sending panic")?;
|
||||
if response.status().is_success() {
|
||||
fs::remove_file(child_path)
|
||||
.context("error removing crash after sending it successfully")
|
||||
.context("error removing panic after sending it successfully")
|
||||
.log_err();
|
||||
} else {
|
||||
return Err(anyhow!(
|
||||
"error uploading crash to server: {}",
|
||||
"error uploading panic to server: {}",
|
||||
response.status()
|
||||
));
|
||||
}
|
||||
|
@ -357,9 +353,9 @@ fn init_crash_handler(
|
|||
),
|
||||
};
|
||||
|
||||
let crash_filename = chrono::Utc::now().format("%Y_%m_%d %H_%M_%S").to_string();
|
||||
let panic_filename = chrono::Utc::now().format("%Y_%m_%d %H_%M_%S").to_string();
|
||||
fs::write(
|
||||
logs_dir_path.join(format!("zed-{}-{}.crash", app_version, crash_filename)),
|
||||
logs_dir_path.join(format!("zed-{}-{}.panic", app_version, panic_filename)),
|
||||
&message,
|
||||
)
|
||||
.context("error writing panic to disk")
|
||||
|
|
Loading…
Reference in a new issue