From 3026cd05bbcb92191eb3d377d64499ed1ce097cc Mon Sep 17 00:00:00 2001 From: hayao Date: Sat, 26 Dec 2020 21:11:29 +0900 Subject: [PATCH] [add] : Added plasma bookmarks --- .../alterlinux-plasma-bookmarks | 169 +++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100755 alterlinux-plasma-bookmarks/alterlinux-plasma-bookmarks diff --git a/alterlinux-plasma-bookmarks/alterlinux-plasma-bookmarks b/alterlinux-plasma-bookmarks/alterlinux-plasma-bookmarks new file mode 100755 index 0000000..10e6c78 --- /dev/null +++ b/alterlinux-plasma-bookmarks/alterlinux-plasma-bookmarks @@ -0,0 +1,169 @@ +#!/usr/bin/env bash +# Yamada Hayao +# Twitter: @Hayao0819 +# Email : hayao@fascode.net +# +# (c) 2019-2020 Fascode Network. +# + + +set -e + +force=false +alterlive=false +config_file="${HOME}/.local/share/user-places.xbel" + +remove () { + local _list + local _file + _list=($(echo "$@")) + for _file in "${_list[@]}"; do + if [[ -f ${_file} ]]; then + rm -f "${_file}" + elif [[ -d ${_file} ]]; then + rm -rf "${_file}" + fi + done +} + +_help() { + echo "usage ${0} [options] [command]" + echo + echo " General options:" + echo " -f | --force Force overwriting." + echo " -h | --help This help message and exit." + echo + echo " General command:" + echo " add Add items to the sidebar." + echo " delete Delete all sidebar items." + echo " init Initializes the sidebar." + echo " help This help message and exit." +} + +output() { + echo "${@}" >> "" +} + +_msg_error() { + echo "${@}" >&2 +} + +prepare() { + if [[ ! -d "${HOME}/.config/gtk-3.0/" ]]; then + mkdir -p "${HOME}/.config/gtk-3.0/" + fi + if [[ ! -f "${config_file}" ]]; then + touch "${config_file}" + fi +} + +add() { + prepare + local dir + for dir in ${@}; do + if [[ ! -d "${dir}" ]]; then + _msg_error "${dir} does not exist." + exit 1 + else + output "file://${dir}" + fi + done +} + +init() { + remove "${config_file}" + + prepare + + source "${HOME}/.config/user-dirs.dirs" + + output "file://${XDG_DOCUMENTS_DIR} Documents" + output "file://${XDG_DOWNLOAD_DIR} Downloads" + output "file://${XDG_MUSIC_DIR} Music" + output "file://${XDG_PICTURES_DIR} Pictures" + output "file://${XDG_VIDEOS_DIR} Videos" +} + + + +# Argument analysis and processing +options="${@}" +_opt_short="fh" +_opt_long="force,help,alterlive" +OPT=$(getopt -o ${_opt_short} -l ${_opt_long} -- "${@}") +if [[ ${?} != 0 ]]; then + exit 1 +fi + +eval set -- "${OPT}" +unset OPT +unset _opt_short +unset _opt_long + + +while true; do + case ${1} in + -f | --force) + force=true + shift 1 + ;; + -h | --help) + _help + shift 1 + exit 0 + ;; + --alterlive) + alterlive=true + shift 1 + ;; + --) + shift + break + ;; + *) + _msg_error "Invalid argument '${1}'" + _help + exit 1 + ;; + esac +done + +mode="${1}" + +case "${1}" in + add) + shift 1 + if [[ -z "${@}" ]]; then + _msg_error "Please specify a directory." + exit 1 + else + add "${@}" + fi + exit 0 + ;; + delete) + remove "${config_file}" + exit 0 + ;; + init) + if [[ -f "${config_file}" ]] && [[ "${force}" = false ]]; then + _msg_error "The sidebar already exists. Use -f to force initialization." + exit 1 + else + init + fi + exit 0 + ;; + help) + _help + exit 0 + ;; + *) + _msg_error "Please specify a command." + exit 1 + ;; +esac + +if [[ "${alterlive}" = true ]]; then + remove ~/.config/autostart/gensidebar.desktop +fi -- 2.11.0