From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id YIw9MFNBQmMKQQEAbAwnHQ (envelope-from ) for ; Sun, 09 Oct 2022 05:34:43 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id 6HRZMFNBQmOALgEA9RJhRA (envelope-from ) for ; Sun, 09 Oct 2022 05:34:43 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 9DECDECBC for ; Sun, 9 Oct 2022 05:34:43 +0200 (CEST) Received: from localhost ([::1]:41878 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohN5N-0000vY-Ng for larch@yhetil.org; Sat, 08 Oct 2022 23:34:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47426) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohN3s-0000rJ-IG for emacs-orgmode@gnu.org; Sat, 08 Oct 2022 23:33:08 -0400 Received: from ciao.gmane.io ([116.202.254.214]:50548) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohN3r-0008C0-6Z for emacs-orgmode@gnu.org; Sat, 08 Oct 2022 23:33:08 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1ohN3p-0006CD-6V for emacs-orgmode@gnu.org; Sun, 09 Oct 2022 05:33:05 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: [tip] Create and Insert a public Nextcloud/Owncloud link Date: Sun, 9 Oct 2022 10:32:58 +0700 Message-ID: References: <87bkqme6cw.fsf@posteo.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Content-Language: en-US In-Reply-To: <87bkqme6cw.fsf@posteo.net> Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, NICE_REPLY_A=-3.588, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1665286483; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=8TOo/aRRoDkan57ow0C0nWrXe/wLvP1m1e7mP9GQRb4=; b=P5HQG7G4WXeWGqmzPQdltK32CVo1fa+japjrm72q7zfaLoWXrnPoKWMEKKVKGbYJ42JzVy zXNz6i4YLkaGZK0Oez9M2Lu9HsvR5r/AbsImO18o668vSyupUiH1s9JZrcveaYhIj7qwXd 87ayyvSn6/1On18ry7jbaUzvzKcmUM6FoJAFWoaFDLY3Rx8Kr/xivS4RaXGPUZsfygy92t Wc9tu35wEah+GafnzJEzUuFDqq2z5BNazQ0SLaQ8LHe6JVwRsKaFgxrzsrkMw6H8OC4Q3+ ti6G8NSpgb16JyHhHsbW7/HkVFD11iw+4SMr9b9Awq8OUoXCwUNHUY8ErB9rPQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1665286483; a=rsa-sha256; cv=none; b=jo8wioXgsOuZg/twryP4CullqraCAIgZIfk0RaJr4yhN/AtZGFyNCKTWHM5Eajko2UCwqh Ve5GRVMkH3OQXGLUzuXu5zii72kI30L1uLV7gTiFlCPYgoKLaCr89jyrPj69HV3gkxr6jJ s5yRfdpcuIXwbJNIpwNFMwyl5HjI1NvNU8EnAjlfBT0tVyHA7yvE0/nxM+76ltU9pQ6Iu0 cFOrhHjV5ri3hiss2yhqD+bVxFg4SKTir9/Y4ZtLjD1ZhQWYitD2QcXgMwitTereMrPez1 uTmYLRyzkF52nGC7QwKSnTJwJnQoT199+PHFQ4r1bWMyAlXGpU3MUo4zoTHcgg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 3.81 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 9DECDECBC X-Spam-Score: 3.81 X-Migadu-Scanner: scn0.migadu.com X-TUID: mUF2may8rt8o On 08/10/2022 21:29, Juan Manuel Macías wrote: > > Many times I need to create and share a public link to a file > in my local folder. In the Nextcloud forum I learned how it can be done > from the command line using curl, .. > │ (result-raw (shell-command-to-string > │ (concat "curl -u " > │ "\"" > │ my-username > │ ":" > │ my-passwd > │ "\"" Juan Manuel, your function is a nice proof of concept, but posting such code you are responsible for users who may try to use it verbatim having less experience with elisp. Use at least `shell-quote-argument' (though it docstring has a link to info "(elisp)Security Considerations"). Just adding quote characters is unsafe. You may avoid non-alphanumeric characters in passwords and file names for good reasons, but for other users a quote character may dramatically change the executed command. When TRAMP support is not necessary, arguments should be passed to external binary as a list without intermediate shell command. I know, Emacs does not have a convenience function with such calling convention similar to `shell-command-to-string'. I am almost sure that Emacs has a package to send HTTP POST requests directly from elisp. Unsure it has convenient enough API (reasonable default timeouts, etc.), but it should be safer for working with peculiar file names and passwords stuffed with characters having special meaning in shell. I admit that the code would be more verbose. It may save you time for recovering you system from damage caused by unexpected interpretation of a shell command.